Hi Leute,
ich suche recht häufig nach Lösungen und Vorgehensweisen in eurem Forum und werd auch so gut wie immer fündig, doch nun hab ich ein Problem, bei dem ich einfach nicht weiterkomm.
Ich hoffe das mir jemand von euch helfen kann.
Aber nun zu meinem Problem.
Ich habe ein Dynpro mit dem Layout-Manager erstellt und daruaf ein I/O-Feld als Dropdownliste festgelegt (drpdl_process).
Nun will ich das dort nur vorgegebene Werte ausgewählt werden können.
Dafür hab ich ähnlich wie im Buch 'ABAP Objects' den FUBA 'F4IF_INT_TABLE_VALUE_REQUEST' benutzt, um die Dropdownliste bei 'Process ON VALUE-Request' zu füllen.
Nun bekomm ich aber beim ausführen des Programms immer die Fehlermeldung 'Workprozeß durchgestartet (Modus abgebrochen)
was während oder nach dem ausführen dieses FuBas auftritt.
Lasse ich das module welches für die Dropdownliste ist weg, so funktioniert der Rest einwandfrei.
Code:
DYNPRO:
-------------------------------------------------
PROCESS BEFORE OUTPUT.
MODULE set_status.
PROCESS AFTER INPUT.
MODULE user_command_0100.
MODULE cancel AT EXIT-COMMAND.
PROCESS ON VALUE-REQUEST.
FIELD drpdl_process-key MODULE create_dropdown_box. <---!!!
PAI-Module:
--------------------------------------------------
MODULE create_dropdown_box INPUT.
lc_dynpro_utilities=>value_help_process( ).
ENDMODULE. " create_dropdown_box INPUT
TOP-INCLUDE:
--------------------------------------------------
FUNCTION-POOL zp00_dyn_test. "MESSAGE-ID ..
DATA:
save_ok TYPE sy-ucomm,
ok_code TYPE sy-ucomm.
TYPES:
BEGIN OF dropdownlist,
key TYPE char40,
name TYPE char80,
END OF dropdownlist.
DATA:
process_table TYPE STANDARD TABLE OF dropdownlist,
document_table TYPE STANDARD TABLE OF dropdownlist.
*&---------------------------------------------------------------------*
*& Class LC_DYNPRO_UTILITIES
*&---------------------------------------------------------------------*
* Text
*----------------------------------------------------------------------*
CLASS lc_dynpro_utilities DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
set_process_table,
value_help_process.
ENDCLASS. "LC_DYNPRO_UTILITIES
CLASS lc_dynpro_utilities IMPLEMENTATION.
METHOD set_process_table.
DATA:
wa_process_table LIKE LINE OF process_table.
CLEAR process_table.
wa_process_table-key = 0.
SELECT DISTINCT prcss
FROM <Tabelle>
INTO wa_process_table-name.
wa_process_table-key = wa_process_table-key + 1.
APPEND wa_process_table TO process_table.
ENDSELECT.
ENDMETHOD.
METHOD value_help_process.
DATA:
syrepid TYPE sy-repid.
syrepid = sy-repid.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'KEY'
value_org = 'S'
dynpprog = syrepid
dynpnr = '0100'
dynprofield = 'DRPDL_PROCESS'
TABLES
value_tab = process_table.
ENDMETHOD.
ENDCLASS. "LC_DYNPRO_UTILITIES
Iin der itab, die an den FuBa übergeben wird, sind rund 60 Einträge drin.
Über das Modul set_status wird auch noch die Methode ' set_process_table' der Klasse lc_dynpro_utilities aufgerufen, um die itab zu füllen.
Vielen Dank im vorraus
Gruss Christian