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 NameDescriptionData TypeLengthAlma value
productIdUnique product ID (Item)String64If ‘Storage location ID’ is populated on the item – Alma sends the ‘Storage location ID’ value.

If not – Alma sends the item’s Barcode.

ownerProduct owner, all inventory of this product is owned by this owner.String64The value of the “Owner” field in the integration profile
barcode/barcodeIdProduct barcode (unique per owner), and there can be multiple barcodes for this product and owner.String64‘Storage location ID’ or item barcode (identical to productId)
barcode/barcodeDescDescription of the product barcodeString2048Not used
barcode/uomIdUOM ID, if barcode shall apply to a specific UOMString64Not used
descriptionProduct description.String2048For standalone items (no storage location ID) – bibliographic title.

For items stored in crates – Not sent

productCategoryProduct category that can be used to group similar products.String64Item material type
scanValidationModeDefines the product barcode validation mode during the pick confirm operation (String32Not used
Instruction/typeType of instructionString32 Not used
Instruction/textActual instructions to performString2048 Not used
hostUomIdIf a value is set here and it is different than the base UOM, this is the one reported back in host messagesString64Not used
productUom/uomIdUnique UOM nameString64If ‘Storage location ID’ is populated on the item – send “ESK”.

If not – send “OBJ”

productUom/imagePathFull path to product UOM image fileString2048Not used
attribute/nameAttribute nameString64Not used
attribute/checkInActionAction to perform by the operator during check-inString32Not used
attribute/putawayActionAction to perform by the operator during putawayString32Not used
attribute/pickingActionAction to perform by the operator duringString32Not used
attributedefaultValueDefault attribute value. It also serves as the default value for a list of values, e.g. presented during putaway and/or pickingString256Not used
attribute/relevantForReservationAttribute is used during reservation (soft allocation)BooleanNot used
Instruction/typeType of instructionString32Not used
Instruction/textActual instructions to performString2048Not used
confidentialIndicates if Product is to be handled as a confidential productBooleanAccording to item policy: If item policy is selected in “Confidential item policy” in integration profile, send “true”, otherwise send “false”.
hostNameIndicates what inventory system this product belongs toString32Alma

“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 NameMandatoryDescriptionData TypeLengthAlma value
productIdY Unique product ID (Item) String 64Item’s Barcode.
ownerYProduct owner, in case all inventory of

this product is owned by the same

owner.

String64The 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 NameDescriptionData TypeLengthAlma value
orderIdUniquely identify the orderString64Request ID
ownerOwner of orderString64The value of the “Owner” field in the integration profile
orderTypeType of the orderString32Always “Standard”
dispatchDateDispatch date of the orderTimestampMessage 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.
orderDateDate of the orderTimestampOrder date (see dispatchDate for format)
priorityPriority of the order, the lower the number the higher the priorityIntegerMap Alma priority: 1 – highest, forced

2 – high

3 – medium

4 – low

5 – lowest

customerCustomer (address) of the orderString64Not used
shippingAddress/addressIdAddress ID for shippingString64Not used
shippingAddress/address/ contactPersonFull name of the person to contactString256Not used
shippingAddress/address/ addressLine1Address Line 1 (street, PO box, …)String256Send “National library-internal”
shippingAddress/address/ addressLine2Address Line 2 (street, PO box, …)String256Not used
shippingAddress/address/ addressLine3Address Line 3 (street, PO box, …)String256Request note
shippingAddress/address/cityCityString256Not used
shippingAddress/address/stateStateString256Not used
shippingAddress/address/postalCodePostal codeString256Not used
shippingAddress/address/countryCountryString256Not used
shippingAddress/address/ phoneNumber1Primary phone numberString256Not used
shippingAddress/address/ phoneNumber2Secondary phone numberString256Not used
shippingAddress/address/ phoneNumber3Alternate phone numberString256Not used
shippingAddress/address/email1Primary emailString256Not used
shippingAddress/address/email2Secondary emailString256Not used
shippingAddress/address/email3Alternate emailString256Not used
workstationWorkstation ID where this order shall get pickedString64Not used
consolidationLocA location where this order shall get consolidated or staged after pickingString64Not used
shortAllocationAllowedWhether short allocation is allowed for this orderBooleanNot used
shortReleasingAllowedWhether short releasing is allowed for this orderBooleanNot used
shortShippingAllowedWhether short shipping is allowed for this orderBooleanNot used
automaticAllocationAllowedWhether automatic allocation is allowed for this orderBooleanNot used
instruction/typeType of instructionString32Not used
Instruction/textInstruction at the order (header) levelString2048Not used
orderLine/orderLineNumberLine item number in the order, in other words, an order line or order detail.Integer1
orderLine/productIdProduct of the order line.String64If ‘Storage location ID’ is populated on the item – send ‘Storage location ID’ value.

If not – send item’s Barcode.

orderLine/quantityOrderedQuantity ordered (expressed
in host UOM of the product)
Double1
orderLine/allocationToleranceWindowDefines allocation tolerance
window in number of days
IntegerNot used
orderLine/attributeValue/nameAttribute nameString64Not used
orderLine/attributeValue/valueAttribute valueString256Not used
orderLine/instruction/typeType of instructionString32Not used
orderLine/instruction/textInstruction at the order (header) levelString2048Not used

Incoming Messages

Requested path from Swisslog: POST {Alma Domain}/synq/resources/nbproducts/data-request

List of fields in incoming message:

Field NameDescriptionData TypeLengthAlma value
barcodeIdProduct barcode (unique per owner), and there can be multiple barcodes for this product and owner.String64For items in boxes, this will be ‘Storage location ID’.

For standalone items- this will be the item’s Barcode.

hostNameIndicates what invetory system this product belongs toString64Alma

 

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