DownToVirtualPositionIfExists
Changed on:
12 Aug 2025
Overview
Sends event {eventName} to the virtual position if a Virtual Position does exist
| Plugin Name | Inventory Reference Module | 
|---|---|
| Namespace | [[account.id]].globalinventory | 
The Inventory Reference Module is the foundation for inventory related implementations. It provides reference Workflows for inventory ingestion and processing. Extensible by design, use this Module as a base to build a solution to the needs of your customers.
The Inventory Module includes the following areas:
- Product Catalogue workflow
- Inventory Catalogue workflow
- Control Group workflow
- Virtual Catalogue workflow
UI Description
Sends event {eventName} to the virtual position if a Virtual Position does exist
Accepts
- VIRTUAL CATALOGUE
Actions
- This rule produces a SendEventAction that forwards the incoming event as an inline event with the given name {eventName} only if the virtual position exists. Otherwise, it does not have any output/output action
Rule parameters
| Parameter | Description | 
| eventName | The name of event to be triggered | 
Event attributes
| Parameter | Description | Data Type | Required? | 
| virtualPositionRef | The ref of the virtual position | String | Optional | 
| virtualPositionType | The type of the virtual position | String | Required if and only if virtualPositionRef is not null and not empty | 
Exceptions
- If `eventName`rule property is not set in the workflow, a PropertyNotFoundException will be thrown
- If the event attribute `{virtualPositionType}`is null or empty when`{virtualPositionRef}`event attribute is not null and not empty, an EventAttributeNotFoundException will be thrown.
Configuration example
1{
2  "name": "{{accountId}}.globalinventory.DownToVirtualPositionIfExists",
3  "props": {
4    "eventName": "UpdateAggregateVirtualPosition"
5  }
6}Detailed Technical Description
If the `{virtualPositionRef}` event attribute value is not null and empty in the incoming event the rule will produce an inline event with `{eventName}`. It does not query the GraphQL API to check the virtual position, and only checks the presence of the `{virtualPositionRef}` event attribute value. When it generates the new event,
- `{virtualPositionType}`event attribute value is used as the subtype of the newly generated event
- `{virtualPositionRef}`value is used as the entity ref of the newly generated event