Hallo,
wir haben in unserer Testumgebung unser Release 4.6c auf SAP ECC 6.0 upgegraded. Nun haben wir häufig das Problem, dass wir beim Aufruf mancher Reports die Fehlermeldung "Anweisung ist nicht erreichbar" erhalten. Anbei ein im Release 4.6c funktionierender Code:
*----------------------------------------------------------------------*
* INCLUDE ZY_AX_SD_VAKPA_ABRUF_SELECT *
*----------------------------------------------------------------------*
* INCLUDE ZY_AX_SD_VAKPA_ABRUF_SELECT
ich denke einfach mal die SAP Events
- Start-of-selection
- end-of-selection etc. an den entsprechenden Stellen im Programm einfügen - dann passt es schon, denn im neune Release ist die Syntaxprüfung einfach etwas verschärfter und der Übersichthalber ist es auch besser, wenn das Programm so ein wenig "gegliedertt" wird.
Hi und danke für die Antwort. Habe nun vor und nach der if- schleife die Befehle angegeben.
Ergebnis: Der Syntaxcheck meldet keine Fehler. Allerdings erhalte ich bei der Aktivierung des Includes folgende Ausgabe:
"Die Schachtelung ist nicht korrekt: Vor der Anweisung "START-OF-SELECTION" muß die mit "IF" begonnene Kontrollstruktur durch "ENDIF" abgeschlossen werden."
Okay, nun noch einmal etwas genauer beschrieben.
Das Include wird aus einer if- schleife heraus aufgerufen.
im sap 4.6c war dies problemlos möglich. seit ecc 6.0 jedoch scheint SAP generell die Fehlermeldung: "Anweisung ist nicht erreichbar" ausgeben, so lange das Coding im Include nicht durch module..endmodule, form... endform... oder ähnliches eingebunden ist. Sobald ich jedoch versuche dem oben beschriebenen Coding des Includes module... endmodule einzubinden, bekomme ich jedoch die Fehlermeldung, dass die begonnene if- schleife zunächst mit endif beendet worden sein muss, bevor eine Module Definition erfolgen kann.
Irgendwie beißt sich da die Katze in den Schwanz.. finde ich.
Gibt es hier eine andere Lösung? Anbei noch einmal beide Codings.
============================================== Aufrufendes Coding:
==============================================
IF TVAK-HNWKM CA 'F' AND TVAK-HNWK2 CA 'C'.
clear HNW_VBAP.
refresh HNW_VBAP.
INCLUDE ZY_AX_SD_VAKPA_ABRUF_SELECT.
DESCRIBE TABLE HNW_VBAP LINES DA_LINES.
if da_lines > 0.
da_kon_item_exist = 'X'.
endif.
endif.
============================================== Aufgerufenes Coding:
==============================================
*----------------------------------------------------------------------*
* INCLUDE ZY_AX_SD_VAKPA_ABRUF_SELECT *
*----------------------------------------------------------------------*
* INCLUDE ZY_AX_SD_VAKPA_ABRUF_SELECT
============================================== Fehlermeldung:
==============================================
Die Schachtelung ist nicht korrekt: Vor der Anweisung "MODULE" muß die
mit "IF" begonnene Kontrollstruktur durch "ENDIF" abgeschlossen werden.