Für Syntax siehe hier.
Einfacher IF:
IF (Z0AAPRM-VEG-VEIN-ID-1 = H-VEIN-ID-1) THEN PERFORM M13-1-BETRAEGE-UEBERNEHMEN ELSE PERFORM M13-1-GET-FIRST-GEVOR PERFORM M13-1-SNLPMEE-VEV-ANLEGEN PERFORM M13-1-MITV-TYP-BESTIMMEN PERFORM M13-1-BETRAEGE-UEBERNEHMEN END-IF
if (Z0aaprm.VegVeinId1 == HVeinId1) { M131BetraegeUebernehmen(); } else { M131GetFirstGevor(); M131SnlpmeeVevAnlegen(); M131MitvTypBestimmen(); M131BetraegeUebernehmen(); }
Falls die NEXT SENTENCE Anweisung im THEN-Pfad gegeben wird, wird die Bedingung negiert und die Ausführung des ELSE-Pfades generiert:
IF B-GEFUNDEN THEN IF (SNLPPME-000-CTV-VAR-NAME = K-ERSTATTUNG) THEN NEXT SENTENCE ELSE SUBTRACT ZW-JNETPRAERZ-ALT FROM SNLPPME-PME-PRAE-BT GIVING SNLPPME-PME-PRAE-BT END-IF ELSE IF (SNLPPME-000-CTV-VAR-NAME = K-ERSTATTUNG) THEN MOVE ZERO TO SNLPPME-PME-PRAE-BT END-IF END-IF
if (BGefunden) { if (!(Snlppme._000CtvVarName == PraeKonstanten.KErstattung)) { Snlppme.PmePraeBt = Snlppme.PmePraeBt - (ZwJnetpraerzAlt); } } else { if (Snlppme._000CtvVarName == PraeKonstanten.KErstattung) { Snlppme.PmePraeBt = 0; } }
Falls erkannt wird, dass in der IF-Anweisung sowohl im THEN- als auch im ELSE-Pfad jeweils nur ein einzelnes SET Statement steht, welches auf dieselbe boolesche Bedingung operiert, wird eine direkte Zuweisung erzeugt.
IF OM-RC-EOL THEN SET B-NICHT-GEFUNDEN TO TRUE ELSE SET B-GEFUNDEN TO TRUE END-IF
BGefunden = !(this.LastOmOperation.IsEOL);
IF L0AADUL-P0G-DUB-VARB-STAT-K = 2 OR 3 OR 6 THEN ... END-IF
if (L0aadul.P0gDubVarbStatK == 2 || L0aadul.P0gDubVarbStatK == 3 || L0aadul.P0gDubVarbStatK == 6) { ... }