COMPENSATE_RESTART
This Execution Plan Modification Rules action is assigned as the value of an Execution Plan Modification Rules characteristic if a compensatory and redo plan item is to be created against an existing plan item as a part of the amendment processing.
Compensatory Plan Item
The purpose of a compensatory plan item is to compensate, or reverse, the tasks that were done by the existing plan item before the amendment request was initiated. The important aspect of a compensatory plan item is as follows:
- The planItemId of the compensatory plan item is derived using the planItemId of the existing plan item and has the following format: COMP-<amendment number>_<planItemId of the existing plan item>. For example, if the planItemId of the existing plan item is 04ceddc8-60fc-4800-82b9-4f3382400000 and a compensatory plan item is created against it during the first amendment request, the planItemId assigned to that compensatory plan item is COMP-1_04ceddc8-60fc-4800-82b9-4f3382400000.
- The action and planFragmentUniqueID (processComponentID) in the compensatory plan item is assigned on the basis of the action in the existing plan item, which is described in the following table:
Action in Existing Plan Item Action in Compensatory Plan Item processComponentID in Compensatory Plan Item PROVIDE
CEASE
Value of Characteristic COMPENSATE_PROVIDE
UPDATE
UPDATE
Value of Characteristic COMPENSATE_UPDATE
CEASE
PROVIDE
Value of Characteristic COMPENSATE_CEASE
Note: If the required COMPENSATE_<ACTION> characteristic (for exampleCOMPENSATE_PROVIDE
) is not present in the product model, the regular plan fragment specified forCANCEL
action is assigned. - The compensatory plan item, by default, have a simple END-START point dependency on the existing plan item being canceled, as shown in the following figure. This is to ensure that the compensatory task must be started only after the existing task, being run, is activated and canceled.
Dependency between the compensatory plan item COMP-1_P1 and the existing plan item P1 that is canceled
To enable the backward compatibility of having no dependency in the compensatory plan items in TIBCO Fulfillment Order Management 6.0, the flag com.tibco.af.aopd.flags.amendment.noDependencyInCOMPPlanItems must be set in Automated Order Plan Development configurations. Refer to the topic Amendment Configuration Flags to understand the significance of each flag.
- The action and the processComponentID in the existing plan item is set to CANCEL and NO_RECIPROCAL_ACTION respectively to cancel the existing plan item. Note that the Orchestrator changes the processComponentID to NO_RECIPROCAL_ACTION only for the PENDING plan items that are canceled. The processComponentID for the SUSPENDED plan items remains the same.
Redo Plan Item
The sole purpose of redo (restarting) plan item is to restart or redo the tasks that were supposed to be done in the existing plan item before the amendment request was initiated. The important aspects of redo plan item are as follows:
- The planItemId of redo plan item is derived using the planItemId in the existing plan item and has the following format: REDO-<amendment number>_<planItemId of the existing plan item>. For example, if the planItemId of the existing plan item is 04ceddc8-60fc-4800-82b9-4f3382400000 and redo plan item is created against it during the first amendment request, the planItemId assigned to that redo plan item is REDO-1_04ceddc8-60fc-4800-82b9-4f3382400000.
- The action in redo plan item is the one that is passed in the corresponding order line in the amendment request.
- The planFragmentUniqueID (processComponentID) in redo plan item is the same as the one in the existing plan item, except in case of order line action change amendments. In such cases, the plan fragment associated with the action in the amendment request is assigned in redo plan item.
- Redo plan item always have a simple
END-START
point dependency on the compensatory plan item that is created, as shown in the following figure. This ensures that the designated tasks are restarted only after the compensatory tasks are finished.
In case of OrderLine cancellation or Entire Order Cancellation, even if the Execution Plan Modification Rules action is COMPENSATE_RESTART, only the compensatory plan item is created. There is no need to create redo plan item on the order line, or the entire order is canceled.
RESTART
is not a logical Execution Plan Modification Rules action in case of an order line or an entire order cancellation. If
RESTART
action is encountered when processing the order line or the order cancellation, no action is taken on the corresponding plan item. A relevant message is logged, instead, to report the same.