IBM Support

createOrder API inserts an OPEN_ORDER demand in yfs_inventory_demand table.

Troubleshooting


Problem

createOrder API inserts an OPEN_ORDER demand in yfs_inventory_demand table.

Symptom

createOrder API inserts an OPEN_ORDER demand in yfs_inventory_demand table. In the scenario when there is no shipnode at orderline the OPEN_ORDER demand has blank ship node key. The OrderLineReservation however has a ship node. Since shipnode at orderline is not matching the shipnode at OrderLineReservation, createOrder creates only RSRV_ORDER demand but OPEN_ORDER demand does not change. When orderline has shipnode and if it matches with OrderLineReservation shipnode, createOrder creates negative OPEN_ORDER demand for quantity given in OrderLineReservation. If this quantity is equal to ordered qty, OPEN_ORDER demand becomes zero and there is only RSRV_ORDER demand for the order.

In case of reservations from multiple nodes for the same orderline :

1. If a particular shipnode is passed at the order line, the OPEN_ORDER demand for that node would be removed and only RSRV_ORDER would remain. However, for the other node both OPEN_ORDER as well as RSRV_ORDER demand types would be present.

2. If a ship node is not passed at all at the order line, OPEN_ORDER as well as RSRV_ORDER demand types would be present for all the nodes.

Cause

We were able to replicate the issue and this is a expected behavior of the product and explanation is as below.

From createOrder API java docs, we have

For Reservation if a ShipNode is passed and either:
a) ReserveInventoryFlag value is Y
b) The Rule RESERVE_INVENTORY is set to Y
c) ReservationID is passed
d) Reservation is mandatory for the order line,
the createOrder API looks for the inventory availability for DemandType of RSRV_ORDER.

From the input xml for CreateOrder we noticed that no shipnode is passed. Hence the open order and reserved order demand type was created.
When we schedule the order, it will consume both the demand types.

I see that it is already documented in java docs that the reservation is consumed only when the shipnode is passed in the createOrder input xml. Please refer below

For the order to consume the reservation the following attributes should be matched
1. ItemID, Unit of Measure, and Product Class should be the same
2. Node on the Order Line Reservation should match either line's shipping or procurement node
3. Requested Reservation Date on the Order Line Reservation should be the same as the lines' Requested Ship Date.

When we pass shipnode in the input xml open order demand type will not be created. In such scnarion order will be in reserved status.

Resolving The Problem

Can you please try out the below 2 scenarios to understand the reservation behavior better.

Scenario 1.

Create a reservation for a item.
Create order for the item reservation using the reservation details and by passing the shipnode in the orderline.(order will be in reserved status)
See the demand details in the inventory console.(only one demand type will be noticed i.e, Reserved order)
Later schedule the order and check the demand details.

Scenario 2.

Create a reservation for a item
Create order for the item reservation using the reservation details and pass shipnode as blank in the orderline.(order will be in created status)
See the demand details in the inventory console. (double demand will be noticed)
Later schedule the order and check the demand details.

[{"Product":{"code":"SS6PEW","label":"IBM Sterling Order Management"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Component":"Distributed Order Management","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.2.1;9.2;9.1;9.0;8.5","Edition":"Foundation","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Document Information

Modified date:
16 June 2018

UID

swg21647083