Ansicht
Dokumentation

ABENSYST_FIELD_ACCESS_GUIDL - SYST FIELD ACCESS GUIDL

ABENSYST_FIELD_ACCESS_GUIDL - SYST FIELD ACCESS GUIDL

General Material Data   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

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 )