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