7.40-Frage: ASSIGN schlägt fehl

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

7.40-Frage: ASSIGN schlägt fehl

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
Moin,

ich habe hier einen Bekannten, der mir folgende Frage stellt (ich kann das nicht testen, mein Releasestand erlaubt das nicht):
ASSIGN itab[ key name components .... ] TO FIELD-SYMBOL(<row>).
Die ITAB ist leer, <row> deshalb nicht assigned, ich hätte darauf gewettet, dass ein CATCH CX_SY_ITAB_LINE_NOT_FOUND ausgelöst werden würde. Das ist aber nicht der Fall, stattdessen steht der sy-subrc (!) auf 8.

Kann mir das jemand erklären?


Ralf *dankt

PS: (Wie kann man denn hier Sonderzeichen in Code-Blocks schreiben, ohne dass die in &#...; umgesetzt werden?)
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

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


Re: 7.40-Frage: ASSIGN schlägt fehl

Beitrag von lausek (ForumUser / 64 / 2 / 20 ) »
Soll wohl eine Art "Ersatz" für READ TABLE sein. Man hätte also die Wahl zwischen:

Code: Alles auswählen.

READ TABLE i_tab WITH KEY field1 = '...' ASSIGNING FIELD-SYMBOL(<lfs_line).
IF sy-subrc = 0.
...
ENDIF.

" ... oder

ASSIGN i_tab[ field1 = '...' ] TO FIELD-SYMBOL(<lfs_line).
IF sy-subrc = 0.
...
ENDIF.
Ich persönlich fände eine Exception auch besser.

Re: 7.40-Frage: ASSIGN schlägt fehl

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
Ja, es ist ein Ersatz, der lt. Horst Keller *KEINEN* sy-subrc setzt, sondern eine Ausnahme.

DAS ist das Problem.



Ralf

Nachtrag: Horst Keller: "If a table line is not found, the exception CX_SY_ITAB_LINE_NOT_FOUND is raised. No sy-subrc from expressions, of course."
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: 7.40-Frage: ASSIGN schlägt fehl

Beitrag von lausek (ForumUser / 64 / 2 / 20 ) »
Wenn man sich dagegen die Doku zu ASSIGN anschaut:
In dynamic variants and when a table expression is specified, the statement ASSIGN sets the return code sy-subrc.

Folgende Benutzer bedankten sich beim Autor lausek für den Beitrag:
Haubi


Re: 7.40-Frage: ASSIGN schlägt fehl

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
Da habe ich nicht nachgeschaut, aber ihm schon gesagt, ein 8er-subrc könnte vom ASSIGN kommen - aber die Ausnahme müsste ja vorher ausgelöst werden. Wieder was gelernt. Dann kann der CATCH dort ja weg.

Vielen Dank für den Tipp!!


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

Re: 7.40-Frage: ASSIGN schlägt fehl

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
ralf.wenzel hat geschrieben:Da habe ich nicht nachgeschaut, aber ihm schon gesagt, ein 8er-subrc könnte vom ASSIGN kommen - aber die Ausnahme müsste ja vorher ausgelöst werden. Wieder was gelernt. Dann kann der CATCH dort ja weg.

Vielen Dank für den Tipp!!


Ralf
Ich hatte schon das gleiche Problem und den gleichen Gedanken - die Ausnahme müsste eigentlich geschmissen werden. Wird sie aber nicht, nu weiß ich auch, dass das normal ist und muss mir keinen Kopp machen... :wink:

Grüße,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Re: 7.40-Frage: ASSIGN schlägt fehl

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
Haubi hat geschrieben:Ich hatte schon das gleiche Problem und den gleichen Gedanken - die Ausnahme müsste eigentlich geschmissen werden. Wird sie aber nicht, nu weiß ich auch, dass das normal ist und muss mir keinen Kopp machen... :wink:
Von der Logik her ist das auch richtig - erst muss der itab-Satz gelesen werden (was schiefgeht - Ausnahme) und das Ergebnis wird dann assigned (wozu es nicht kommt, weil es kein Ergebnis gibt, sondern die Ausnahme geschmissen wird).

Da hat wer gepennt bei der SAP *oder* meine Vermutung über die Funktionsweise ist falsch.


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

Seite 1 von 1

Vergleichbare Themen

1
Antw.
3120
Views
HR_EMPLOYEE_ENQUEUE schlägt fehl
von Dyrdek » 11.05.2017 15:10 • Verfasst in Human Resources
8
Antw.
6647
Views
SELECT SUM Schlägt fehl
von Trulchen » 07.10.2015 14:07 • Verfasst in ABAP® für Anfänger
2
Antw.
479
Views
Variante sichern schlägt fehl
von ralf.wenzel » 30.11.2022 11:31 • Verfasst in ABAP® Core
1
Antw.
1661
Views
MaxDB: Restore von LOGs schlägt fehl
von Margolwes » 14.10.2005 14:55 • Verfasst in Basis
0
Antw.
1203
Views
CRM: call transaction 'COMMPR01' schlägt fehl
von Margolwes » 17.09.2010 12:26 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Regex in where
vor 4 Stunden von tar 8 / 183
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1489

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

Regex in where
vor 4 Stunden von tar 8 / 183
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1489

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9822