Troubleshooting
Problem
Calling reserveItemInventoryList API with ReserveIfPartial=N in the input xml still reserves the partial inventory available without any error. Expected Behavior: Inventory should not be reserved and an exception should be thrown as ReserveIfPartial="N"
Cause
ReserveIfPartial is line level attribute and only considers if a line is partially present or fully present.
It does not enforce the check across lines. Even if passed at header level, it is considered for each line and not across lines. The desired behavior of only reserving if all lines are available is promising API behavior and is provided by reserveAvailableInventory API with constraint ShipComplete set in scheduling rules.
Diagnosing The Problem
Make sure only Item - Test1_1 has inventory available at Node - Node1.
Call reserveItemInventoryList with similar input:
<ReserveItemInventoryList CheckInventory="Y" MaximumRecords="5000" ReserveIfPartial="N">
<ReserveItemInventory DemandType="RESERVED" ItemID="Test1_1"
OrganizationCode="DEFAULT" QtyToBeCancelled="0"
QtyToBeReserved="1" ReservationID="993479301" ShipNode="Node1" UnitOfMeasure="EACH"/>
<ReserveItemInventory DemandType="RESERVED" ItemID="Test1_2"
OrganizationCode="DEFAULT" QtyToBeCancelled="0"
QtyToBeReserved="1" ReservationID="993479301" ShipNode="HD2" UnitOfMeasure="EACH"/>
<ReserveItemInventory DemandType="RESERVED" ItemID="Test1_3"
OrganizationCode="DEFAULT" QtyToBeCancelled="0"
QtyToBeReserved="1" ReservationID="993479301" ShipNode="HD1" UnitOfMeasure="EACH"/>
</ReserveItemInventoryList>
Note: ReserveIfPartial=N in the input XML
Observed Behavior:
API call goes through without any error and Test1_1 gets reserved at Node1.
Resolving The Problem
This is working as designed for reserveItemInventoryList API. If an error is needed to be thrown, you can call reserveItemInventory API in a multiAPI call.
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg22006754