Anfang des Inhaltsbereichs

Funktionsdokumentation Strukturerweiterungen Dokument im Navigationsbaum lokalisieren

  1. Möglichkeiten der Strukturerweiterungen
  2. Probleme durch Strukturerweiterungen
  3. Klassifikation der Erweiterungen im Dictionary
  4. Behandlung der Erweiterung in der Programmprüfung

 

1. Möglichkeiten der Strukturerweiterungen

Strukturen und Tabellen, die von SAP im ABAP Dictionary definiert wurden, können nachträglich durch Kunden auf folgende Weise erweitert werden:

Von Erweiterungen dieser Art sind nicht nur die erweiterten Strukturen und Tabellen selbst betroffen, sondern auch alle abhängigen Strukturen, welche die Erweiterung als Include oder Unterstruktur übernehmen. So können zum Beispiel Erweiterungen mittels Append, die sich bei der Ausgangsstruktur nur am Ende auswirken, bei abhängigen Strukturen zu Verschiebungen auch innerhalb dieser Strukturen führen.

 

2. Probleme durch Strukturerweiterungen

In Programmen ohne aktive Unicodeprüfung können Strukturerweiterungen vor allem bei Typprüfungen und im Zusammenhang mit tiefen Strukturen zu Syntax- und Laufzeitfehlern führen. In Programmen mit aktiver Unicodeprüfung sind darüber hinaus Zuweisungen, Operandenprüfungen und Zugriffe mit Offset und Länge betroffen. Problematisch sind hier Änderungen, wenn zum Beispiel in eine rein zeichenartige Struktur numerische oder tiefe Komponenten eingefügt werden und dadurch die Struktur ihren zeichenartigen Charakter verliert. Erweiterungen sind auch deshalb problematisch, weil die Fragmentsicht verändert wird und darauf aufbauende Prüfungen bei Zuweisungen und Vergleichen beeinflußt werden.

 

3. Klassifikation der Erweiterungen im Dictionary

Damit die Auswirkungen von Strukturerweiterungen überhaupt erkennbar sind, können Strukturen und Tabellen im ABAP Dictionary unter Zusätze ® Erweiterungskategorie nach folgenden Schema klassifiziert werden:

Stufe

Kategorie

Bedeutung

1

Nicht klassifiziert

Die Struktur hat keine Erweiterungskategorie

2

Nicht erweiterbar

Die Struktur darf nicht erweitert werden

3

Erweiterbar und zeichenartig

Alle Strukturkomponenten und deren Erweiterungen müssen zeichenartig sein.

4

Erweiterbar und zeichenartig oder numerisch

Die Struktur und deren Erweiterung darf keine tiefen Datentypen enthalten.

5

Beliebig erweiterbar

Die Struktur und deren Erweiterung darf Komponenten enthalten, deren Datentyp beliebig ist.

Als zeichenartig werden an dieser Stelle die Elemetartypen C, D, N und T bezeichnet, als numerisch die Elementartypen F, I, P und X. Nicht unterstützt werden die tiefen Typen STRING und XSTRING.

HinweisBei Strukturen und Tabellen mit Includes oder Unterstrukturen dürfen die Erweiterungskategorien der Includes und Unterstrukturen nicht größer als diejenigen der Ausgangsstruktur sein. Enthält die Ausgangsstruktur zum Beispiel ein Include der Stufe 4, dann sind für die Ausgangsstruktur die darüber hinausgehenden Stufen 2 und 3 nicht erlaubt

HinweisStrukturerweiterungen im Dictionary können sich auch auf interne Strukturen in ABAP-Programmen auswirken, wenn Dictionary-Strukturen im Quelltext als Include oder Unterstruktur verwendet werden. Bei der ABAP-Programmprüfung werden diese Abhängigkeiten implizit berücksichtigt. Dies schließt auch nicht klassifizierte Strukturen ein, die erweiterbare Includes oder Unterstrukturen enthalten.

 

4. Behandlung der Erweiterung in der Programmprüfung

Die ABAP-Programmprüfung nutzt die Klassifikation der Strukturerweiterung im Dictionary, um für alle Stellen im Quelltext Warnungen auszugeben, die Probleme im Zusammenhang mit Strukturerweiterungen erkennen lassen. Die Warnungen sind abhängig von den Auswirkungen der zulässigen Strukturerweiterungen in drei Klassen eingeteilt:

Klasse

Art der Prüfung

Bedeutung

A

Syntaxprüfung

Jede Erweiterung unter Ausschöpfung der Erweiterungs-kategorien führt zu einem Syntaxfehler.

B

Erweiterte Prüfung

Zulässige Erweiterungen können, müssen aber nicht in jedem Fall zu einem Syntaxfehler führen.

C

Erweiterte Prüfung

Keine Syntaxfehler, jedoch semantische Probleme durch geändertes Programmverhalten

 

HinweisAlle Prüfungen zu Strukturerweiterungen werden nur in Programmen mit aktiver Unicodeprüfung durchgeführt, wobei aber ausschließlich statisch und nicht zur Laufzeit geprüft wird. Die Prüfung schließt auch nicht klassifizierte Strukturen und Tabellen ein, sofern die Ausgangsstruktur erweiterbare Includes oder Unterstrukturen beinhaltet.

Ende des Inhaltsbereichs