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 / 545 / 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 / 4483 / 231 / 1205 ) »
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 / 2012 / 271 / 425 ) »
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

Wenn wir einer Partei die Regierungsbeteiligung verweigern, die von einer Mehrheit gewählt worden ist, weil wir diese Partei für schlecht halten, da wir einer anderen Partei angehören, wie ist dann unsere eigene demokratische Gesinnung zu bewerten?

Re: Verschachtelte Interne Tabelle zugreifen

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

Hat funktioniert.

Vielen Dank!

Re: Verschachtelte Interne Tabelle zugreifen

Beitrag von DeathAndPain (Top Expert / 2012 / 271 / 425 ) »
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

Wenn wir einer Partei die Regierungsbeteiligung verweigern, die von einer Mehrheit gewählt worden ist, weil wir diese Partei für schlecht halten, da wir einer anderen Partei angehören, wie ist dann unsere eigene demokratische Gesinnung zu bewerten?

Seite 1 von 1

Vergleichbare Themen

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

Aktuelle Forenbeiträge

Ermittlung der Arbeitstage (Mosid)
vor 9 Stunden von DeathAndPain 3 / 44164
LSMW-Problem
vor 9 Stunden von DeathAndPain gelöst 6 / 2013
SFP (Adobe Forms) QR-Code wird nicht angezeigt
vor 11 Stunden von Sebastian82 gelöst 4 / 577
ATC Finding in Smartforms
vor einer Woche von sap_enthusiast 2 / 2054

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.