When POP receives a service order, it has already been enriched1 and sequenced. The sequencing defines which product orders are dependent on others within the service order. From these dependencies, POP derives a sequence of slices, representing product orders that can be executed in parallel. A
slice represents a set of product orders that are not dependent on each other, and which can be executed at the same time. When one product order depends on another one, the two cannot be in the same slice. The following figure shows a set of product orders arranged in slices.
You can set the onPOPError parameter of a service order to affect how the slices are executed.
When onPOPError is set to
stopDependent, only product orders that have all their dependent ones successfully executed are processed. In other words, Product Orders sequenced after a failed Product Order are not processed. If any product orders fail, then the service order status is set to Failed.
The execution policy can either be Product Order Slicing or
Dependency Tree. The way product orders are executed can be controlled on each service order basis by updating the following service order data set parameter:
If the value of this parameter is set to Slicing, the execution is as usual, after each slice.
If the value of this parameter is set to Dependency Tree, product orders are launched at the earliest when all of their constraints are appropriate, irrespective of their slice numbers .
If the value of this parameter is set to AfterSlice, POP checkpoints the service order after each slice. This applies only to the service orders executing without dependency tree.