IBM Support

findInventory API checks for inventory in low priority DG even though inventory is available in high priority DG

Troubleshooting


Problem

findInventory API checks for inventory in low priority DG even though inventory is available in high priority DG

Symptom

In a scenario having inventory across multiple channels/distribution groups, findInventory API checks for inventory in lower priority distribution groups even though it has found inventory in a higher priority distribution group.
For e.g. Suppose 5 order lines are passed as input, with 3 of them available in the first priority distribution group, another one in the 2nd and the remaining one in the 3rd distribution group.
Even though it finds inventory in the first distribution group for the 3 lines, it sends out all the 5 lines for inventory check in the 2nd and then the 3rd distribution group also. Finally the suggested option gives the first node it found (since it is optimizing on priority). Avoiding the inventory check for lines for which inventory already found can help optimizing the process and improve the performance.

Scenario: - There are 3 node i.e. store1, store2, store3
and three distribution group i.e. DG1, DG2 and DG3.
DG1 has only store1 as priority 10.
DG2 has only store2 as priority 20.
DG3 has only store3 as priority 30.
Now create 3 Item i.e. Item1, Item 2 and Item3.
Item1 is present as one quantity in each of three nodes i.e. store1, store2 and store3.
Item2 has 1-1 quantity available on store2 and store3.
Item3 is available in store3 in 1 quantity.
=======================

Simulation steps:- Call findInventory API using with following input.
<Promise AggregateSupplyOfNonRequestedTag="Y" CheckInventory="Y" ConsiderSupplementalCapacity="Y" DeliveryDateBased="Y" EnterpriseCode="DEFAULT" IgnoreMinNotificationTime="Y" IgnorePromised="Y" IgnoreUnpromised="Y" IsPartialSubstitutionAllowed="Y" OrganizationCode="DEFAULT" UseUnplannedInventory="N">
<PromiseLines>
<PromiseLine FulfillmentType="PRODUCT_SOURCING" ItemID="Item1" LineId="1" ProductClass="Good" RequiredQty="1" UnitOfMeasure="EACH"></PromiseLine>
<PromiseLine FulfillmentType="PRODUCT_SOURCING" ItemID="Item2" LineId="1" ProductClass="Good" RequiredQty="1" UnitOfMeasure="EACH"></PromiseLine>
<PromiseLine FulfillmentType="PRODUCT_SOURCING" ItemID="Item3" LineId="1" ProductClass="Good" RequiredQty="1" UnitOfMeasure="EACH"></PromiseLine>
</PromiseLines></Promise>

Resolving The Problem

LineId should not be same for all promise lines. LineId is a unique and required field.

If LineId is not passed as unique, then it consider all the line as one line and do the calculations accordingly which leads to non-efficient calculation of inventory picture.

[{"Product":{"code":"SS6PEW","label":"IBM Sterling Order Management"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Component":"Not Applicable","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Historical Number

NFX6696

Product Synonym

[<p><b>]Severity[</b><p>];Normal

Document Information

Modified date:
16 June 2018

UID

swg21552716