Modify Item Quantity
The IBLPN modify_item_qty API allows the caller to adjust item inventory in a “Received” or “Located” IBLPN. You can only update a single IBLPN and item per request.
Serial Tracked Items
The API behavior includes an option for serial-tracked items so that, when
adjustment_qty is negative, Inventory History Transactions
are written only for the negative adjustment being applied.
For serial-tracked items, when the caller reduces quantity with
adjustment_qty, the caller should pass only the serial
numbers for the adjusted quantity. The system deducts inventory based on the
quantity entered and writes IHT records only for the adjusted quantity and
corresponding serial numbers.
Example
Starting inventory:
| IBLPN Number | Item | Quantity | Serial Numbers |
|---|---|---|---|
LPN-01 |
SKU-A |
5 | SRL001, SRL002,
SRL003, SRL004,
SRL005 |
Request intent:
{
"options": {
"adjustment_qty": -2,
"serial_nbrs": ["SRL004", "SRL005"]
}
}
Expected inventory after update:
| IBLPN Number | Item | Quantity | Serial Numbers |
|---|---|---|---|
LPN-01 |
SKU-A |
3 | SRL001, SRL002,
SRL003 |
Expected inventory history:
| History Activity | Item | Adjustment Quantity | Serial Number |
|---|---|---|---|
17 - Inventory Adjusted post
verification |
SKU-A |
-1 | SRL004 |
17 - Inventory Adjusted post
verification |
SKU-A |
-1 | SRL005 |
Options
Regardless of the method used to identify the IBLPN, the following input is valid:
| Name | Type | Required | Description |
|---|---|---|---|
| item_barcode | String | C | Item identifier. |
| item_alternate_code | String | C | Item identifier. |
| adjustment_qty | Numeric | Y | Non-zero adjustment quantity. Quantity adjustment to apply. For serial-tracked items, pass the serial numbers that correspond to the adjustment quantity. |
| batch_nbr | String | N | Batch tied to target inventory. |
| expiry_date | Date | N | Expiration date tied to target inventory. |
| invn_attr_X | String | N | Attributes A-O tied to the inventory. |
| reason_code | String | Y | Recorded on inventory history. |
| transaction_ref_nbr | String | N | Recorded on inventory history. |
| actual_qty | Numeric | Y | Actual quantity of the LPN. Actual quantity value used by the existing Modify Item Quantity flow. |
| serial_nbrs | Array/String | C | Serial numbers included in the adjustment for serial-tracked items. |
| serial_nbr_list | String | N | Serial Number list |
- Only one of `item_barcode` or `item_alternate_code` is allowed.
- IBLPN inventory matching is restrictive and does not support wildcard
searches:
- If no `batch_nbr` is provided, only match IBLPN inventory without a batch.
- If no `expriy_date` is provided, only match IBLPN inventory without expiration.
- If no `invn_attr_X` value is provided for A-O, it will be treated as blank.
- The user must send either adjusted quantity or actual quantity.
IBLPN Lookup by ID
POST .../entity/iblpn/{id}/modify_item_qty/
Caller knows the unique `id` value of the IBLPN, which is added to the request URL. No additional `parameters` data is required from the request body.
IBLPN Lookup by Filters
POST .../entity/iblpn/modify_item_qty/
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| container_nbr | String | Y | IBLPN to be adjusted. This API supports updating current quantity of partly allocated IBLPNs. You can increase current quantity of a partly allocated IBLPN without restrictions. You can decrease current quantity, provided it does not fall below the currently allocated quantity. |
| facility_id | Integer | N | IBLPN’s facility. |
| company_id | Integer | N | IBLPN’s company. |
| actual_qty | Numeric | Y | Actual quantity of the LPN |
- Only a single IBLPN may be moved per request.
- The `__in` lookup is not supported for `container_nbr`.
- `facility_id` and `company_id` both additionally support string lookup by
`code` using the double-underscore notation:
- facility_id__code
- company_id_code
{
"options": {
"item_barcode": "ITEM1234",
"actual_qty": 13,
"batch_nbr": "BATCH1234",
"expiry_date": "2020-01-02",
"invn_attr_a": "A",
"reason_code": "C",
"transaction_ref_nbr": "TX123457890",
"serial_nbr_list": ["SN001", "SN002",...,"SN0013"]
}
}
Track User Activity
If you have purchased WFM (Oracle Workforce Management), you can also send user activity data using the following parameters in the Modify Item Quantity API.
- Screen_name: Name of the application or screen in the external system that was used by the user to modify the LPN.
- Begin_ts: Time at which the user started modifying the LPN.
- End_ts: Time at which the user completed the modification of the LPN.
If all the three parameters are sent in the API, and if WFM is enabled, user activity is written to the WMS Activity view and subsequently interfaced to WFM, enabling you to analyze user productivity through productivity reports in WFM.
- All three parameters must be sent for WMS Activity to be written.
- If WFM is not enabled, WMS Activity is not written even if the three parameters are sent.
- In order for WMS Activity data to interface successfully to WFM, screen_name that is sent in the API has to be configured as a screen in WMS using an RF module and mapped to a work area activity in WFM.
- Screen_name sent on the API is also written on the corresponding IHTs that are written with this API.
- If only screen_name is sent without begin_ts and end_ts, the screen_name is written on the IHT, even if WFM is not enabled.
- Begin_ts and End_ts cannot be greater than the current timestamp of the facility in the API.
Request Body with User Activity Data
{
"parameters": {
"facility_id": 268,
"company_id": 572,
"container_nbr": "LPN123"
},
"options": {
"item_barcode": "Item123",
"adjustment_qty": 10,
"reason_code": "DMG",
"begin_ts": "2024-05-27T18:30:00",
"end_ts": "2024-05-27T18:45:00",
"screen_name": "Modify IBLN Qty"
}
}