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
Example Request Body:
{
    "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.

Note:
  • 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"
    }
}