Show TOC Anfang des Inhaltsbereichs

Feldsymbole  Dokument im Navigationsbaum lokalisieren

Feldsymbole sind Platzhalter bzw. symbolische Namen für bestehende Felder. Ein Feldsymbol reserviert keinen physischen Platz für ein Feld, sondern zeigt auf ein Datenobjekt. Feldsymbole können auf beliebige Datenobjekte zeigen. Das Datenobjekt, auf das ein Feldsymbol zeigt wird ihm nach seiner Deklaration zur Laufzeit des Programms zugewiesen.

Wenn man in einem Programm ein Feldsymbol anspricht, adressiert man immer das Feld, welches dem Feldsymbol zugewiesen ist. Nach einer erfolgreicher Zuweisung macht es keinen Unterschied, ob das Feldsymbol oder das Feld selbst adressiert wird. Einem Feldsymbol muss immer ein Feld zugewiesen werden, bevor es im Programm adressiert werden kann.

Feldsymbole sind vergleichbar mit dereferenzierten Zeigern in der Programmiersprache C (d. h. Zeiger auf die der Inhaltsoperator * angewendet wird). Eine echte Entsprechung zu Zeigern, d. h. Variable, die eine Speicheradresse (Referenz) enthalten und auch ohne den Inhaltsoperator benutzt werden können, sind Datenreferenzen.

Alle Operationen, die mit Feldsymbolen programmiert werden, werden mit den zugewiesenen Feldern ausgeführt. Eine MOVE-Anweisung zwischen zwei Feldsymbolen weist beispielsweise dem Feld, das dem einen Zielfeldsymbol zugewiesen ist, den Inhalt des Felds zu, das dem anderen Quellfeldsymbol zugewiesen ist. Die Feldsymbole selbst zeigen nach der MOVE-Anweisung auf die gleichen Felder, wie vor der MOVE-Anweisung.

Feldsymbole können entweder ohne oder mit Typangaben angelegt werden. Ohne Typangaben übernimmt das Feldsymbol alle technischen Eigenschaften des zugewiesenen Felde. Mit Typangaben wird während der Zuweisung eines Felds überprüft, ob das zugewiesene Feld zum Typ des Feldsymbols passt.

Feldsymbole ermöglichen eine große Flexibilität bei der Adressierung von Datenobjekten:

      Man kann Feldsymbole anderen Feldsymbolen zuweisen und dabei auch Teilfelder ansprechen.

      Die Zuweisung von Feldern zu Feldsymbolen kann über die Feldgrenzen hinaus erfolgen. Dadurch können regelmäßige Folgen von Feldern im Speicher effektiv adressiert werden.

      Man kann erzwingen, dass ein Feldsymbol andere technische Eigenschaften als das zugewiesene Feld hat (Casting).

Aufgrund dieser Flexibilität können mit Feldsymbolen einige Operationen elegant ausgeführt werden. Auf der anderen Seite ist die Handhabung von Feldsymbolen auch fehleranfällig. Da Feldsymbolen die Felder erst zur Laufzeit zugewiesen werden, sind bei Operationen mit Feldsymbolen Syntax- und Sicherheitsprüfungen nur eingeschränkt möglich. Als Folge daraus können Laufzeitfehler oder falsche Datenzuweisungen auftreten.

Während Laufzeitfehler auf ein offensichtliches Problem hindeuten, sind falsche Datenzuweisungen kritischer, weil sie womöglich nur sehr schwer feststellbar sind. Von daher sollten Feldsymbole nur in solchen Fällen eingesetzt werden, in denen die gewünschte Operation nicht mit anderen ABAP-Anweisungen zu lösen ist.

Bei der Verarbeitung einer Zeichenkette soll beispielsweise ein Teilfeld der Kette verarbeitet werden, wobei die Offset und Länge vom Inhalt abhängt. Man könnte hier Feldsymbole verwenden. Die Anweisung MOVE (eventuell in Verbindung mit einigen Hilfsvariablen) ist aber weit sicherer als der Gebrauch von Feldsymbolen, da kein Speicherbereich außerhalb der Feldgrenzen adressiert werden kann. Der Vorteil von Feldsymbolen kann dagegen in einigen Fällen eine bessere Antwortzeit sein.

Feldsymbole deklarieren

Zuweisung von Datenobjekten an Feldsymbole

Ende des Inhaltsbereichs