── DO ── <statement> ─┬─────┬─ UNTIL ── <Boolean expression> ──────────┤
└─ ; ─┘Explanation
The DO statement enables a job to execute a statement until a condition is TRUE.
The statement is executed and the Boolean expression is evaluated. If the expression is TRUE, control passes to the next executable statement; otherwise, the statement is re‑executed.
-
If the Boolean expression never evaluates to TRUE, the statement is repeated forever (or until the task is discontinued by an operator action or discontinued because it has exceeded queue limits).
-
If the same PROCESS statement is executed repeatedly by a DO statement, a run-time error might result. A run-time error can occur if an asynchronous task initiated by an earlier pass through the DO statement is still running. A given task variable can only be used by one task at a time.
Example
Following is a partial job that uses the DO statement:
DO BEGIN
A:=A+1;
RUN X[T];
TASKVALUE=A;
END
UNTIL T(TASKVALUE) GEQ 4;
