Interne Tabellen vergleichen

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

Interne Tabellen vergleichen

Beitrag von Micha_ela (ForumUser / 26 / 0 / 0 ) »
Hallo ,

ich habe 2 interne Tabellen:

in der Tabelle Tab1 stehen Artikelnummern, die für ein Gerät gebraucht werden
in Tabelle 2 stehen Pärchen von Artikeln.
ich muß für alle Pärchen aus Tabelle 2 überprüfen, ob sie in Tabelle 1 vorhanden sind.


int. Tabelle 1 : int. Tabelle 2 : ART 1 ART 11 -> nicht drin
ART 1 ART 3 ART 4 -> drin
ART 2
ART 3
ART 4
ART 5

wie mache ich das möglichst elegant ?
Vielen Dank!

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


Re: Interne Tabellen vergleichen

Beitrag von A6272 (Specialist / 235 / 6 / 36 ) »
Hallo,
wie ist der gesamte Kontext dazu?

Willst Du Tabelle 2 in einer Spalte einen Wert haben für "Hurra ich bin in Tabelle1" / "Mist ich bin nicht in Tabelle1"?

Oder willst Du nach der Überprüfung direkt eine Folgeaktivität starten?

oder...

Re: Interne Tabellen vergleichen

Beitrag von Micha_ela (ForumUser / 26 / 0 / 0 ) »
A6272 hat geschrieben:
21.06.2024 08:02
Hallo,
wie ist der gesamte Kontext dazu?

Willst Du Tabelle 2 in einer Spalte einen Wert haben für "Hurra ich bin in Tabelle1" / "Mist ich bin nicht in Tabelle1"?

Oder willst Du nach der Überprüfung direkt eine Folgeaktivität starten?

oder...
Ich will eine Folgeaktivität starten

Re: Interne Tabellen vergleichen

Beitrag von Lukas Sanders (ForumUser / 68 / 7 / 34 ) »
Hallo,

eine einfache Möglichkeit wäre eine Schleife über Tabelle 2, in welcher für jede Zeile geprüft wird, ob ein entsprechender Eintrag vorhanden ist.

Code: Alles auswählen.

LOOP AT itab2 REFERENCE INTO DATA(lr_itab2). 
  IF NOT line_exists( itab1[ artikelnummer = lr_itab1->artikel1 ] ) OR NOT line_exists( itab1[ artikelnummer = lr_itab1->artikel2 ] ). 
    " einer der beiden Artikel existiert nicht in Tabelle 1, irgendwas tun... 
  ENDIF. 
ENDLOOP. 

Re: Interne Tabellen vergleichen

Beitrag von Micha_ela (ForumUser / 26 / 0 / 0 ) »
Oh, Mann, vielen Dank, den line_exists hate ich nicht auf dem Schirm....

Re: Interne Tabellen vergleichen

Beitrag von msfox (Specialist / 326 / 53 / 65 ) »
Micha_ela hat geschrieben:
24.06.2024 10:53

Code: Alles auswählen.

LOOP AT itab2 REFERENCE INTO DATA(lr_itab2). 
  IF NOT line_exists( itab1[ artikelnummer = lr_itab1->artikel1 ] ) OR NOT line_exists( itab1[ artikelnummer = lr_itab1->artikel2 ] ). 
    " einer der beiden Artikel existiert nicht in Tabelle 1, irgendwas tun... 
  ENDIF. 
ENDLOOP. 
Ist das performant?
Hier sucht das Programm im schlimmsten Fall 2x squentiell in itab1 (keine SORTED TABLE angenommen).
Leider kann man in einem READ TABLE* keine OR verwenden, sondern nur in einem LOOP. Bei Verwendung eines LOOPs ist das Coding zwar länger, dafür muss das Programm nur max. 1x durch die itab1.
--
*LINES_EXISTS ist ja quasi das verkürzte READ TABLE, nur das man den SY-Subrc nicht auswerten muss. In dem Fall bräuchte man 2 READ TABLE, darum LINE_EXISTS()

Seite 1 von 1

Vergleichbare Themen

3
Antw.
920
Views
4
Antw.
3467
Views
2 interne Tabellen vergleichen
von swonny » 06.11.2006 16:12 • Verfasst in ABAP® für Anfänger
2
Antw.
1918
Views
2 interne Tabellen vergleichen
von Klende » 21.11.2005 15:16 • Verfasst in ABAP® für Anfänger
10
Antw.
16940
Views
interne tabellen vergleichen
von TobiB » 23.11.2007 13:12 • Verfasst in ABAP® Core
12
Antw.
7415
Views
2 interne Tabellen vergleichen
von Bright4.5 » 28.03.2019 08:56 • 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.