Sterling OMS Understanding Supply Demand without Reservation

By | 01/31/2019

Sterling OMS Understanding Supply Demand without Reservation

Sterling OMS Understanding Supply Demand without Reservation

Sterling OMS Understanding Supply Demand without Reservation

In this post we are going to learn, how Supply and Demand works without inventory reservation during the order flow.

Google Definitions on supply and demand

supply

Thank you google

demand

Thank you google

OMS Definitions on supply and demand

  • Supply : How much inventory (Quantity) available at store for sale.
  • Demand :  How much inventory (Quantity) been already allocated for already received/processing orders

Supply & Demand Table Information

  • YFS_ITEM (ORGANIZATION_CODE,ITEM_ID,UOM)
  • YFS_INVENTORY_ITEM (ORGANIZATION_CODE,ITEM_ID,UOM,PRODUCT_CLASS)
  • YFS_INVENTORY_SUPPLY (INVENTORY_ITEM_KEY, SHIPNODE_KEY)
  • YFS_INVENTORY_DEMAND (INVENTORY_ITEM_KEY, SHIPNODE_KEY)

Steps

1. Create new item under Matrix org using API tester

API Name Input XML Query to validate
manageItem <?xml version=”1.0″ encoding=”UTF-8″?>
<ItemList>
<Item Action=”Manage” CanUseAsServiceTool=”N” GlobalItemID=”” ItemGroupCode=”PROD” ItemID=”MATRIX_ITEM”
OrganizationCode=”Matrix” UnitOfMeasure=”EACH”>
<PrimaryInformation Status=”3000″ AssumeInfiniteInventory=”N” CostCurrency=”USD” CountryOfOrigin=”” />
<InventoryParameters ATPRule=”” NodeLevelInventoryMonitorRule=”” />
</Item>
</ItemList>
Select * from yfs_item
Where item_id=’MATRIX_ITEM’

2. Increase inventory for the newly created item with Matrix-R using API tester (same can be done using screen)

API Name Input XML Query to validate
adjustInventory <Items>
<Item AdjustmentType=”ADJUSTMENT” ItemID=”MATRIX_ITEM” OrganizationCode=”Matrix”
ProductClass=”Good” Quantity=”10″
ReasonCode=”” ReasonText=”” ShipNode=”Matrix_WH1″ SupplyType=”ONHAND”
UnitOfMeasure=”EACH” >
</Item>
</Items>
1) Select * from yfs_inventory_item
Where item_id=’MATRIX_ITEM’;

2) Select * from yfs_inventory_item
Where inventory_item_key
In (Select inventory_item_key
From yfs_inventory_item
Where item_id=’MATRIX_ITEM’);

3) Select * from yfs_inventory_supply
Where inventory_item_key
in (Select inventory_item_key
From yfs_inventory_item
Where item_id=’MATRIX_ITEM’)
and shipnode_key=’Matrix_WH1′;

Note: Now yfs_inventory_demand does not have record

3) Create Order and make sure order does not have any hold

API Name Input XML Query to validate
createOrder <?xml version=”1.0″ encoding=”UTF-8″?>
<Order PaymentStatus=”NOT_APPLICABLE” EnterpriseCode=”Matrix-R” ShipNode=”Matrix_WH1″
OrderName=”WebOrderCapture1″
FreightTerms=”3rd Party” SellerOrganizationCode=”Matrix-R” DocumentType=”0001″
CustomerPONo=”CustomerPONo1″ CustCustPONo=”CustCustPONo1″>
<PersonInfoShipTo ZipCode=”71303″ City=”Alexandria” State=”LA” EMailID=”NA” Country=”US”
Company=”ABC” DayPhone=”999-999-0100″ AddressLine1=”W BOLTON AVE ”
FirstName=”TECH” LastName=”TECH” />
<PersonInfoBillTo ZipCode=”63045″ City=”Earth City” State=”MO” EMailID=”” Country=”US”
Company=”ABC” DayPhone=”999-999-999″ FirstName=”XYZ” MiddleName=”” LastName=”ABC” />
<OrderLines>
<OrderLine OrderedQty=”1.0″ ShipNode=”Matrix_WH1″ PrimeLineNo=”1″ >
<Item ItemID=”MATRIX_ITEM” ItemDesc=”Item Description” ProductClass=”Good” />
<OrderLineTranQuantity TransactionalUOM=”EACH” />
</OrderLine>
</OrderLines>
</Order>
1) Select * from yfs_inventory_supply
Where inventory_item_key
in (Select inventory_item_key
From yfs_inventory_item
Where item_id=’MATRIX_ITEM’)
and shipnode_key=’Matrix_WH1′;

Result : No change to supply record

2) Select * from yfs_inventory_demand
Where inventory_item_key
in (Select inventory_item_key
From yfs_inventory_item
Where item_id=’MATRIX_ITEM’)
and shipnode_key=’Matrix_WH1′;

Result : Demand record created with demand type as OPEN_ORDER

3) Perform schedule Order using api tester

API Name Input XML Query to validate
scheduleOrder <ScheduleOrder ScheduleAndRelease=”N” OrderNo=”S775285287981187″
EnterpriseCode=”Matrix-R” DocumentType=”0001″ CheckInventory=”Y” />
1) Select * from yfs_inventory_supply
Where inventory_item_key
in (Select inventory_item_key
From yfs_inventory_item
Where item_id=’MATRIX_ITEM’)
and shipnode_key=’Matrix_WH1′;

Result : No change to supply record

2) Select * from yfs_inventory_demand
Where inventory_item_key
in (Select inventory_item_key
From yfs_inventory_item
Where item_id=’MATRIX_ITEM’)
and shipnode_key=’Matrix_WH1′;

Result : Demand record created with demand type as SCHEDULED

3) Perform release Order using api tester

API Name Input XML Query to validate
releaseOrder <ReleaseOrder OrderNo=”S775285287981187″ EnterpriseCode=”Matrix-R”
DocumentType=”0001″ CheckInventory=”Y” />
1) Select * from yfs_inventory_supply
Where inventory_item_key
in (Select inventory_item_key
From yfs_inventory_item
Where item_id=’MATRIX_ITEM’)
and shipnode_key=’Matrix_WH1′;

Result : No change to supply record

2) Select * from yfs_inventory_demand
Where inventory_item_key
in (Select inventory_item_key
From yfs_inventory_item
Where item_id=’MATRIX_ITEM’)
and shipnode_key=’Matrix_WH1′;

Result : Demand record created with demand type as ALLOCATED

4) Perform confirmShipment using API Tester

API Name Input XML Query to validate
confirmShipment <Shipment Action=”Create-Modify” EnterpriseCode=”Matrix-R”>
<ShipmentLines>
<ShipmentLine DocumentType=”0001″ OrderNo=”S775285287981187″
PrimeLineNo=”1″ ProductClass=”Good”
Quantity=”1″ ReleaseNo=”1″ SubLineNo=”1″ UnitOfMeasure=”EACH”>
</ShipmentLine>
</ShipmentLines>
</Shipment>
1) Select * from yfs_inventory_supply
Where inventory_item_key
in (Select inventory_item_key
From yfs_inventory_item
Where item_id=’MATRIX_ITEM’)
and shipnode_key=’Matrix_WH1′;

Result : Supply record quantity reduced by one

2) Select * from yfs_inventory_demand
Where inventory_item_key
in (Select inventory_item_key
From yfs_inventory_item
Where item_id=’MATRIX_ITEM’)
and shipnode_key=’Matrix_WH1′;

Result : All demand records moved to zero quantity

Happy Learning !!!

Register with us to get more updates

Sterling OMS Forum : View/Ask Questions

Join our channel for updates

Leave a Reply

Your email address will not be published. Required fields are marked *