Verschachtelte Interne Tabelle zugreifen

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

Verschachtelte Interne Tabelle zugreifen

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Hallo zusammen,

ich würde gerne auf eine geschachtelte interne Tabelle zugreifen, bloß leider funktioniert das Ganze nicht wie erhofft und wie ich im Internet nachgelesen habe.

und zwar habe ich eine interne Tabelle die gt_output heißt. Diese hat wiederum ein Feld, welches Bom heißt und auch eine interne Tabelle darstellt (Siehe Bild 1). In dieser ist wieder ein Feld names RG, welches auch wiederum eine interne Tabelle darstellt (Siehe Bild 2). Über diese interne Tabelle würde ich gerne loopen.

Leider hat es mit dem Codebeispiel aus dem Internet nicht geklappt.

Weiß jemand wie man sowas hinbekommt?

Vielen Dank im Voraus.

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


Re: Verschachtelte Interne Tabelle zugreifen

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Einfach die "Verschachtelung" entsprechend auflösen:

Code: Alles auswählen.

loop at gt_output assigning field-symbol(<ls_output>).
  loop at <ls_output>-bom assigning field-symbol(<ls_bom>).
    loop at <ls_bom>-rg assigning field-symbol(<ls_rg>).
* Hier die Verarbeitung rein.
    endloop.
  endloop.
endloop.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Verschachtelte Interne Tabelle zugreifen

Beitrag von DeathAndPain (Top Expert / 1941 / 257 / 412 ) »
Wenn der LOOP nur über genau eine Zeile von gt_output und genau ein definiertes bom daraus gehen soll, kann man auch ohne geschachtelte LOOPs einfach schreiben:

Code: Alles auswählen.

DATA(gs_output) = gt_output[ Zeilenkriterium ].

DATA(lt_bom) = gs_output-bom[ Zeilenkriterium ].

LOOP AT lt_bom-rg ASSIGNING FIELD-SYMBOL(<ls_rg>).

ENDLOOP.
Was ich noch nicht ausprobiert habe, ist, ob man auch einfach

LOOP AT gt_output[ Zeilenkriterium ]-bom[ Zeilenkriterium ]-rg ASSIGNING FIELD-SYMBOL(<ls_rg>).

schreiben könnte.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
L0w-RiDer


Re: Verschachtelte Interne Tabelle zugreifen

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Okay, super.

Hat funktioniert.

Vielen Dank!

Re: Verschachtelte Interne Tabelle zugreifen

Beitrag von DeathAndPain (Top Expert / 1941 / 257 / 412 ) »
Wobei meine Lösung auch suboptimal ist, da sie Kopien der geschachtelten internen Tabellen im Speicher anlegt und dadurch auch nur zum Lesen daraus taugt. Spätestens wenn Du die geschachtelten Tabellen auch verändern möchtest, solltest Du stattdessen konsequent mit Feldsymbolen arbeiten, also:

Code: Alles auswählen.

ASSIGN gt_output[ Zeilenkriterium ] TO FIELD-SYMBOL(<gs_output>).

ASSIGN <gs_output>-bom[ Zeilenkriterium ] TO FIELD-SYMBOL(<bom>).

LOOP AT <bom>-rg ASSIGNING FIELD-SYMBOL(<ls_rg>).

ENDLOOP.
Das ist performanter, verbraucht weniger Speicher, und Du kannst die Tabellenwerte auch nach Belieben verändern oder der internen Tabelle <bom>-rg per APPEND oder INSERT weitere Zeilen hinzufügen.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
L0w-RiDer


Seite 1 von 1

Vergleichbare Themen

14
Antw.
4691
Views
interne Tabelle zugreifen im Unterprogramm
von meliz » 25.05.2008 15:17 • Verfasst in ABAP® Core
4
Antw.
1070
Views
5
Antw.
2097
Views
Inhalt interne Tabelle an andere interne Tabelle übergeben
von L0w-RiDer » 30.01.2020 16:28 • Verfasst in ABAP® für Anfänger
1
Antw.
368
Views
Verschachtelte Loops
von ABAPlerv » 03.04.2022 08:30 • Verfasst in ABAP® für Anfänger
8
Antw.
3630
Views
Verschachtelte LOOP
von AnnaNRW » 05.01.2016 15:36 • Verfasst in ABAP® für Anfänger

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 744
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2368
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8954