So, dann mal noch ein paar Infos.
Habe auf meinem Dynpro 5000 ein Custom-Control mit dem Namen CONT_HEAD angelegt. An dieses Control wird ein CL_GUI_CUSTOM_CONTAINER gebunden. Später mal kommt an diesen dann ein CL_GUI_HTML_VIEWER.
Jetzt erst einmal ein wenig Coding. Infos zur Problemmatik dann unten. Vielleicht seht ihr ja den Fehler auf dem ersten Blick
Ablauflogik Dynpro 5000
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
PROCESS BEFORE OUTPUT.
MODULE STATUS_5000.
MODULE init_control_processing_5000.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_5000.
- GeSHi ©
MODULE init_control_processing_5000.
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
MODULE init_control_processing_5000 OUTPUT.
IF go_cont_head
IS NOT BOUND. "Kopfbereich
CREATE OBJECT go_cont_head
EXPORTING
container_name = 'CONT_HEAD'
EXCEPTIONS
OTHERS = 1.
* CREATE OBJECT go_html_head
* EXPORTING
* parent = go_cont_head.
* IF sy-subrc <> 0.
*
* ENDIF.
*
* CALL FUNCTION 'WDY_CONSTRUCT_URL'
* EXPORTING
* application = 'ZMM_ZK_HEAD'
* IMPORTING
* out_url = l_url
* EXCEPTIONS
* invalid_application = 1.
*
* g_url = l_url.
*
* go_html_head->show_url( g_url ).
*
CALL FUNCTION 'STARTE_TASK'
EXCEPTIONS
communication_failure = 1
system_failure = 2.
- GeSHi ©
FuBa STARTE_TASK
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" EXCEPTIONS
*" SYSTEM_FAILURE
*" COMMUNICATION_FAILURE
*"----------------------------------------------------------------------
"Zum testen
CALL FUNCTION 'RFC_PING_AND_WAIT'
STARTING NEW TASK 'WAITING'
EXPORTING SECONDS = 5
EXCEPTIONS
COMMUNICATION_FAILURE = 1
SYSTEM_FAILURE = 2 .
- GeSHi ©
MODULE USER_COMMAND_5000.
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
MODULE user_command_5000
INPUT.
DATA: l_url_200
TYPE char200
.
"tue etwas
* CALL FUNCTION 'STARTE_TASK'.
- GeSHi ©
Form REFRESH
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- GeSHi ©
Jetzt zur Problemmatik: kommentiere ich im INIT_CONTROL_PROCESSING die Erzeugung des CL_GUI_CUSTOM_CONTAINER (go_cont_head) aus, dann funktioniert die Logik wie gewünscht. Nach 5 Sekunden ist die parallel gestarte Task beendet, die Formroutine Refresh wird aufgerufen, der OK-Code wird abgesetzt und das MODULE user_command_5000 wird durchlaufen. Wird der Container (go_cont_head) erzeugt, dann ist die parallel gestartete Task nach 5 Sekunden beendet, er kommt auch noch zum SET USER-COMMAND 'TEST' aber im MODULE user_command_5000 kommt er nie an. Irgendwie scheint der Roundtrip zum PAI nicht angestossen zu werden. Die GUI lässt sich an der Stelle immer noch genauso bedienen wie immer. D.h. BACK, EXIT und CANC können über die Standardbuttons noch bedient werden.
Zusatzinfo: drücke ich auf dem Screen einmal Enter, dann wird anschließend die Logik ordungsgemäß durchlaufen.
Jemand eine Ahnung woran es liegen könnte? Bin gerade ein wenig ratlos.