Details
-
Feature
-
Status: Open (View Workflow)
-
Minor
-
Resolution: Unresolved
-
2.0.0
-
None
Description
Feature
- The following use case should be supported:
- Assume a number of orders carrying a common order variable countryCode. Some orders carry the same value for the countryCode variable, some orders carry different values.
- Assume such orders to be scheduled for the same point in time or to be scheduled in a way that new orders are started while other orders are running.
- The requirement is to group and to prioritize the processing of orders like this:
- orders carrying the same value for the countryCode order variable are processed in parallel.
- orders with a countryCode value different from the value of the countryCode variable of running orders have to wait until no orders are running.
- A Group Instruction is introduced that can include any other instructions, for example Job Instructions.
- The Group Instruction specifies an expression that is used to determine the grouping criterion.
- The grouping expression can makes use of order variables, workflow variables, constant values and operators such as string concatenation.
- Variables used in the grouping expression are considered immutable within the scope of the Group Instruction.
- The grouping expression is evaluated at the point in time when the first order enters the Group Instruction.
- Any additional orders that match the same evaluation result as the first order, i.e. the same grouping criterion, can run instructions inside the Group Instruction in parallel to running orders.
- Any additional orders that do not match the same evaluation result have to wait until no orders carrying the grouping criterion of the first order are available with any instruction inside the Group Instruction.
- After the first order and any additional orders carrying the same grouping criterion leave the Group Instruction then the grouping expression of the next order is evaluated.
- The similar behavior as for the above first order applies when grouping remaining orders matching the same grouping criterion and making wait remaining orders that do not match the same grouping criterion.
- The Group Instruction specifies an expression that is used to determine the grouping criterion.