READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Getting started ... Alles für einen gelungenen Start.
34 Beiträge • Seite 1 von 3 (current) Nächste
34 Beiträge Seite 1 von 3 (current) Nächste

READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Beitrag von sapjob (ForumUser / 12 / 5 / 0 ) »
Hallo,

ich möchte alle Zeilen auslesen, die bzgl. einer Suchschlüssel-Komponente innerhalb eines Wertebereichs liegen, also in etwa wie folgt:
READ TABLE itab INTO wa
WITH KEY comp1 = '20' OR comp1 = '21' ...
was ja syntaktisch falsch ist.
Wie ließe sich das trotzdem bewerkstelligen?

Vielen Dank für eure Hilfe!

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


Re: READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Beitrag von Niels (ForumUser / 77 / 18 / 9 ) »
This statement reads a row from the internal table itab. The row must be specified by naming values for either table_key for a table key, a free condition free_key, or an index index. The latter is possible only for index tables and when using a sorted secondary key. The output response result determines how and to where the row contents are read.
Da steht es ja das dort eine Zeile gelesen wird.
Du kannst ja auch in eine Workarea nur eine Zeile einlesen.

willist du mehrere Zeilen auslesen musst du das mit ienem LOOP itab INTO wa WHERE ...

Gruß

Niels

Re: READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Beitrag von sapjob (ForumUser / 12 / 5 / 0 ) »
Danke erst mal für den Hinweis!
Hätte mal den Code davor noch angeben sollen:
LOOP AT quelle ASSIGNING <quell_felder>.
READ TABLE itab INTO wa
WITH KEY comp1 = '20' OR comp1 = '21'...

Re: READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Welchen ABAP-Releasestand hast du? Unter neueren Releases kommst du mit "if line_exists..." weiter.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Beitrag von sapjob (ForumUser / 12 / 5 / 0 ) »
mmh, hab für die Abfrage der release-infos keine Berechtigung
Dachte, dass wär ne noob-sache, die ziemlich simpel zu lösen wäre

Re: READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
sapjob hat geschrieben:mmh, hab für die Abfrage der release-infos keine Berechtigung
Dachte, dass wär ne noob-sache, die ziemlich simpel zu lösen wäre
Du hast für System -> Status keine Berechtigung????

Wie soll sich READ TABLE denn verhalten, wenn du mit OR mehrere Sätze findest?
Zuletzt geändert von ralf.wenzel am 18.11.2015 13:48, insgesamt 1-mal geändert.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Beitrag von sapjob (ForumUser / 12 / 5 / 0 ) »
Ah ok, hatte woanders gesucht.
7.4 ist der Stand.
Hab mir den Befehl angeschaut, würde das lieber mit read table machen, da der code für die Abfrage eines Schlüsselwerts bereits realisiert worden ist. Müsste das nur auf 2 Werte erweitern.
Die Workarea sollte den Datensatz eingelesen bekommen, sobald er in Komponente K den Wert x oder y enthält

Re: READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
sapjob hat geschrieben:Ah ok, hatte woanders gesucht.
netweaver 7.4
Eigentlich hätte ich auf eine Angabe SAP_ABA = ... gehofft. Aber 7.4 lässt zumindest den Versuch zu, folgendes zu versuchen:

TRY.
wa = VALUE #( itab[ comp = '20' ] ).
CATCH cx_sy_itab_line_not_found.
TRY.
wa = VALUE #( itab[ comp = '21' ] ).
CATCH cx_sy_itab_line_not_found.
*** Weitere Alternativen nach gleichen Muster
*** bzw. kein Satz gefunden nach der letzten Alternative
ENDTRY.
ENDTRY.

Aber wenn deine Lösungsmenge mehr als einen Satz enthält, fährst du mit einem LOOP wirklich besser.

Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
sapjob

Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Beitrag von sapjob (ForumUser / 12 / 5 / 0 ) »
Ja, wollte den Code jetzt nicht an allen Stellen groß umbauen. Werd mal weiterschauen, obs ne einfachere Lösung gibt. Vielen Dank erst mal!

Re: READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Die Frage kann ich dir beantworten: Nein. ;)
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Wie wäre es, wenn du den entsprechenden Tabelleneintrag einfach liest und dann prüfst, ob COMP1 = 20 oder 21 ist...?!

/edit: Bzw. wenn du erst mit COMP1 = 20 liest und bei Misserfolg mit COMP1 = 21...?

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
sapjob


Re: READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
ewx hat geschrieben:/edit: Bzw. wenn du erst mit COMP1 = 20 liest und bei Misserfolg mit COMP1 = 21...?
Das ist doch genau das Codingstück, das ich ihm vorgeschlagen habe ;)
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Beitrag von sapjob (ForumUser / 12 / 5 / 0 ) »
ewx hat geschrieben:Wie wäre es, wenn du den entsprechenden Tabelleneintrag einfach liest und dann prüfst, ob COMP1 = 20 oder 21 ist...?!

/edit: Bzw. wenn du erst mit COMP1 = 20 liest und bei Misserfolg mit COMP1 = 21...?
Das Problem ist dann, dass der identische Code doppelt, also jeweils hinter dem Fall für erfolgreiches Laden von COMP1 = 20 und noch mal hinter COMP1 = 21 stehen müsste. Das ist eigentlich auch ne schlechte Lösung oder nicht?

Re: READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Beitrag von Niels (ForumUser / 77 / 18 / 9 ) »
Aber Anders komsmt du sonst nicht an die Daten

Re: READ TABLE ... WITH KEY [logische Verknüpfung mögl?]

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
ralf.wenzel hat geschrieben:Das ist doch genau das Codingstück, das ich ihm vorgeschlagen habe ;)
Das stimmt. Da war ich wohl vom 740er Code geblendet... :)

Vergleichbare Themen

4
Antw.
2959
Views
Read mit OR Verknüpfung?
von fcmfanswr » 18.11.2010 09:24 • Verfasst in ABAP® Core
3
Antw.
2640
Views
read table
von kostonstyle » 27.03.2008 15:38 • Verfasst in ABAP® für Anfänger
2
Antw.
3197
Views
READ TABLE dynamisch aufrufen
von RiffRaff » 27.12.2004 12:04 • Verfasst in ABAP® Core
5
Antw.
18328
Views
read table liefert sy-subrc = 4
von c oco » 04.04.2011 17:09 • Verfasst in ABAP® für Anfänger
8
Antw.
8618
Views
Read Table mit MAX Datum und Zeit
von autohandel7 » 23.08.2018 10:54 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Zugriff auf Daten via Webdav
vor 14 Minuten von msfox 2 / 33
Interne Tabelle
vor 17 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

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

Zugriff auf Daten via Webdav
vor 14 Minuten von msfox 2 / 33
Interne Tabelle
vor 17 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141