Aufspiltten interne Tabelle

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

Aufspiltten interne Tabelle

Beitrag von Micha_ela (ForumUser / 29 / 0 / 0 ) »
Hallo zusammen,

ich habe eine interne Tabelle:
P1 T1 A4
P1 T1 A5
P1 T2 A2
P2 T1 A1
P2 T1 A2
die für jeden mehrfach vorkommen Eintrag zu P und T aufgespalten werden muß:
1)
P1 T1 A4
P1 T2 A2
P2 T1 A1

2)
P1 T1 A5
P1 T2 A2
P2 T1 A2

Wie löse ich das technisch am einfachsten ?

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


Re: Aufspiltten interne Tabelle

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
Sorry, ich hab mir das mal kurz durchgedacht, komm aber einfach nicht dahinter was du eigentlich willst.

Eine Gruppierung kann das mal nicht sein, weil P1 T2 A2 in beiden Ergebnistabellen vorkommt und die anderen Einträge nur jeweils einmal.
Wie soll sich das ganze für P3 T1 A1 bzw. P1 T3 A1 verhalten?
Was ist das Kriterum dafür was in Ergebnis 1 und was in Ergebnis 2 landet?
Werden vielleicht mehr als zwei Ergebnisblöck benötigt? Was ist diesbezüglich mit P1 T1 A1?

EDIT: Und wenn es sich um einen "echten" Split handeln soll, darf P1 T2 A2 nur einmal vorkommen.
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: Aufspiltten interne Tabelle

Beitrag von Micha_ela (ForumUser / 29 / 0 / 0 ) »
"Wie soll sich das ganze für P3 T1 A1 bzw. P1 T3 A1 verhalten?"
das kommt nicht vor
"Was ist das Kriterum dafür was in Ergebnis 1 und was in Ergebnis 2 landet?"
erste Zeile soll in Ergebnis 1 , zweite Zeile in Ergebnis 2
"Werden vielleicht mehr als zwei Ergebnisblöcke benötigt?" Nein
"Und wenn es sich um einen "echten" Split handeln soll, darf P1 T2 A2 nur einmal vorkommen."
Vielleicht ist Aufsplitten die falsche Bezeichnung, ist eher ein duplizieren

Re: Aufspiltten interne Tabelle

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
Was ist mit dem dritten Vorkommen von P1 T1 (z.B. P1 T1 A1)? Wo soll das landen?

P1 T1 A4
P1 T1 A5
P1 T2 A2
P2 T1 A1
P2 T1 A2
P1 T1 A1 <--
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: Aufspiltten interne Tabelle

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
Generell würde ich das in etwa so angehen:

Code: Alles auswählen.

TYPES:
  BEGIN OF ts_struct,
    p TYPE i,
    t TYPE i,
    a TYPE i,
  END OF ts_struct,
  tt_table TYPE STANDARD TABLE OF ts_struct WITH KEY p t.

DATA:
  ld_index   TYPE i,
  lt_source  TYPE tt_table,
  lt_result1 TYPE tt_table,
  lt_result2 TYPE tt_table.

lt_source = VALUE #( ( p = 1 t = 1 a = 4 )
                     ( p = 1 t = 1 a = 5 )
                     ( p = 1 t = 2 a = 2 )
                     ( p = 2 t = 1 a = 1 )
                     ( p = 2 t = 1 a = 2 ) ).

LOOP AT lt_source ASSIGNING FIELD-SYMBOL(<ls_source>)
  GROUP BY ( p = <ls_source>-p t = <ls_source>-t gs = GROUP SIZE ) ASSIGNING FIELD-SYMBOL(<ls_source_group>).

  CLEAR ld_index.

  LOOP AT GROUP <ls_source_group> ASSIGNING FIELD-SYMBOL(<ls_source_member>).
    ADD 1 TO ld_index.
    IF <ls_source_group>-gs EQ 1.
      APPEND <ls_source_member> TO lt_result1.
      APPEND <ls_source_member> TO lt_result2.
    ELSEIF ld_index EQ 1.
      APPEND <ls_source_member> TO lt_result1.
    ELSEIF ld_index EQ 2.
      APPEND <ls_source_member> TO lt_result2.
    ENDIF.
  ENDLOOP.
ENDLOOP.
Aber wie gesagt funktioniert das nur bei max. 2 Vorkommen.
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: Aufspiltten interne Tabelle

Beitrag von DeathAndPain (Top Expert / 1961 / 261 / 415 ) »
Ich hab immer noch nicht verstanden, was Micha_ela genau erreichen möchte.

Re: Aufspiltten interne Tabelle

Beitrag von IHe (Specialist / 155 / 38 / 49 ) »
Ich habe das Gefühl wir suchen hier eine Lösung für einen schlechten Lösungsansatz. Mich würde das tatsächliche Problem interessieren, dass es zu lösen gilt.

Folgende Benutzer bedankten sich beim Autor IHe für den Beitrag (Insgesamt 2):
DeathAndPaina-dead-trousers

Ingo Hoffmann

ECC|S/4HANA|BTP
dbh SAP Solutions

Seite 1 von 1

Vergleichbare Themen

4
Antw.
1246
Views
5
Antw.
2252
Views
Inhalt interne Tabelle an andere interne Tabelle übergeben
von L0w-RiDer » 30.01.2020 16:28 • Verfasst in ABAP® für Anfänger
5
Antw.
1075
Views
1
Antw.
699
Views

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.