ROLLBACK
Depending on the format used, ROLLBACK performs one of the following functions:
Format 1:Rollback the updates to this record.
Format 2:Rollback (abort) a transaction. This type of ROLLBACK and ABORT_TRANSACTION are synonymous.

Format 1
 Rollback the updates to this record
 Rollback DATABASE [/Qualifiers ...]
 Use ROLLBACK specified with a database to rollback any field updates which have taken place since the last record operation. For this to work, you must have specified ROLLBACK with the DATABASE definition statement's /OPTIONS qualifier as follows:
 Database CUST /Options="ROLLBACK">
 For more information regarding this use of ROLLBACK, refer to the Defining Databases section of the IDML chapter.

Format 2
 Rollback (abort) a transaction.
 Rollback [/Qualifiers ...]
 A transaction consists of one or more database updates which, because of their nature, must be treated as one autonomous unit. These updates may occur across multiple files. Using ROLLBACK without a database specification statement enables you to abort a transaction, thereby restoring files to their state prior to the occurrance of the transaction. For details regarding transactions and the use of UserBase transaction statements, see the description of the BEGIN_TRANSACTION statement in this chapter. See also ABORT_TRANSACTION, and COMMIT.

Qualifiers
 The following qualifiers apply to both ROLLBACK formats:
/Fail=LABELLabel to which to branch if the statement fails.
If LABEL is %EXIT, exit the routine or loop.
If in a loop, and LABEL is %CONTINUE, continue the loop. If not in a loop, and LABEL is %CONTINUE, an error message displays.
 /Succeed=LABELLabel to which to branch if the statement succeeds.
If LABEL is %EXIT, exit the routine or loop. If in a loop, and LABEL is %CONTINUE, continue the loop. If not in a loop, and LABEL is %CONTINUE, an error message displays.
 /NofailDo not signal an error. Instead, set the
internal variable %FAIL.