Maegham

DIRTY NODE

Introduction:

Dirty Node refers that when an inventory for an item is unavailable in a certain Ship Node, the system marks Ship Node as Dirty Node for that item and blocking any subsequent orders for that item from being routed to the node until it is fixed.

Once the shipnode is marked as dirty node, the system avoids from sourcing that item from the node until it is rectified. This can be performed either manually or automatically when a pick failure occurs because of unavailable inventory. After the inventory is corrected or verified, the dirty flag can be reset for the shipnode to process the order fulfillment for the specific item in the shipnode again.

manageInventoryNodeControl API

IBM Sterling OMS offers the manageInventoryNodeControl API to mark an item as a dirty item for a particular shipping node. After being applied, that ship node is treated as a dirty node  for the specific item and will not fulfill the item from the specific ship node during the order fulfillment process. This will take into account that the inventory is inaccurate for that item during a certain timeframe.

The manageInventoryNodeControl API in IBM Sterling OMS is useful for temporarily holding or resolving inventory for a specific item.

Table Name

   YFS_INVENTORY_NODE_CONTROL

Scenario

A customer makes an order for an iPhone. IBM Sterling OMS allocates the order to Store A according to the available inventory. When the store associate attempts to pick the iPhone, they found inventory shortage.

Steps to Reproduce

Create an item using manageItem API and adjust inventory for it

manageItem API

<ItemList> <Item ItemGroupCode=“PROD” ItemID=“Iphone14Pro” OrganizationCode=“MaeghamDigital” UnitOfMeasure=“EACH”> <PrimaryInformation AssumeInfiniteInventory=“N” ShortDescription=“Iphone14Pro” Description=“Iphone14Pro” ExtendedDescription=“Item” DefaultProductClass=“GOOD” IsPickupAllowed=“Y” IsDeliveryAllowed=“Y” IsForwardingAllowed=“Y” IsProcurementAllowed=“Y” IsReturnable=“Y” IsItemBasedAllocationAllowed=“Y” IsShippingAllowed=“Y” ReturnWindow=“30” Status=“3000”/> <InventoryParameters ATPRule=“MaeghamATP” InventoryMonitorRule=“MaeghamATPMonitorRule” LeadTime=“0” IsItemBasedAllocationAllowed=“Y” NodeLevelInventoryMonitorRule=“MaeghamATPNMonitorRule”/> </Item> </ItemList>

adjustInventory API

<Items>   <Item AdjustmentType=“ADJUSTMENT” ItemID=“Iphone14Pro” OrganizationCode=“MaeghamDigital” Quantity=“20” ShipNode=“MITDigitalDC01” SupplyType=“ONHAND” UnitOfMeasure=“EACH” ProductClass=“GOOD”/>     <Item AdjustmentType=“ADJUSTMENT” ItemID=“Iphone14Pro” OrganizationCode=“MaeghamDigital” Quantity=“10” ShipNode=“MITDigitalDC02” SupplyType=“ONHAND” UnitOfMeasure=“EACH” ProductClass=“GOOD”/> </Items>

Once inventory adjusted. New entry is added into YFS_INVENTORY_SUPPLY table against the item.

Sourcing rule detail

Path: DOM > Cross application > order promising > sourcing and Scheduling > product being shipped > sourcing rules.

manageInventoryNodeControl

<InventoryNodeControl InvPictureIncorrectTillDate=“2025-10-30T10:27:00” InventoryPictureCorrect=“N” InventoryPictureCorrectForAllItemsAtNode=“N” ItemID=“Iphone14Pro” Node=“MITDigitalDC01” NodeControlType=“ON_HOLD” OrganizationCode=“MaeghamDigital” ProductClass=“GOOD” StartDate=“2025-10-23” UnitOfMeasure=“EACH”/>

Dirty node applied for a specific item in certain ship node, a node record is generated in the YFS_INVENTORY_NODE_CONTROL Table.

<Order AllocationRuleID=“MaeghamSch” BuyerOrganizationCode=“MaeghamDigital” DocumentType=“0001” EnterpriseCode=“MaeghamDigital” SellerOrganizationCode=“MaeghamDigital”>     <OrderLines>         <OrderLine DeliveryMethod=“SHP” FulfillmentType=“HomeDelivery” ItemGroupCode=“PROD” OrderedQty=“3”>             <Item ItemDesc=“Iphone14Pro” ItemID=“Iphone14Pro” ItemShortDesc=“Iphone14Pro” ProductClass=“GOOD” UnitOfMeasure=“EACH”/>             <LinePriceInfo IsPriceLocked=“Y” UnitPrice=“1000”/>         </OrderLine>     </OrderLines>     <PaymentMethods>         <PaymentMethod CreditCardExpDate=“2027-11-11” CreditCardName=“VISA Card” CreditCardNo=“10000456782342275” CreditCardType=“VISA” FirstName=“Kavitha” LastName=“Ravikumar” PaymentType=“CreditCard” MaxChargeLimit=“3000” UnlimitedCharges=“N”>             <PaymentDetails AuthCode=“100” AuthorizationExpirationDate=“2026-11-11T23:00:00” AuthorizationID=“” ChargeType=“AUTHORIZATION” ProcessedAmount=“3000” RequestAmount=“3000”/>         </PaymentMethod>     </PaymentMethods>     <PersonInfoShipTo AddressLine1=“” AddressLine2=“” AddressLine3=“” AddressLine4=“” AddressLine5=“” AddressLine6=“” City=“Theni” Company=“” Country=“IN” FirstName=“” JobTitle=“” LastName=“” MiddleName=“” MobilePhone=“” State=“TN” Title=“” ZipCode=“520001”/>     <PersonInfoBillTo AddressLine1=“” AddressLine2=“” AddressLine3=“” AddressLine4=“” AddressLine5=“” AddressLine6=“” City=“Theni” Company=“” Country=“IN” FirstName=“” JobTitle=“” LastName=“” MiddleName=“” MobilePhone=“” State=“TN” Title=“” ZipCode=“520001”/> </Order>

Schedule Order

The order got scheduled to a different shipNode eventhough the MITDigitalDC01 have the highest priority.

Once the inventory picture is corrected. Invoke the manageInventoryNodeControl to resolve it for that item and shipnode.

<InventoryNodeControl InvPictureIncorrectTillDate=“2025-10-30T10:27:00” InventoryPictureCorrect=“Y” InventoryPictureCorrectForAllItemsAtNode=“N” ItemID=“Iphone14Pro” Node=“MITDigitalDC01” NodeControlType=“ON_HOLD” OrganizationCode=“MaeghamDigital” ProductClass=“GOOD” StartDate=“2025-10-23” UnitOfMeasure=“EACH”/>

Once the dirtyNode for that item is resolved, the shipnode record is deleted from the YFS_INVENTORY_NODE_CONTROL. From now orders will fulfill from this shipnode based on the inventory availability.

 

Scroll to Top