Ansicht
Dokumentation
ABENSYST_FIELD_ACCESS_GUIDL - SYST FIELD ACCESS GUIDL
General Material Data CPI1466 during BackupDiese Dokumentation steht unter dem Copyright der SAP AG.
Zugriff
Die Systemfelder werden durch die ABAP-Laufzeit-Framework mit Werten versorgt. In einem Programm verhalten sie sich jedoch wie normale Variablen, denen auch über das ABAP-Programm Werte zugewiesen werden können. Der Grund hierfür ist, dass nicht nur der ABAP-Kernel, sondern auch die ABAP-Anteile der ABAP-Laufzeit-Framework schreibend auf Systemfelder zugreifen.
Systemfelder nicht beschreiben
Greifen Sie in einem Anwendungsprogramm nur lesend, aber nie schreibend auf Systemfelder zu.
Da die Werte der Systemfelder für eine ordnungsgemäße Programmausführung im Allgemeinen unentbehrlich sind, ist der schreibende Zugriff auf Systemfelder sehr gefährlich. Durch Schreiboperationen in Systemfeldern können wichtige Informationen verloren gehen, was eine korrekte Programmausführung beeinträchtigt. Daher dürfen Systemfelder weder mit der Intention überschrieben werden, den Programmverlauf zu beeinflussen, noch dürfen sie als Ersatz für explizit definierte Variablen verwendet werden.
Systemfelder dürfen darüber hinaus auch nicht als implizite Ausgabeparameter von Prozeduren missbraucht werden, unabhängig davon, ob sie innerhalb der Prozedur explizit durch einen verbotenen Schreibzugriff oder als Ergebnis einer Anweisungsausführung gesetzt wurden.
Ausnahme
Die einzigen Systemfelder, deren Inhalt in einem Anwendungsprogramm geändert werden durfte, gehören zur klassischen Listenverarbeitung, die aber nicht mehr eingesetzt werden soll.
Folgender Quelltext zeigt einen nicht selten gesehenen Schreibzugriff auf das Systemfeld sy-subrc. Der hier gezeigte Zugriff ist zwar nicht schädlich, aber auch nicht sinnvoll, da sy-subrc beim Aufruf eines Funktionsbausteins immer auf null gesetzt wird und nur durch die Behandlung einer klassischen Ausnahme einen anderen Wert erhält. Die Anweisung ist daher überflüssig.
sy-subrc = 4.
CALL FUNCTION ...
...
EXCEPTIONS ...
CASE sy-subrc.
...
Folgender Quelltext korrigiert obiges Beispiel durch das Weglassen des Schreibzugriffs.
CALL FUNCTION...
...
EXCEPTIONS ...
CASE sy-subrc.
...
RFUMSV00 - Advance Return for Tax on Sales/Purchases BAL Application Log Documentation
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 2690 Date: 20240523 Time: 111246 sap01-206 ( 61 ms )