COMPENSATE_RESTART

This EPMR action is assigned as the value of an EPMR characteristic if a compensatory as well as 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:

  1. 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 will be COMP-1_04ceddc8-60fc-4800-82b9-4f3382400000.
  2. 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 example COMPENSATE_PROVIDE) is not present in the product model, the regular plan fragment specified for CANCEL action will be assigned.
  3. The compensatory plan item, by default, will 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 should 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 will be cancelled

    In order 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 AOPD configurations. Refer topic Amendment Configuration Flags to understand the significance of each flag.

  4. The action and the processComponentID in the existing plan item will be 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.
Note: A compensatory plan item, if requiring creation, is created always against a regular plan item in the first amendment. However, in the subsequent amendment requests, it can be created against a regular or a REDO plan item from the earlier amendment based on the execution plan at that point of time, as shown in the following figure. A compensatory plan item is never created against another compensatory plan item that was created during the last amendment.
Dependency between the compensatory plan item COMP-2_REDO-1_P1 created during second amendment and the REDO plan item from the last amendment REDO_P1, which will be cancelled.

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:

  1. 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 will be REDO-1_04ceddc8-60fc-4800-82b9-4f3382400000.
  2. The action in the redo plan item is the one that is passed in the corresponding order line in the amendment request.
  3. 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.
  4. The redo plan item will 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.
Dependency between the REDO plan item REDO_P1 and the compensatory plan item COMP-1_P1
Note: A redo plan item, requiring creation, is always created against a regular plan item in the first amendment. However, in the subsequent amendment requests, it can be created against a regular or a REDO plan item from the earlier amendments based on the execution plan at that point of time, as shown in the following figure. A redo plan item is never created against a compensatory plan item that was created during the last amendment.
Dependency between the redo plan item REDO-2_REDO-1_P1 created during second amendment and the REDO plan item from the last amendment REDO_P1, which will be cancelled

In case of OrderLine Cancellation or Entire Order Cancellation, even if the EPMR action is COMPENSATE_RESTART, only compensatory plan item will be created. There is no need to create a redo plan item as the order line, or the entire order will be cancelled.

Note: RESTART is not a logical EPMR action in case of an order line or an entire order cancellation. If RESTART action is encountered while processing the order line or the order cancellation, no action will be taken on the corresponding plan item. A relevant message is logged, instead, to report the same.