You are here:
Configure Dynamic Revenue Orchestrator to Pause Status Changes
Coordinate fulfillment between Dynamic Revenue Orchestrator (DRO) and Order Management by configuring pause steps that wait for specific Order Management milestones. For example, pause fulfillment until all ordered items are delivered.
Before you begin, turn on Dynamic Revenue Orchestrator in your org.
Map OMS fields to your context definition so Expression Sets can evaluate them when determining whether to release pause steps in orchestration plans.
-
Extend your context definition to map OMS fields.
- In Setup, go to Dynamic Revenue Orchestrator Settings and select the preconfigured context definition.
-
Add context tags for the OMS fields you want to track.
Common examples:
- ItemStartQuantity: Maps to OrderItemSummary.QuantityOrdered
- ItemEndQuantity: Maps to OrderItemSummary.QuantityDelivered or QuantityShipped
- Map these tags to fields on the SalesTransactionItem object.
- Save the context definition.
-
Create a transient attribute for calculations.
Expression sets require transient attributes to hold temporary calculation values.
- In your context definition, add a custom attribute to the same node as your mapped fields.
- Set the Display Name and Description to match the attribute name exactly.
- Mark the attribute as Transient so that the data doesn’t persist.
- Save your changes.
Important If Display Name and Description don’t match the attribute name, the ExpressionSet evaluation fails. -
Create an expression set for fulfillment conditions.
- In Setup, search for Expression Sets and create an expression set.
- Select your extended context definition.
- Set Usage Type to Fulfillment Condition.
-
Configure the logic to compare OMS field values.
Example: Release pause when all items are delivered.
- Add a List Group to handle multiple OrderItemSummaries in an OrderSummary.
- Calculate the difference between ItemStartQuantity and ItemEndQuantity for each item.
- Sum the differences by using the Aggregate List function. If all quantities match, the sum equals 0.
-
Add a local boolean variable named
isExecuteStepwith default valueFalse. -
Set the condition: If sum equals 0, set
isExecuteStep = True. -
In the final calculation step, check Include in output for the
isExecuteStepvariable. - Save the ExpressionSet.
Important Set the output variable exactly toisExecuteStep(case sensitive). When True, DRO resumes the step. When False, DRO keeps the step paused. -
Configure a pause step in your fulfillment workflow.
- In your fulfillment step definition, add a new Pause step.
- In the step configuration, select Use ExpressionSet as the condition type.
- Select the ExpressionSet you created in Step 3.
- Configure how often DRO re-evaluates the condition (polling interval).
- Save your fulfillment step definition.
When an order is submitted, DRO evaluates the expression set at each polling interval. After Order Management updates the OrderItemSummary quantities and the condition returns True, the pause step releases and fulfillment continues.
| Pause Until | ExpressionSet Logic |
|---|---|
| All items delivered | OrderItemSummary.QuantityDelivered = QuantityOrdered |
| All items shipped | OrderItemSummary.QuantityShipped = QuantityOrdered |
| Partial shipment threshold | OrderItemSummary.QuantityShipped >= (QuantityOrdered × 0.8) |
| Inventory allocated | OrderItemSummary.QuantityReserved = QuantityOrdered |
Troubleshooting
| Issue | Resolution |
|---|---|
| The ExpressionSet shows "Something went wrong." | Define isExecuteStep and select Include in
output. |
| The context tags aren’t available in the ExpressionSet. | Confirm the Display Name and Description match the attribute name for transient attributes. |
| The pause step never releases. | Check that isExecuteStep is a boolean variable and the logic sets it
to True when conditions are met. |
| A generic evaluation error shows. | Turn on DynamicCommonOrchestrator org permission. |

