The main purpose of this functionality is to support The National Archives - Moving to Mo Workflow.
User Story
The National Archives is running out of storage space so they want to move some of the less requested/needed items to another depot in Mo. Their desired workflow for this is as follows
They will move the items in several shipments.
Each shipment will contain roughly 6000 items.
An admin user will choose some items from Asta7 for a shipment. They can choose from any level (Arkiv/Arkivdel/Serie/Stykke/Mappe). If they choose from the logical levels (Arkiv/Arkivdel/Serie) all the underlying items will be chosen.
Then they will print QR codes for the chosen items.
The QR codes will then be glued on the items/boxes.
When the shipping company arrives to collect the boxes, they will scan the QR codes with an app on their mobile. The app will then update the status of the collected items in the system as moving.
Once the items reach Mo the QR codes will be scanned again and a request will be made to Asta7 to update the status of those items as moved.
Steps 3 to 7 will repeat for each shipment.
Implementation
As we are moving storage units the implementation involves the Asta7 and Repository modules.
Asta7
Added a new cart component that has support for searching, and removing and can also handle a large amount of items (current limit is 10,000).
An admin user can gather the storage units they want to move in this cart. This is how it will work for different entity types
If a Stykke is being added to the cart then Asta7 will fetch the corresponding storage unit from the repository module and if found add that to the cart.
If a Mappe (which has a parent of type Serie) is being added to the cart then Asta7 will fetch the corresponding storage unit item from the repository module and if found will add that to the cart.
If Arkiv/Arkivdel/Serie is being added to the cart then all the descendants Stykke and Mappe of that item will be gathered and their corresponding storage unit (or storage unit items) will be fetched from the repository module and then added to the cart.
Once they are satisfied with the items in the cart they can start the move process. which will save the items in the repository module. The rest of the process will be handled in the repository module.
Repository
All the StorageUnitMove
operations/shipments can be viewed and managed from the repository module.
Domain classes:
StorageUnitMove
This is the parent or wrapper class that represents each move operation/shipment. This has the following properties
Field | Description |
---|---|
| Database primary key |
| A serial type field to uniquely identify each storage unit move order |
| The shelf reference where the storage units are being moved. Most likely, a virtual shelf to just hold the storage units. |
| A flag to indicate if all the items have been moved or not. |
| The items (storage unit and/or storage unit items) that are being moved. |
StorageUnitMoveItem
This class represents each item (storage unit and/or storage unit item) that is being moved.
Field | Description |
---|---|
| Database primary key |
| A reference to the order this item belongs to |
| A reference to the actual asta7 object table that holds all necessary object information, identified by _AMID |
| Representing the current status of the item in the moving process. Possible values are:
|
StorageObject
This class represents object information of Asta7 Items used in the repository system.
Field | Description |
---|---|
| Database primary key |
| The organization id that the object belongs to |
| The project the object belongs to |
| The name of entity (arkive/stykke/mappeā¦) of the object |
| The title of the object |
| The amid of the root of the object |
| The name of the root of the object |
| The title of the root of the object |
| The path of the object in Asta7 |
| The url of asta7 instance which the object belongs to |
| The identifikator field value of the root object |
| The navn field value of the root object |
| The omnfang field value of the root object |
QR Code Scanner App
An app has been developed as part of the repository module which can scan QR codes and make requests for changing the status of the scanned items.