Für Syntax siehe hier.
Perform mit Aufruf einer Methode:
PERFORM SNLPME1-GET-INDEX
Der generierte Code ist abhängig davon, ob die Methode Anweisungen enthält, die zum Beenden des Programms führen, z.B. EXEC TAA UNREGISTER
oder Goback
.
Wenn die Anweisung in der Einstiegsmethode steht, entfällt der Rückkehrwert in der return
-Anweisung.
Wenn die Anweisung in der Einstiegsmethode steht und die letzte in der Methode ist oder nur durch eine Exit-Anweisung gefolgt wird, entfällt der return vollständig.
// ohne Anweisungen, die zum Beenden des Programms führen: Snlpme1GetIndex(); // mit Anweisungen, die immer zum Beenden des Programms führen: Snlpme1GetIndex(); return false; // mit Anweisungen, die möglicherweise zum Beenden des Programms führen: if (!Snlpme1GetIndex()) return false; } // in der Einstiegsmethode, mit Anweisungen, die möglicherweise zum Beenden des Programms führen: if (!Snlpme1GetIndex()) return; }
Perform mit Times:
PERFORM GET-INFO 2 TIMES
for (var i = 0; i < 2; i++) { GetInfo(); }
PERFORM
mit UNTIL
:
PERFORM UNTIL B-BEENDEN-JA
do { _ }while(!BBeendenJa);
PERFORM
mit VARYING und UNTIL:
PERFORM VARYING L-PRAE-IND-IND FROM 1 BY 1 UNTIL L-PRAE-IND-IND > PRAE-NR-ANZ OR ZW-PRE-NR NOT = K-DUMMY-NR
for (LPraeIndInd = 1; !(LPraeIndInd > SnstrPraeNrSkzRs.PraeNrAnz || ZwPreNr != SnstrPraeNrSkzRs.KDummyNr); LPraeIndInd += 1) {
Syntaktisch erkannt, aber von den Generatoren derzeit nicht unterstützt sind folgende Bestandteile: