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 / 29 / 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 / 238 / 8 / 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 / 29 / 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 / 29 / 0 / 0 ) »
Oh, Mann, vielen Dank, den line_exists hate ich nicht auf dem Schirm....

Re: Interne Tabellen vergleichen

Beitrag von msfox (Specialist / 364 / 56 / 74 ) »
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.
1252
Views
7
Antw.
4041
Views
2 interne Tabellen vergleichen
von Frank Schmitt » 24.06.2020 09:40 • Verfasst in ABAP® für Anfänger
4
Antw.
3538
Views
2 interne Tabellen vergleichen
von swonny » 06.11.2006 16:12 • Verfasst in ABAP® für Anfänger
12
Antw.
7769
Views
2 interne Tabellen vergleichen
von Bright4.5 » 28.03.2019 08:56 • Verfasst in ABAP® für Anfänger
10
Antw.
17135
Views
interne tabellen vergleichen
von TobiB » 23.11.2007 13:12 • Verfasst in ABAP® Core

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.

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1585
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8194