Hallo zusammen!
ich habe eine Frage zum Wokflow in Verbindung mit einer Formulare-Aufgabe (DYNP_FORM) und einem neuen Multi-Line-Container.
Ich habe einen Workflow mit einem Formular (Dynpro). Dieses Formular ist ein Dynpro in einer Funktionsgruppe.
Ich habe einen Multi-Line-Container zum Workflow hinzugefügt. nennen wir in HUGO.
Ich versuche nun auf alle erdenkliche Arten, diesen Container so zu füllen, dass er in den Workflow kopiert wird und weiterverwendet werden kann.
Das Schreiben funktioniert tadellos; ich kann die Daten in der entsprechenden Container-Instanz sehen. Aber: Sie werden nicht in den Workflow übertragen.
Folgendes habe ich bereits getan:
* HUGO habe ich als Container in der Standardaufgabe definiert
* HUGO habe ich als Container im Workflow definiert
a) Direktes Schreiben in den WF-Container in der Formular-Funktionsgruppe
b) Verwendung einer Exit-Klasse in dem Tab "Programmier-Exits"
c) Schreiben der Daten in den WI-Container und Definition im Datenfluss "Container <-> Container: Alle Elemente kopieren
d) Verwendung eines Exit-Funktionsbausteins im Datenfluss (Funktionsbaustein SWA_BINDING_TEMPLATE)
e) Verwendung einer Exit-Klasse im Datenfluss (Interface IF_SWF_IFS_BIND_TRANSFORM_CONT)
Ich habe allmählich keine Lust mehr. Egal, was ich mache, die Daten kommen nicht im Workflow an. Überprüfen tue ich das, indem ich in SWIA die Container überprüfe.
Das einzige, was funktioniert ist, wenn ich Initialwerte für den Container HUGO definiere. Diese landen letztendlich im WF-Container.
Hat irgendjemand eine Idee, was ich verkehrt mache?
Hier das Coding zum Setzen des Containers:
Code: Alles auswählen.
cl_swf_evt_requester=>get_workitem(
IMPORTING
ex_workitem = requester_workitem
ex_workitem_id = requester_workitemid ).
workitem_id = requester_workitemid.
TRY. "Get Instance
DATA(wi_context) = cl_swf_run_workitem_context=>get_instance( im_wiid = workitem_id ).
CATCH cx_swf_run_wim INTO DATA(error).
RETURN.
ENDTRY.
DATA(wi_container) = wi_context->if_wapi_workitem_context~get_wi_container( ).
DATA(wi_container_elem) = CAST if_swf_cnt_element_access_1( wi_container ).
DATA(wi_container_test) = CAST if_swf_ifs_parameter_container( wi_container ).
TRY.
wi_container_test->set( "Alternative 1
name = 'HUGO'
value = lt_hugo ).
wi_container_elem->element_set_value( "Alternative 2
name = 'HUGO'
value = lt_hugo ).
CATCH cx_swf_cnt_cont_access_denied.
CATCH cx_swf_cnt_elem_access_denied.
CATCH cx_swf_cnt_elem_not_found.
CATCH cx_swf_cnt_elem_type_conflict.
CATCH cx_swf_cnt_elem_def_invalid.
CATCH cx_swf_cnt_container.
ENDTRY.
P.S.: Auch mit den Macros funktioniert es nicht (SWC_SET_TABLE)