ABAP Tutorial Teil 3: Strukturen und interne Tabellen (1)

Der Bereich der internen Tabellen ist immer eine langwierige und vor allen Dingen vielfältige Angelegenheit. Aber in meinen Augen fast schon essentieller als das um herschieben von Parametern via Function Modules bzw. Funktionsbausteinen. Vor allen Dingen haben interne Tabellen ihre Tücken und Eigenheiten und zwar letztlich so viele dass wir uns die nächsten Teile der Serie des ABAP-Tutorials ausschließlich mit internen Tabellen befassen werden. In den Grundlagen haben wir die Basis der folgenden Datenelemente und Datentypen behandelt.

Zunächst aber brauchen wir ein Grundkonstrukt für die erste interne Tabelle. Interne Tabellen können aus Strukturen abgeleitet werden, aber auch aus Datenbanktabellen und Datentypen.
Was ganz und gar wichtig ist, ist der fachliche Jargon der ebenfalls sehr gut dazu beitragen kann alles etwas konfus zu gestalten. Letztlich ist dies aber recht übersichtlich:

Eine Tabellenzeile wird in der Regel mit dem Präfix „wa_“ oder „ls_“. „wa_“ steht für workarea und „ls_“ steht für localstructure. Eingedeutscht ist es aber das gleiche, nämlich eine einfache Tabellenzeile. Wir beschränken uns von den Präfixen aufgrund der üblichen Konventionen allerdings auf „ls“, da „wa“ zumindest den offiziellen Dokumentationen nach, den Anschein macht demnächst obsolet zu werden. Auch wenn dies keine weitreichenden Auswirkungen hat, immerhin kann man seine Variablen und Tabellen gerne weiterhin nennen wie man möchte.

Eine interne Tabelle als Ganzes betrachtet hat ebenfalls ihre eigenen Konventionen. Laut offizieller Dokumentationen existieren „wt_“ und „lt_“. „wt_“ steht für workingtable und „lt_“ steht für localtable. Wie schon bei der workarea entschließt man sich hier von Seiten der SAP wohl dazu es eher bei „lt“ zu belassen und workingtable demnächst als veraltet zu deklarieren.

Jetzt kommen wir zu den einzelnen Definitionen und Deklarationen einer internen Tabelle:

Mit einer Struktur wird auch eine Tabellenzeile deklariert. Dies geht in mehreren Varianten:

“Die Tabellenzeile wird von der Objekt INT4 geerbt. Das Objekt kann auch eine vorhandene Struktur oder Datenbanktabelle sein. In jenem Fall werden "sämtliche Felder welche die Struktur oder Tabelle beinhalten mit all ihren Eigenschaften vererbt.
DATA: lt_type TYPE TABLE OF int4 with header line.

Vorsicht ist bei dieser internen Tabelle wegen dem Zusatz „WITH HEADER LINE“ gegeben. Als solches funktioniert dieser im allgemeinen noch in aktuellen Systemen (ERP 6.0), er wird allerdings von der SAP und auch im Sinne von ABAP Objects als Deprecated also veraltet bezeichnet und fliegt demnächst wohl aus dem Standard.

Dann gibt es die klassischste und vermutlich auch älteste Variante, welche auch eine Struktur mit BEGIN OF und END OF auszeichnet.

TYPES:  BEGIN OF ls_zeile,
	  lv_index like int4,
	  lv_var like int4,
        END OF ls_zeile.
TYPES: lt_tabelle TYPE TABLE OF ls_zeile.

Aber in einer abgewandelten, ebenfalls bald obsoleten Form gibt es diese Deklaration auch:

     DATA:  BEGIN OF  OCCURS ,
              matnr like mara-matnr,
              werks like marc-werks,
            END OF   .

Im nächsten Teil der Reihe geht es wie schon angekündigt dann um die weiteren Varianten der Deklarationen interner Tabellen und wir werden das erste Mal über die Tabelle mit einem LOOP schleifen.

Veröffentlicht in: ABAP Schlagworte: , , , , , , ,

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>