Troubleshooting
Problem
getInventoryMismatch should not delete Missed Out SupplyDetails (Supply Type, Lot or ShipByDate records)
Symptom
PART: 5.0 SP2 HF6
getInventoryMismatch API deletes any missed out
SupplyDetails records for a given Item in one run of the api
Simulation
Steps.
1. create a lot controlled item avery_item3
2. create lot
quantities for this item
Lot1 - 100 units and
Lot2 - 200
units
3. Now run getInventoryMismatch api as below
<InventorySnapShot
ApplyDifferences="True">
<ShipNode CompleteInventoryFlag="N"
ShipNode="SRG-Cal">
<Item ItemID="avery_item3" ProductClass=""
UnitOfMeasure="">
<SupplyDetails LotNumber="1" Quantity="100"
SupplyType="ONHAND"
Tracked="Y">
</SupplyDetails>
</Item>
</ShipNode>
</InventorySnapSho
t>
4. You will notice that the record for Lot=2 gets deleted
completely.
Client has a situatuion where they cannot give all 5000 lots
of the item in this XML for performance reasons.
There needs to be a way
to tell the API that the SupplyDetails being passed is NOT a complete list (
CompareAllInventoryLotsFlag="N" )
So that the API does not delete the missed
out Lots.
An added benefit of this parameter would be that it will
allow the user to pass The supplyDetails for an item in two places in the same
xml.
Once for supplytype ONHAND Once for supply Type Held. etc.
Cause
Resolving The Problem
This has been fixed in 5.0 sp2 HF6 and version above.
a new flag
CompareAllInventoryLotsFlag has been introduced. This works at an InventoryItem
level.
If you have an item 277
HELD 12
PO_PLACED 11
ONHAND
13
If you pass XML as below
<InventorySnapShot
ApplyDifferences="Y">
<ShipNode CompleteInventoryFlag="Y"
CompareAllInventoryLotsFlag="N" ShipNode="Lokesh2">
<Item ItemID="277"
ProductClass="" UnitOfMeasure="">
<SupplyDetails Quantity="111"
SupplyType="PO_PLACED"/>
</Item>
<Item ItemID="277" ProductClass=""
UnitOfMeasure="">
<SupplyDetails Quantity="122"
SupplyType="HELD"/>
</Item>
</ShipNode>
</InventorySnapShot>
Ple
ase Note I have Not given anything for the ONHAND record.
This effectively
wipes out the ONHAND record
after the api runs
I have for item 277
HELD 12
PO_PLACED
11
ONHAND 0
Deal is
this
CompleteInventoryFlag="Y" - Works at a ShipNode level - any missing
data Item/SupplyTime/Lot is wiped out
CompareAllInventoryLotsFlag="Y" Works
at an Item level Under one Item tag - anything missing it wipes it
out.
If you use a Y Y and try a
ItemA+SupplyX,
ItemA
+SupplyY
Thats an unknown condition. You should give this
as
ItemA
SupplyX
SupplyY
But a Y N and
ItemA+SupplyX,
ItemA +SupplyY
will work and bring inventory to sysnc with what you
need.
Historical Number
PRI49292
Product Synonym
[<p><b>]Fact[</b><p>];
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg21522649