UpsertInventoryQuantity
Rule
Changed on:
12 Aug 2025
Overview
Create or Update an Inventory Quantity.| Plugin Name | Inventory Reference Module |
|---|---|
| Namespace | [[account.id]].globalinventory |
- Product Catalogue workflow
- Inventory Catalogue workflow
- Control Group workflow
- Virtual Catalogue workflow
UI Description
Create or update an Inventory Quantity of Type {" + PROP_DEFAULT_TYPE + "} using Event attributes.
Accepts
- INVENTORY_POSITION
Actions
- This Rule produces a MutationAction that will create or update an Inventory Quantity
Rule parameters
| Name | Type | Description |
`defaultType` | `String` | The Fallback Type for an Inventory Quantity to be created/updated |
Event attributes
| Name | Type | Description | Required |
`qty` | `Integer` | The quantity value of the Inventory Quantity | Yes |
`condition` | `String` | The condition of the Inventory Quantity | No |
`expectedOn` | `Date (ISO-8601 format)` | The date when the Inventory Quantity is expected to be available | No |
`storageAreaRef` | `String` | The Reference of the storage area where the Inventory Quantity will be located | No |
`inventoryPositionRef` | `String` | The associated Inventory Position Reference | Yes |
`inventoryQuantity` | `InventoryQuantityUpdate` | The Object that contains the Inventory Quantity specific data. See the Sub-attributes below. | No |
InventoryQuantityUpdate Object Sub-attributes
| Name | Type | Description | Required |
`ref` | `String` | The Reference of the Inventory Quantity | No |
`qty` | `Integer` | The quantity value of the Inventory Quantity | No |
`type` | `String` | The Type of the Inventory Quantity | No |
`status` | `String` | The Status of the Inventory Quantity | No |
`attributes` | `Map<String, Object>` | The following attributes are supported:
| No |
Exceptions
- This Rule throws a
`PropertyNotFoundException`when the Rule parameter(s) is not provided.
- This Rule throws an
`EventAttributeNotFoundException`when the required Event attribute(s) is not provided.
- This Rule throws an
`InvalidAttributeTypeException`when the provided:`qty`attribute value is not`Integer``expectedOn`attribute value type can not be identified
- This Rule throws an
`InvalidAttributeValueException`when the provided`expectedOn`attribute value can not be parsed to a valid date (or null).
Configuration example
1{
2 "name": "[[account.id]].globalinventory.UpsertInventoryQuantity",
3 "props": {
4 "defaultType": "LAST_ON_HAND"
5 }
6}Detailed Technical Description
This Rule execution includes the following steps:- Validate that:
- The
`defaultType`Rule parameter has been provided - The mandatory Event attributes have been provided:
`qty``inventoryPositionRef`
- The
`qty`attribute value is an`Integer`
- The
- Retrieve the Inventory Position and its Inventory Quantity(ies) based on the provided:
`inventoryPositionRef``inventoryQuantity.ref`
This Sub-attribute is optional, so when it is not provided, the fallback logic will generate the Inventory Quantity Reference based on the following pattern:
The Inventory Position Reference, a colon, and the Inventory Quantity Type. For example:- If the
`inventoryPositionRef`(Event attribute) is`PRDREF:LOCREF:DEFAULT` - And the Inventory Quantity Type is
`LAST_ON_HAND`:`inventoryQuantity.type`Sub-attribute (when provided)- Otherwise,
`defaultType`(Rule parameter)
- The generated Inventory Quantity Reference will be
`PRDREF:LOCREF:DEFAULT:LAST_ON_HAND`
- If the
- Execute a
`MutationAction`to:- Update the Inventory Quantity with the provided attributes when it exists (i.e., was successfully retrieved by its Reference)
- Otherwise, create a new Inventory Quantity with the provided attributes