Anfang des InhaltsbereichsDatenbereiche für Feldsymbole Dokument im Navigationsbaum lokalisieren

Feldsymbolen können Datenobjekte nur aus den Datenbereichen des ABAP-Programms zugewiesen werden. Während der Zuweisungen von Datenobjekten an Feldsymbole werden zur Laufzeit Prüfungen durchgeführt, um bei fehlerhaften Adreßzuweisungen außerhalb der Datenbereiche unkontrollierte Datenverluste zu verhindern.

Die Datenbereiche eines ABAP-Programms sind:

Feldsymbole können nicht auf Inhalte außerhalb dieser Bereiche zeigen. Wird bei einer Zuweisung von Datenobjekten ein derartiger Versuch Laufzeit registriert, kommt es zu einem Laufzeitfehler.

Bestimmte Systeminformationen, z.B. Kontrollblöcke interner Tabellen, sind ebenfalls im DATA-Speicherbereich abgelegt, so daß trotz Laufzeitprüfungen einige dieser Felder unbeabsichtigt überschrieben und dadurch Folgefehler verursacht werden können (z.B. Zerstörung von Tabellen-Headern).

Beispiel

REPORT demo_field_symbols_assign_err.

DATA: text1(10) TYPE c, text2(10) TYPE c, text3(5) TYPE c.

FIELD-SYMBOLS <fs> TYPE ANY.

DO 100 TIMES.                          "Runtime-Error!
  ASSIGN text1+sy-index(1) TO <fs>.
ENDDO.

Nach dem Starten von DEMO kommt es zu einem Laufzeitfehler. Der Beginn der Abbruchmeldung ist:

Diese Grafik wird im zugehörigen Text erklärt

Der DATA-Speicherbereich hat eine Breite von mindestens 25 Byte (es können Vergrößerungen um einige Byte durch Ausrichtung der Datenbereiche im Speicher auftreten). In einem der Schleifendurchläufe wird die Zuweisung einer Adresse außerhalb dieses Bereichs versucht. Die Abbruchmeldung zeigt weiter unten auch den Inhalt des Felds SY-INDEX, der von Fall zu Fall etwas unterschiedlich sein kann. Bis mindestens zum 24. Schleifendurchlauf tritt kein Fehler auf. Ersetzt man in der ASSIGN-Anweisung TEXT1 durch TEXT2, tritt der Fehler zehn Schleifendurchläufe früher auf.

 

 

 

Ende des Inhaltsbereichs