Swisslog SynQ Remote Storage
When the Swisslog SynQ system is selcted on the Remote Storage Integration profile, Alma uses the following API calls to the Swisslog sytsem:
- “Product Master – Create” – When new item is added. This is triggered by
- The “Inventory Remote Storage Update” job, as scheduled on the Remote Storage Integration Profile
- In response to data requests received from from SynQ
- “Product Master – Delete” – When an item that is not stored in a crate is deleted. This is triggered by the “Inventory Remote Storage Update” job, as scheduled on the Remote Storage Integration Profile
- Order – Create” – When the request is placed
Outgoing Messages
“Product Master – Create”
Uses:
- Alma sends Product Master messages to create a product in the Swisslog SynQ system.
- Alma responds with Product Master message to data requests from the Swisslog SynQ system.
REST method: POST /synq/resources/nbproducts
Alma handles items that have a ‘Storage Location ID’ differently from items that don’t –
- An existing ‘Storage Location ID’ on the item record indicates that the Alma item is stored in a box in the storage, and that the box ID (stored in the ‘Storage Location ID’) is used for the communication with the Swisslog SynQ
- Where no ‘Storage Location ID’ exists on the item record the item is understood to be a standalone item, and its barcode is used to communicate with the Swisslog SynQ
List of fields:
Field Name | Description | Data Type | Length | Alma value |
productId | Unique product ID (Item) | String | 64 | If ‘Storage location ID’ is populated on the item – Alma sends the ‘Storage location ID’ value. If not – Alma sends the item’s Barcode. |
owner | Product owner, all inventory of this product is owned by this owner. | String | 64 | The value of the “Owner” field in the integration profile |
barcode/barcodeId | Product barcode (unique per owner), and there can be multiple barcodes for this product and owner. | String | 64 | ‘Storage location ID’ or item barcode (identical to productId) |
barcode/barcodeDesc | Description of the product barcode | String | 2048 | Not used |
barcode/uomId | UOM ID, if barcode shall apply to a specific UOM | String | 64 | Not used |
description | Product description. | String | 2048 | For standalone items (no storage location ID) – bibliographic title. For items stored in crates – Not sent |
productCategory | Product category that can be used to group similar products. | String | 64 | Item material type |
scanValidationMode | Defines the product barcode validation mode during the pick confirm operation ( | String | 32 | Not used |
Instruction/type | Type of instruction | String | 32 | Not used |
Instruction/text | Actual instructions to perform | String | 2048 | Not used |
hostUomId | If a value is set here and it is different than the base UOM, this is the one reported back in host messages | String | 64 | Not used |
productUom/uomId | Unique UOM name | String | 64 | If ‘Storage location ID’ is populated on the item – send “ESK”. If not – send “OBJ” |
productUom/imagePath | Full path to product UOM image file | String | 2048 | Not used |
attribute/name | Attribute name | String | 64 | Not used |
attribute/checkInAction | Action to perform by the operator during check-in | String | 32 | Not used |
attribute/putawayAction | Action to perform by the operator during putaway | String | 32 | Not used |
attribute/pickingAction | Action to perform by the operator during | String | 32 | Not used |
attributedefaultValue | Default attribute value. It also serves as the default value for a list of values, e.g. presented during putaway and/or picking | String | 256 | Not used |
attribute/relevantForReservation | Attribute is used during reservation (soft allocation) | Boolean | Not used | |
Instruction/type | Type of instruction | String | 32 | Not used |
Instruction/text | Actual instructions to perform | String | 2048 | Not used |
confidential | Indicates if Product is to be handled as a confidential product | Boolean | According to item policy: If item policy is selected in “Confidential item policy” in integration profile, send “true”, otherwise send “false”. | |
hostName | Indicates what inventory system this product belongs to | String | 32 | Alma |
“Product Master – Delete”
This is sent by the inventory update job when a standalone item (with no box number in Storage Location ID) is withdrawn in Alma from a location attached to the remote storage.
Swisslog allows an item to be deleted if the following holds:
- no more inventory inside SynQ is linked to this product.
- no ASN lines inside SynQ is linked to this product.
- no expected receipt lines inside SynQ is linked to this product.
- no order lines inside SynQ are linked to this product.
- no bill of materials are linked to this product.
- no work order and lines inside SynQ are linked to this product.
REST method: DELETE /nbproducts/{owner}/{productId}
Field Name | Mandatory | Description | Data Type | Length | Alma value |
productId | Y | Unique product ID (Item) | String | 64 | Item’s Barcode. |
owner | Y | Product owner, in case all inventory of this product is owned by the same owner. | String | 64 | The value of the “Owner” field in the integration profile |
“Order – Create”
Message is sent when a request is placed by staff user via Alma screen or by patron via Primo.
REST method: POST /synq/resources/orders/batch
List of fields: (only one order is sent in a message)
Field Name | Description | Data Type | Length | Alma value |
orderId | Uniquely identify the order | String | 64 | Request ID |
owner | Owner of order | String | 64 | The value of the “Owner” field in the integration profile |
orderType | Type of the order | String | 32 | Always “Standard” |
dispatchDate | Dispatch date of the order | Timestamp | Message Time (Create Date and Time) Contains message processing date and time. The format is in W3C ISO 8601 standard: YYYY-MM-DDThh:mm:ssTZD, e.g. 2012-07-16T19:20:30+01:00. | |
orderDate | Date of the order | Timestamp | Order date (see dispatchDate for format) | |
priority | Priority of the order, the lower the number the higher the priority | Integer | Map Alma priority: 1 – highest, forced 2 – high 3 – medium 4 – low 5 – lowest | |
customer | Customer (address) of the order | String | 64 | Not used |
shippingAddress/addressId | Address ID for shipping | String | 64 | Not used |
shippingAddress/address/ contactPerson | Full name of the person to contact | String | 256 | Not used |
shippingAddress/address/ addressLine1 | Address Line 1 (street, PO box, …) | String | 256 | Send “National library-internal” |
shippingAddress/address/ addressLine2 | Address Line 2 (street, PO box, …) | String | 256 | Not used |
shippingAddress/address/ addressLine3 | Address Line 3 (street, PO box, …) | String | 256 | Request note |
shippingAddress/address/city | City | String | 256 | Not used |
shippingAddress/address/state | State | String | 256 | Not used |
shippingAddress/address/postalCode | Postal code | String | 256 | Not used |
shippingAddress/address/country | Country | String | 256 | Not used |
shippingAddress/address/ phoneNumber1 | Primary phone number | String | 256 | Not used |
shippingAddress/address/ phoneNumber2 | Secondary phone number | String | 256 | Not used |
shippingAddress/address/ phoneNumber3 | Alternate phone number | String | 256 | Not used |
shippingAddress/address/email1 | Primary email | String | 256 | Not used |
shippingAddress/address/email2 | Secondary email | String | 256 | Not used |
shippingAddress/address/email3 | Alternate email | String | 256 | Not used |
workstation | Workstation ID where this order shall get picked | String | 64 | Not used |
consolidationLoc | A location where this order shall get consolidated or staged after picking | String | 64 | Not used |
shortAllocationAllowed | Whether short allocation is allowed for this order | Boolean | Not used | |
shortReleasingAllowed | Whether short releasing is allowed for this order | Boolean | Not used | |
shortShippingAllowed | Whether short shipping is allowed for this order | Boolean | Not used | |
automaticAllocationAllowed | Whether automatic allocation is allowed for this order | Boolean | Not used | |
instruction/type | Type of instruction | String | 32 | Not used |
Instruction/text | Instruction at the order (header) level | String | 2048 | Not used |
orderLine/orderLineNumber | Line item number in the order, in other words, an order line or order detail. | Integer | 1 | |
orderLine/productId | Product of the order line. | String | 64 | If ‘Storage location ID’ is populated on the item – send ‘Storage location ID’ value. If not – send item’s Barcode. |
orderLine/quantityOrdered | Quantity ordered (expressed in host UOM of the product) | Double | 1 | |
orderLine/allocationToleranceWindow | Defines allocation tolerance window in number of days | Integer | Not used | |
orderLine/attributeValue/name | Attribute name | String | 64 | Not used |
orderLine/attributeValue/value | Attribute value | String | 256 | Not used |
orderLine/instruction/type | Type of instruction | String | 32 | Not used |
orderLine/instruction/text | Instruction at the order (header) level | String | 2048 | Not used |
Incoming Messages
Requested path from Swisslog: POST {Alma Domain}/synq/resources/nbproducts/data-request
List of fields in incoming message:
Field Name | Description | Data Type | Length | Alma value |
barcodeId | Product barcode (unique per owner), and there can be multiple barcodes for this product and owner. | String | 64 | For items in boxes, this will be ‘Storage location ID’. For standalone items- this will be the item’s Barcode. |
hostName | Indicates what invetory system this product belongs to | String | 64 | Alma |
Return response
When getting a data request, Alma checks if there are any items for which the barcode matches the barcode on the incoming message.
- If found then Alma returns the “Product Master – Create” for this item and a HTTP 200 OK response.
- If not found Alma checks if there’s an item with Storage Location ID that matches the barcode on the incoming message and returns “Product Master – Create” for the first match and a HTTP 200 OK response.
- If no matching item barcode and no matching Storage Location ID is found then Alma returns a HTTP 404 not found error