Wozu dienen Header in internen Tabellen

Getting started ... Alles für einen gelungenen Start.
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Wozu dienen Header in internen Tabellen

Beitrag von andS (ForumUser / 1 / 0 / 0 ) »
Hallo,

habe da so ne Übungsfrage zur Klausur zu lösen: "Wozu dienen Header in internen Tabellen"

Kann mir da eventuell jemand weiterhelfen? Im Skript habe ich da nur stehen:

Interne Tabellen können ohne bzw. mit Kopfzeile definiert werden. Eine interne Tabelle mit Kopfzeile ist ein Tupel aus einem Arbeitsbereich (...)

Hilft mir leider nicht viel!

Wäre nett, wenn mir jemand helfen könnte!

Grüße
Andi

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von BesenWesen (Specialist / 183 / 0 / 0 ) »
hallo andi,

hier der auszug aus der SAP-Hilfe:

Code: Alles auswählen.

Durch die Angabe WITH HEADER LINE wird mit der Tabelle eine Kopfzeile, d.h. ein Feld gleichen Namens angelegt. Ihr Typ entspricht dem Zeilentyp der Tabelle. 
Allerdings sind die Kopfzeilen sowieso 'verboten'.

Code: Alles auswählen.

Verbot von Tabellen mit Kopfzeilen 

In ABAP Objects dürfen nur Tabellen ohne Kopfzeilen deklariert werden. 

In ABAP Objects Fehlermeldung bei: 

DATA itab TYPE|LIKE TABLE OF ... WITH HEADER LINE. 

Korrekte Syntax: 

DATA: itab TYPE|LIKE TABLE OF ... , 
        wa LIKE LINE OF itab. 

Grund: 

Es hängt von der Anweisung ab, ob bei Tabellen mit Kopfzeile auf Tabellenkörper oder Kopfzeile zugegriffen wird. Der Tabellenname soll eindeutig die Tabelle bezeichnen. Programme werden leichter lesbar. Tabellen mit Kopfzeilen bieten keinerlei Performance-Vorteile. 

Anmerkung: 

Beim Aufruf externer Prozeduren (Unterprogramme und Funktionsbausteine), die in der Parameterschnittstelle TABLES-Parameter enthalten, ist zu beachten, daß zu einem TABLES-Parameter außer dem Tabellenkörper auch immer eine Kopfzeile gehört. Bei der Übergabe einer Tabelle ohne Kopfzeile bleibt die Kopfzeile des TABLES-Parameters initial. Beim Aufruf solcher Prozeduren in Methoden, muß überprüft werden, ob die Übergabe der Kopfzeile in der Prozedur erwartet und dort ausgewertet wird. Gegebenenfalls muß die Prozedur angepaßt oder neu geschrieben werden. Schnittstellen von Methoden haben keine TABLES-Parameter.
Gruss
BesenWesen

Beitrag von Steff (Site Admin / 386 / 0 / 1 ) »
Im Prinzip ist eine Kopfzeile ein Arbeitsbereich um Operationen (Read, Insert, etc) auf einer internen Tabelle ausfuehren zu koennen, der implizit definiert werden kann. (siehe Antwort von BesenWesen)
Allerdings sind Headerzeilen im Bereich von ABAP-OO verboten und mittlerweile eigentlich auch nicht mehr gebraeuchlich (unuebersichtlicher Programmierstil).

Gruss,
Steff

Beitrag von Asaph (Expert / 580 / 6 / 1 ) »
Steff hat geschrieben:und mittlerweile eigentlich auch nicht mehr gebraeuchlich (unuebersichtlicher Programmierstil).
Steff
-> die Realität sieht anders aus ...
-> solange keine Richtlinien von Firmen erlassen werden , wird munter mit beiden Tabellentypen weitergearbeitet


lg Andreas

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,
Asaph hat geschrieben:
Steff hat geschrieben:und mittlerweile eigentlich auch nicht mehr gebraeuchlich (unuebersichtlicher Programmierstil).
Steff
-> die Realität sieht anders aus ...
-> solange keine Richtlinien von Firmen erlassen werden , wird munter mit beiden Tabellentypen weitergearbeitet


lg Andreas
tja, da ist es wieder, das Problem: Wer billig einkauft, nicht weiterbildet, der bekommt auch billigen Code, selber schuld. (Unperformant, unübersichtlich, fehleranfällig nicht in OO übertragbar etc.)

Ich bin sicher, in jedem ABAP-Kurs bei SAP bekommt man beigebracht, wie programmiert werden soll. Daß es noch alte Programme in altem Stil gibt, mag ja sein, aber man sollte seit ca. 6 Jahren keine neuen Tabellen mit Kopfzeile mehr benutzen.

Jeder ABAP-Programmierer, der Programme abliefert, in denen er eigene Tabellen mit Kopfzeilen verwendet, stellt seine aktuelle Qualität unter Beweis (ist dann nicht soooo hoch ...).

Gruß
babap

Beitrag von ewx (Top Expert / 4872 / 314 / 644 ) »
Und wo ist der Unterschied, ob ich eine Tabelle habe die X heisst und einen Arbeitsbereich der X heisst (Tabelle mit Kopfzeile), oder ob ich eine Tabelle Y und einen Arbeitsbereich Z habe (Tabelle ohne Kopfzeile)?

Gruß, Enno

Beitrag von BesenWesen (Specialist / 183 / 0 / 0 ) »
ist ein Arbeitsbereich nicht eine Zeile der Tabelle?... :?
ungefaehr so:

Code: Alles auswählen.

data : i_mara  like mara occurs 0.
data : wa_mara like line of i_mara.
Gruss
BesenWesen

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

nein, die Kopfzeile ist eine separate Feldleiste abseits der Tabelle.
Beim Loop über die Tabelle wird der ganze "Sermon" einer Tabellenzeile in den Arbeitsbereich gestellt. Das Programm kann die Felder auslesen und/oder verändern. Egal ob was geändert wurde oder nicht, am Ende der Schleife wird der ganze "Kram" wieder zurückgestellt.

Der Unterschied von X-W zu X-X ist bloß, daß man am Namen sehen kann, ob es sich um die Tabelle oder um den Arbeitsbereich handelt. An der Performance und der ganzen "Moverei" ändert das nichts.

Ich selbst arbeite seit langer Zeit nur noch mit Feldsymbolen.

Code: Alles auswählen.

DATA: t_tab TYPE TABLE OF irgendwas.
FIELD-SYMBOLS: <t_tab> LIKE LINE OF t_tab.

LOOP AT t_tab ASSIGNING <t_tab>.
  IF <t_tab>-feld0 = 'X'.
     MOVE 'hurz' TO <t_tab>-feld1.
  ENDIF.
ENDLOOP. 
... nur mal so als Beispiel, wenn man selbst neuen Code schreibt.
Das ist alles was man braucht, das ist OO-fähig, übersichtlich und performant.

Gruß
babap

Seite 1 von 1

Vergleichbare Themen

5
Antw.
3973
Views
Vergleich von internen Tabellen
von Artie200 » 01.02.2011 16:42 • Verfasst in ABAP® für Anfänger
3
Antw.
342
Views
Selektieren von Internen Tabellen
von Micha_ela » 29.09.2022 10:27 • Verfasst in ABAP® für Anfänger
3
Antw.
2261
Views
Inhaltübergabe bei internen Tabellen
von castadiva » 22.10.2007 12:47 • Verfasst in ABAP® für Anfänger
4
Antw.
6756
Views
gruppieren von internen Tabellen
von debianfan » 18.01.2018 03:17 • Verfasst in ABAP® für Anfänger
3
Antw.
3699
Views
Gruppieren / Summieren in internen Tabellen
von eddi12 » 19.02.2008 12:10 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Mahnung erstellen
vor 8 Stunden von wreichelt 2 / 28
Absprung VA02 Position
vor 10 Stunden von gs3rr4 gelöst 3 / 40
OPD Druck im SPOOL
vor 11 Stunden von Manfred K. 1 / 24

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Mahnung erstellen
vor 8 Stunden von wreichelt 2 / 28
Absprung VA02 Position
vor 10 Stunden von gs3rr4 gelöst 3 / 40
OPD Druck im SPOOL
vor 11 Stunden von Manfred K. 1 / 24

Unbeantwortete Forenbeiträge

OPD Druck im SPOOL
vor 11 Stunden von Manfred K. 1 / 24
Export von Spools in XLSX
vor 5 Tagen von abapamateur 1 / 419