COMPENSATE_RESTART
This Execution Plan Modification Rules action is assigned as the value of an Execution Plan Modification Rules characteristic if a compensatory and a 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 are 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:
- The compensatory plan item, by default, have a simple END-START point dependency on the existing plan item being cancelled, as shown in the following figure. This is to ensure that the compensatory task must be started only after the existing task, being executed, is activated and cancelled.
Dependency between the compensatory plan item COMP-1_P1 and the existing plan item P1 that is cancelled
To enable the backward compatibility of having no dependency in the compensatory plan items in TIBCO Fulfillment Order Management 2.0.x, the flag NoDependencyInCOMPPlanItems must be set in Automated Order Plan Development configurations. Refer 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 so as 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 cancelled. The processComponentID for the SUSPENSED plan items remain the same.
Redo Plan Item
The sole purpose of a 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 a redo plan item are as follows:
- The planItemId of the 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 a 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 the redo plan item is the one that is passed in the corresponding order line in the amendment request.
- The planFragmentUniqueID (processComponentID) in the 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 the redo plan item.
- The 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 is 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 compensatory plan item is created. There is no have to create a redo plan item as the order line, or the entire order is cancelled.