Tabelle LTAP Positionen

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

Tabelle LTAP Positionen

Beitrag von Hatim89 (ForumUser / 5 / 0 / 0 ) »
Hallo zusammen,
Ich habe hier mal eine Frage an Experten und zwar wie kann ich innerhalb einer Loop nur die TA`s die nur eine Position haben ? Wenn ein TA mehrere Positionen hätte dann raus.
Könnt ihr mir bitte dazu paar tips vorschlagen.
Vielen Dank und viele Grüße
Hatim

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


Re: Tabelle LTAP Positionen

Beitrag von ewx (Top Expert / 4872 / 314 / 644 ) »
Hier ein Beispiel:

Code: Alles auswählen.

TYPES: BEGIN OF _doc_group,
         doc_id TYPE i,
         count  TYPE i,
       END OF _doc_group,
       _doc_groups TYPE SORTED TABLE OF _doc_group WITH UNIQUE KEY doc_id,
       BEGIN OF _item,
         doc_id      TYPE i,
         item_number TYPE i,
         value       TYPE string,
       END OF _item,
       _items TYPE SORTED TABLE OF _item WITH UNIQUE KEY doc_id item_number.

DATA(items) = VALUE _items(
    ( doc_id = 1 item_number = 1 value = 'a1' )
    ( doc_id = 1 item_number = 2 value = 'a2' )
    ( doc_id = 1 item_number = 3 value = 'a3' )
    ( doc_id = 2 item_number = 1 value = 'b1' )
    ( doc_id = 3 item_number = 1 value = 'c1' )
    ( doc_id = 3 item_number = 2 value = 'c2' )
    ( doc_id = 4 item_number = 1 value = 'd1' )
    ( doc_id = 5 item_number = 1 value = 'e1' )
     ).

DATA(result) = VALUE _doc_groups( FOR GROUPS docs OF wa IN items
                  GROUP BY ( doc_id  = wa-doc_id
                             count = GROUP SIZE ) WITHOUT MEMBERS
                  ( docs ) ).

"list all elements with COUNT
LOOP AT result INTO DATA(res).
  WRITE: / res-doc_id, res-count.
ENDLOOP.

ULINE.

"Loop at elements with only 1 member
LOOP AT items INTO DATA(item)
  GROUP BY ( doc_id = item-doc_id count = GROUP SIZE ) INTO DATA(doc) .
  CHECK doc-count = 1.
  WRITE: / doc-doc_id, doc-count.
  LOOP AT GROUP doc INTO DATA(itm).
    WRITE: /3 itm-item_number.
  ENDLOOP.

ENDLOOP.


Leider scheint es nicht möglich zu sein, GROUP SIZE direkt im LOOP/ VALUE Befehl mit WHERE abzufragen.

Mehr Beispiele in der Codezentrale

Re: Tabelle LTAP Positionen

Beitrag von DeathAndPain (Top Expert / 1964 / 261 / 415 ) »
Bin beeindruckt, dass Du mit seiner Frage etwas anfangen konntest, ewx. Ich habe sie nicht verstanden mangels korrekter Grammatik.

Re: Tabelle LTAP Positionen

Beitrag von ewx (Top Expert / 4872 / 314 / 644 ) »
ich weiß ja auch noch nicht, ob ich richtig liege mit meiner Lösung.

Leider funktioniert anscheinend ein SELECT DISTINCT nicht zusammen mit einer internen Tabelle, ansonsten könnte man hier evtl. zusammen mit HAVING mit einem Befehl alle geforderten Datensätze ermitteln...
Ich kriege es aber nicht hin.

Code: Alles auswählen.

 select DISTINCT(doc_id) from @items as items  into table @data(result).
Fehlermeldung:
Unbekannter Spaltenname "DISTINCT(DOC_ID)".

Re: Tabelle LTAP Positionen

Beitrag von DeathAndPain (Top Expert / 1964 / 261 / 415 ) »
Na, wenn nur das das Problem ist, dann machst Du einfach

Code: Alles auswählen.

select doc_id from @items as items into table @data(result).
sort result by table_line.
delete adjacent duplicates from result comparing table_line.
und fertig. Performancetechnisch dürfte das nicht nennenswert schlechter sein, als wenn Dein DISTINCT funktionieren würde.

Re: Tabelle LTAP Positionen

Beitrag von ewx (Top Expert / 4872 / 314 / 644 ) »
Das war ja nicht die Aufgabe. Es sollten mit DISTINCT - HAVING nur die Datensätze ermittelt werden, die genau einen Eintrag haben.

Das ist aber Quatsch. Eigentlich wollte ich COUNT + GROUP BY.

Und so geht's:

Code: Alles auswählen.

SELECT doc_id  FROM @items AS items
  GROUP BY doc_id
  HAVING COUNT( doc_id ) = 1
   INTO TABLE @DATA(result) ##ITAB_DB_SELECT.

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1199
Views
0
Antw.
1057
Views
Ausgleichsbeleg mit Positionen im S/4
von thalinn » 16.09.2020 14:46 • Verfasst in Financials
2
Antw.
1884
Views
Was sind konfigurierbare Positionen?
von said1980 » 02.03.2006 11:50 • Verfasst in ABAP® für Anfänger
1
Antw.
1295
Views
Archivierung von SAP Belegen zu Positionen
von SAP_ENTWICKLER » 03.12.2013 13:24 • Verfasst in ABAP® Core
5
Antw.
1419
Views
BAPI_ACC_DOCUMENT_CHECK - Zähler Positionen
von Rabea1103 » 27.09.2019 11:50 • 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 10 Stunden von wreichelt 2 / 32
Absprung VA02 Position
vor 12 Stunden von gs3rr4 gelöst 3 / 41
OPD Druck im SPOOL
vor 14 Stunden von Manfred K. 1 / 25

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 10 Stunden von wreichelt 2 / 32
Absprung VA02 Position
vor 12 Stunden von gs3rr4 gelöst 3 / 41
OPD Druck im SPOOL
vor 14 Stunden von Manfred K. 1 / 25

Unbeantwortete Forenbeiträge

OPD Druck im SPOOL
vor 14 Stunden von Manfred K. 1 / 25
Export von Spools in XLSX
vor 5 Tagen von abapamateur 1 / 431