Code: Alles auswählen.
Data my_tab type table of string.
* tab wird mit werten befüllt, blablabla
read table my_tab transporting no fields with key ??? = 'my_string'.
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
sapnup
Code: Alles auswählen.
read table my_tab transporting no fields with key ('SPALTE_XYZ') = 'my_string'.
Code: Alles auswählen.
DATA my_tab TYPE TABLE OF string.
APPEND 'Test 123' TO my_tab.
APPEND 'Blablubb' TO my_tab.
* tab wird mit werten befüllt, blablabla
READ TABLE my_tab TRANSPORTING NO FIELDS WITH KEY table_line = 'Test 123'.
WRITE:/ sy-subrc. " sollte 0 sein.
READ TABLE my_tab TRANSPORTING NO FIELDS WITH KEY table_line = 'irgendwas'.
WRITE:/ sy-subrc. " sollte 4 sein.
Mein Problem war, dass das Feld keinen Namen hat. Deshalb würde das Klammern hier nicht helfen. black_adept hatte da genau die richtige Lösung. Das Read Table in meinem obigen Beispiel müsste wie folgt aussehen:a-dead-trousers hat geschrieben:Beim READ TABLE gibt es im Gegensatz zu LOOP AT auch eine generische Syntax:Code: Alles auswählen.
read table my_tab transporting no fields with key ('SPALTE_XYZ') = 'my_string'.
Code: Alles auswählen.
read table my_tab transporting no fields with key table_line = 'my_string'.
Dieser Code:DeathAndPain hat geschrieben:Das hat aber mit seiner Frage nichts zu tun, denn bei seiner Tabelle gibt es ja keine (benamte) Spalte.
Allerdings kann ich mich erinnern, dass ich in einem Fall wie seinem auch schon generisch zugegriffen habe mit:
read table my_tab transporting no fields with key 'my_string'.
Ich bin aber nicht sicher (und jetzt auch zu faul zu Testen), ob das so in aktuellen Releases noch funktioniert oder der table_line zwingend erforderlich ist.
Code: Alles auswählen.
read table my_tab transporting no fields with key 'my_string'.
Mit table_line bekomme ich (Basis 7.4.) erwartungsgemäß 0 und 4. Ohne table_line kommt bei mir 4 und 4 raus.Somani hat geschrieben:Ich teste das doch gerne für dich Interessiert mich auch grad.
ohne table_line hat das bei mir net wirklich funktioniert Korrektur: funktioniert auch ohne table_line wenn man net zu dämlich ist korrekt zu schreibenCode: Alles auswählen.
DATA my_tab TYPE TABLE OF string. APPEND 'Test 123' TO my_tab. APPEND 'Blablubb' TO my_tab. * tab wird mit werten befüllt, blablabla READ TABLE my_tab TRANSPORTING NO FIELDS WITH KEY table_line = 'Test 123'. WRITE:/ sy-subrc. " sollte 0 sein. READ TABLE my_tab TRANSPORTING NO FIELDS WITH KEY table_line = 'irgendwas'. WRITE:/ sy-subrc. " sollte 4 sein.
Code: Alles auswählen.
*&---------------------------------------------------------------------*
*& Report ZTEST4
*&---------------------------------------------------------------------*
REPORT ZTEST4.
TYPES C10(10) TYPE C.
DATA: MY_TAB TYPE TABLE OF C10,
X TYPE C10.
APPEND 'Test 123' TO MY_TAB.
APPEND 'Blablubb' TO MY_TAB.
* tab wird mit werten befüllt, blablabla
READ TABLE MY_TAB TRANSPORTING NO FIELDS WITH KEY 'Test 123'.
WRITE:/ SY-SUBRC. " sollte 0 sein.
READ TABLE MY_TAB TRANSPORTING NO FIELDS WITH KEY 'irgendwas'.
WRITE:/ SY-SUBRC. " sollte 4 sein.