ROLLBACK_UC_OBJECT

Use the ROLLBACK_UC_OBJECT script function to roll back an active task. You can roll back the following types of tasks:

  • A whole Workflow, including all tasks within the Workflow
  • Part of a Workflow, rolling back until a specific task earlier in the Workflow
  • An individual task

Important!

  • Enable rollback and define rollback actions in the object definition of any tasks that you want to roll back. ROLLBACK_UC_OBJECT processes the rollback actions that are specified for the task.
  • Rolling back is only possible for tasks that have not been deactivated.

More Information:

Tip: Use RERUN_UC_OBJECT to rerun tasks that have been rolled back.

Syntax

ROLLBACK_UC_OBJECT (RunID)

ROLLBACK_UC_OBJECT ([Workflow RunID], RunID2)

ROLLBACK_UC_OBJECT (Workflow RunID, START)

Parameters

  • ROLLBACK_UC_OBJECT
    Rolls back the task

  • RunID
    RunID of the task to roll back
    Format: script variable, number without quotations, or script literal

  • Workflow RunID
    RunID of the Workflow when you want to roll back part of a Workflow until the task with RunID2
    Note: The parameter is optional when you roll back part of a Workflow, and required when you roll back all the way to the START box.
    Format: script variable, number without quotation marks, or script literal

  • RunID2
    RunID of the task that you want to roll back to within the Workflow
    Format: script variable, number without quotation marks, or script literal
    Note: Specify the Workflow RunID and the START keyword without quotation marks to roll back to the START box.

Return Codes

  • 11121
    No task was found with the specified RunID.
  • 12108
    Rollback is not possible for the task: rollback is not enabled in the object definition.
  • 12107
    Rollback is not possible for task because of the current task status.
  • 20282
    Runtime error: Object not found.

Example

The following example activates a Job, and rolls back the task when the Job ends abnormally:

:SET &ACT# = ACTIVATE_UC_OBJECT(JOBS.TEST,WAIT)
:SET &RET# = GET_UC_OBJECT_STATUS(, &ACT#, "RETCODE")

:IF &RET# > 0
: SET &RB# = ROLLBACK_UC_OBJECT(&ACT#)
:ENDIF

See also: