WAIT UNTIL 
WAIT UNTIL log_exp [UP TO sec SECONDS].
Zusatz:
... UP TO sec SECONDS
Diese Variante der Anweisung WAIT ist nur zur Verwendung nach einem asynchronen RFC mit Callback-Routinen vorgesehen. Sie unterbricht die Programmausführung so lange das Ergebnis des logischen Ausdrucks log_exp falsch ist. Für log_exp kann ein beliebiger logischer Ausdruck angegeben werden. Wenn das Ergebnis von log_exp falsch ist, wartet das Programm bis eine Callback-Routine einer zuvor asynchron aufgerufenen Funktion ausgeführt wurde und überprüft dann den logischen Ausdruck erneut. Wenn das Ergebnis des logischen Ausdrucks wahr ist oder die Callback-Routinen aller zuvor asynchron aufgerufenen Funktionen ausgeführt wurden, wird die Programmausführung mit der auf WAIT folgenden Anweisung fortgesetzt.
Zusatz
... UP TO sec SECONDS
Mit der Angabe UP TO wird die Programmunterbrechung auf maximal die in sec angegebenen Sekunden begrenzt. Für sec wird ein Datenobjekt vom Typ f erwartet, das eine positive Zahl enthalten muss. Spätestens nach Ablauf der angegebenen Zeit wird die Programmausführung mit der auf WAIT folgenden Anweisung fortgesetzt.
Systemfelder
Die Anweisung WAIT führt zu einem Wechsel des Workprozesses, was mit dem Heraus- und Hereinrollen aller geladenen Programme verbunden ist. Aus diesem Grund sollte die Zeit in sec nicht kleiner als eine Sekunde gewählt werden, um das System nicht mit zu häufigen Wechseln des Workprozesses zu belasten.
Bei jeder Verwendung der Anweisung WAIT wird ein Datenbank-Commit abgesetzt. Aus diesem Grund darf WAIT nicht zwischen Open-SQL-Anweisungen verwendet werden, die einen Datenbank-Cursor öffnen oder schließen.
Es gibt auch eine Variante der Anweisung WAIT, die unabhängig vom asynchronen RFC verwendet werden kann.
Unbehandelbare Ausnahmen
Ursache: Undefinierter Zustand der WAIT-Anweisung
Laufzeitfehler: WAIT_ILLEGAL_CONTROL_BLOCK
Ursache: Negative Zeitangabe für sec.
Laufzeitfehler: WAIT_ILLEGAL_TIME_LIMIT