Handling orders with large number of order lines in the integration adapter
A large order is described as a request that contains N number of lines, where N > 100 to check availability, reservations, or for inventory updates.
A large request in Sterling™ Order Management System with Sterling Intelligent Promising Inventory Visibility integration might result in the performance degradation of the integration APIs or payload error. The application provides the capability to handle availability, reservations, and inventory updates for orders with large number of order lines. To avoid such situations, Sterling Order Management System processes integration API requests in batches by that are derived by the number of lines in the Sterling Intelligent Promising Inventory Visibility API input.
As illustrated, a batch is defined as a subset of n elements from the initial N elements where N > n.
Current API elements ~ { 1, 2, 3, …. , N }
Batch API elements ~ { 1, 2, … n }, { n+1, n+2 , … 2n } ………. { xn+1, xn+2, …., N
}
By default, on calling the fulfillment APIs, such as findInventory, ReserveAvailableInventory, or others, all lines in an API input are considered for Sterling Intelligent Promising Inventory Visibility API request in a single API call.
- Sterling Order Management System Reserve Available Inventory API input
-
<Promise OrganizationCode="DEFAULT"> <ReservationParameters ReservationID="RESERVATION_00001"/> <PromiseLines> <PromiseLine ItemID="ITEM_1" LineId="1" RequiredQty="1" ShipNode="NODE_1" UnitOfMeasure="EACH"/> <PromiseLine ItemID="ITEM_2" LineId="2" RequiredQty="1" ShipNode="NODE_1" UnitOfMeasure="EACH"/> <PromiseLine ItemID="ITEM_3" LineId="3" RequiredQty="1" ShipNode="NODE_1" UnitOfMeasure="EACH"/> <PromiseLine ItemID="ITEM_4" LineId="4" RequiredQty="1" ShipNode="NODE_1" UnitOfMeasure="EACH"/> <PromiseLine ItemID="ITEM_5" LineId="5" RequiredQty="1" ShipNode="NODE_1" UnitOfMeasure="EACH"/> </PromiseLines> </Promise>
- Sterling Intelligent Promising Inventory Visibility Node Availability API input
-
"demandType":"SCHEDULED" , "lines":[ {"itemId":"ITEM_1","shipNodes":["NODE_1"],"productClass":"","unitOfMeasure":"EACH","deliveryMethod":"SHP","lineId":"id1"}, {"itemId":"ITEM_2","shipNodes":["NODE_1"],"productClass":"","unitOfMeasure":"EACH","deliveryMethod":"SHP","lineId":"id2"}, {"itemId":"ITEM_3","shipNodes":["NODE_1"],"productClass":"","unitOfMeasure":"EACH","deliveryMethod":"SHP","lineId":"id3"}, {"itemId":"ITEM_4","shipNodes":["NODE_1"],"productClass":"","unitOfMeasure":"EACH","deliveryMethod":"SHP","lineId":"id4"}, {"itemId":"ITEM_5","shipNodes":["NODE_1"],"productClass":"","unitOfMeasure":"EACH","deliveryMethod":"SHP","lineId":"id5"}, ] }
- Sterling Intelligent Promising Inventory Visibility Reservation API input
-
{"reference":"RESERVATION_00001","demandType":"SCHEDULED","timeToExpire":120,"considerSafetyStock":true, "lines":[ {"deliveryMethod":"SHP","itemId":"ITEM_1","lineId":"ITEM_1|DEFAULT|EACH|||NODE_1|1.0","productClass":"","quantity":1.0,"shipNode":"NODE_1","unitOfMeasure":"EACH"} {"deliveryMethod":"SHP","itemId":"ITEM_2","lineId":"ITEM_2|DEFAULT|EACH|||NODE_1|1.0","productClass":"","quantity":1.0,"shipNode":"NODE_1","unitOfMeasure":"EACH"} {"deliveryMethod":"SHP","itemId":"ITEM_3","lineId":"ITEM_3|DEFAULT|EACH|||NODE_1|1.0","productClass":"","quantity":1.0,"shipNode":"NODE_1","unitOfMeasure":"EACH"} {"deliveryMethod":"SHP","itemId":"ITEM_4","lineId":"ITEM_4|DEFAULT|EACH|||NODE_1|1.0","productClass":"","quantity":1.0,"shipNode":"NODE_1","unitOfMeasure":"EACH"} {"deliveryMethod":"SHP","itemId":"ITEM_5","lineId":"ITEM_5|DEFAULT|EACH|||NODE_1|1.0","productClass":"","quantity":1.0,"shipNode":"NODE_1","unitOfMeasure":"EACH"} ]}
If you enable batch process, and if the number of lines in an API request are greater than the configured value, the API calls are split and processed in batches simultaneously. The output of the batch is consolidated and used instead.
- iv_integration.largeOrder.batchMode.enable
- Enable batch processing for node availability, network availability, or reservations in Sterling Order Management System-Sterling Intelligent Promising Inventory Visibility integration to process the appropriate lines in batches of the configured size. The valid values are true or false. The default value is set to false.
- iv_integration.largeOrder.nodeAvailability.batchSize
- If batch processing is enabled and the number of lines exceeds the configured value for Node Availability API, the calls to Sterling Intelligent Promising Inventory Visibility Node Availability API are processed in batches of the configured size. The default value is set to 5000. The valid value range is 30 - 5000.
- iv_integration.largeOrder.networkAvailability.batchSize
- If batch processing is enabled and the number of lines exceeds the configured value for Network Availability API, the calls to Sterling Intelligent Promising Inventory Visibility Network Availability API are processed in batches of the configured size. The default value is set to 5000. The valid value range is 30 - 5000.
- iv_integration.largeOrder.reservation.batchSize
- If batch processing is enabled and the number of lines exceeds the configured value for the Reservation API, the calls to Sterling Intelligent Promising Inventory Visibility Reservation API are processed in batches of the configured size. The default value is set to 5000. The valid value range is 30 - 5000.
- iv_integration.largeOrder.asyncInventoryUpdateBatchSize
- For Sterling Order Management System-Sterling Intelligent Promising Inventory Visibility integration, the size of unique adjustments for demand or supplies beyond which the update is formed in batches of the configured size. The default value is set to 5000.
- iv_integration.largeOrder.tempReservation.disableForLineSize
- The number of lines exceeds the temporary reservation that is created in Sterling Intelligent Promising Inventory Visibility during scheduling or releasing an order to block inventory is not enabled. The default value is set to 5000.
- iv_integration.largeOrder.batchFailure.considerUnavailable
- Which reading availability or reservation in Sterling Intelligent Promising Inventory Visibility, if a batch fails with an error, the application considers failed lines as not available and proceeds. If the property is set to false, and if one or more batches fail to process, the API displays an error message.
- iv_integration.largeOrder.deleteReservationRetry
- When a reservation in Sterling Intelligent Promising Inventory Visibility does not conform to the input criteria, the reservation in Sterling Intelligent Promising Inventory Visibility must be deleted. If any error occurs when deleting the reservation, the application retries to delete the reservation. The default value is set to 3.
- iv_integration.largeOrder.batchSplit.tolerance
- If batch processing is enabled, the allowed percentage for not splitting the Node Availability, Network Availability, or Reservation API calls to Sterling Intelligent Promising Inventory Visibility. For example, if the batch size for node availability is 500, then considering 50% tolerance until a request for 750 Lines is called, the calls to Sterling Intelligent Promising Inventory Visibility is not split in batches. The default value is set to 0.