Die Elseif-Anweisung wird übersprungen

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

Die Elseif-Anweisung wird übersprungen

Beitrag von TurgutOz (ForumUser / 1 / 0 / 0 ) »
Guten Abend, und zwar geht es darum, dass meine Elseif Bedingung übersprungen wird, obwohl sie erfüllt ist. Es geht um die Programmierung im Web Dynpro.

Die lokale Struktur Ls_search_pruefung beinhaltet die Eingabe einer Prüfungs-ID vom Benutzer. Wenn eine Eingabe zwischen 1 und 4 stattfindet, werden die dazugehörigen Prüfungen dazu ausgegeben. Bis hierhin funktioniert alles soweit.
Wenn die gesuchte Prüfungs_id nicht vorhanden ist, soll er eine Fehlermeldung in der elseif anweisung erzeugen, jedoch wird diese übersprungen und eine Internal server error 500 ausgegeben.



SELECT * FROM z432_pruefungt INTO TABLE lt_pruefung.

IF ls_pruefung ne ls_search_pruefung.
LOOP AT lt_pruefung INTO ls_pruefung FROM 1 TO ls_search_pruefung-p_id.
ENDLOOP.


ELSEif ls_search_pruefung-p_id > ls_pruefung-p_id.
ls_param-name = 'p_id' .
ls_param-value = ls_search_pruefung-p_id .
APPEND ls_param TO lt_params.

lo_api_controller ?= wd_this->wd_get_api( ).

CALL METHOD lo_api_controller->get_message_manager
RECEIVING
message_manager = lo_message_manager.

* report message
CALL METHOD lo_message_manager->report_element_error_message
EXPORTING
message_text = 'Keine Prüfung zu der Prüfungsnummer &p_id gefunden!'
element = lo_el_search_pruefung
* attributes =
params = lt_params
* msg_user_data =
* is_permanent = ABAP_FALSE
* scope_permanent_msg = CO_MSG_SCOPE_CTXT_ELEMENT
* msg_index =
* cancel_navigation =
* is_validation_independent = ABAP_FALSE
* enable_message_navigation =
* view =
* component =
* RECEIVING
* message_id =
.

ENDIF.

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


Re: Die Elseif-Anweisung wird übersprungen

Beitrag von Lukas Sanders (ForumUser / 64 / 7 / 33 ) »
Hallo,

bei einem Internal Server Error wird in der Regel auch ein Dump geschrieben (Transaktion ST22), in dem die genaue Ausnahme und die Abbruchstelle zu finden sind.

Außerdem kann bei einer IF-Verzweigung (in ABAP) immer nur ein Zweig angesprochen werden und es gewinnt der erste Treffer. Ist eine Bedingung erfüllt, werden die anderen gar nicht erst durchlaufen.

Wenn die Bedingung im ELSEIF-Zweig zutrifft, trifft auch die IF-Bedingung zu (wenn ls_search_pruefung-p_id größer als ls_pruefung-p_id ist, dann ist auch ls_pruefung ungleich ls_search_pruefung).

Somit wird der ELSEIF-Zweig nie erreicht. Eventuell wäre hier eine andere Schachtelung mit zwei IF-Verzweigungen besser.

Folgende Benutzer bedankten sich beim Autor Lukas Sanders für den Beitrag:
DeathAndPain


Re: Die Elseif-Anweisung wird übersprungen

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
Wie genau sind "ls_search_pruefung-p_id" und "ls_pruefung-p_id" definiert?
CHAR, INT oder was ganz anderes?
Sind Konvertierungen ala ALPHA hinterlegt?
Wie wird "ls_pruefung" befüllt? Ich sehe nur ein SELECT auf eine Tabelle und nicht in die Struktur.

Ansonst stimmt natürlich auch Lukas's Einwand, dass die zweite IF-Bedingung durch die erste IF-Bedingung gar nicht angesprungen wird.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

2
Antw.
3946
Views
IF ELSEIF
von dyv » 07.08.2014 14:37 • Verfasst in ABAP® für Anfänger
8
Antw.
1586
Views
"WRITE" wird übersprungen.
von Django90 » 28.09.2017 11:33 • Verfasst in ABAP® für Anfänger
9
Antw.
3156
Views
IF Anweisung
von Mathan » 06.09.2006 13:07 • Verfasst in ABAP® Core
2
Antw.
1899
Views
modify Anweisung
von Jan_M. » 31.05.2004 21:39 • Verfasst in ABAP® für Anfänger
18
Antw.
5215
Views
Select-Anweisung...
von Nici » 19.07.2004 13:18 • 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.