habe diese zeile in einem meiner Tutorunterlagen gefunden- eingebaut in folgenden Kontext:
CASE sy-ucomm. //
WHEN 'BOOK'.
CHECK NOT wa_sflight-fldate IS INITIAL.
PERFORM read_bookings USING wa_sflight-carrid
wa_sflight-connid
wa_sflight-fldate
not_cancelled
CHANGING it_sbook.
// Parameterübergabe an Unterprogramm read_bookings
SORT it_sbook BY carrid connid fldate bookid.
// sortieren der internen Tabelle it_sbook nach carrid, connid fldate bookid
PERFORM display_bookings.
SET PF-STATUS 'S_BOOK'.
SET TITLEBAR 'T_BOOK'.
CLEAR: wa_sflight-fldate.
ENDCASE.
====
Sie checked also, ob wa_sflight-fldate noch mit Initialwert belegt ist- nur was tut sie wenn -ja ? - wird dann der rest abgebrochen ?
If you use the CHECK <expr> statement within an event block but not within a loop, and the condition <expr> is not fulfilled, the system exits the processing block immediately.
da die case anweisung ja kein loop sein dürfte - muesste er den case block abbrechen wenn der wert noch initial ist
die Check-Anweisung ist noch ein Relikt aus R/2-Zeiten.
(Wahrscheinlich bricht das ganze Programm ab, wenn gerade START OF SELECTION oder END OF SELECTION läuft, falls Du das überhaupt drin stehen hast???).
Ich bevorzuge lieber eine gepflegte IF-Abfrage, da weiß man genau, wan was passiert. Und man kann dann noch was dazuschreiben, was im anderen Fall gemacht werden soll.