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 / 4833 / 307 / 636 ) »
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 / 1904 / 247 / 407 ) »
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 / 4833 / 307 / 636 ) »
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 / 1904 / 247 / 407 ) »
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 / 4833 / 307 / 636 ) »
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.
1029
Views
0
Antw.
962
Views
Ausgleichsbeleg mit Positionen im S/4
von thalinn » 16.09.2020 14:46 • Verfasst in Financials
2
Antw.
1658
Views
LSMW für WAK1 mit Positionen
von autohandel7 » 03.09.2015 15:53 • Verfasst in ABAP® für Anfänger
1
Antw.
2005
Views
Übergeordnete Positionen und Konfiguration
von Weltenschmerz » 01.12.2016 08:24 • Verfasst in Sales and Distribution
0
Antw.
1667
Views
Bestellung - Lieferschein Positionen
von Tobbworld » 22.05.2006 12:00 • Verfasst in Sales and Distribution

Über diesen Beitrag



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

Aktuelle Forenbeiträge

corresponding - mapping - switch
vor 5 Stunden von DeathAndPain 31 / 635
aRFC im OO-Kontext
vor 22 Stunden von ralf.wenzel 1 / 179
Exception statt sy-subrc
Gestern von DeathAndPain 14 / 520

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

corresponding - mapping - switch
vor 5 Stunden von DeathAndPain 31 / 635
aRFC im OO-Kontext
vor 22 Stunden von ralf.wenzel 1 / 179
Exception statt sy-subrc
Gestern von DeathAndPain 14 / 520

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 22 Stunden von ralf.wenzel 1 / 179
EPC QR Code in Smartforms ohne CF_LF
vor einer Woche von Thomas J. 1 / 1381
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 6921