* Einkaufsbelegnummer
PARAMETERS: p_po TYPE ekko-ebeln.
* Typ von Objekten in Persistenten Objektreferenzen, hier z.B. Klasse für Bestellungen
PARAMETERS: p_type TYPE sibftypeid DEFAULT 'CL_MM_PUR_WF_OBJECT_PO'.
* Kategorie von Objekten in Persistenten Objektreferenzen, hier z.B. Typ "Klassen"
PARAMETERS: p_catid TYPE sibfcatid DEFAULT 'CL'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_type.
* Sucht Objekttypen zu einem Muster
DATA(it_objtypes) = cl_swf_utl_def_services=>query_objects( EXPORTING im_objcateg = p_catid
im_objtype = '*' ).
DATA: it_return TYPE TABLE OF ddshretval.
* eigene Suchhilfe für Auswahl der Objekte anzeigen
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'TYPEID' " Spalte der internen Tabelle bei value_tab
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'P_TYPE' " Name des Dynpro-Feldes für die automatische Werterückgabe
value_org = 'S' " Werteübergabe: C: zellenweise, S: strukturiert
window_title = 'Auswahl'
TABLES
value_tab = it_objtypes " Übergabe-Tabelle mit Werten für die Anzeige und Auswahl
return_tab = it_return " Rückgabe-Tabelle mit den ausgewählten (geklickten) Elementen
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc = 0.
IF lines( it_return ) > 0.
MESSAGE it_return[ 1 ]-fieldval TYPE 'S'.
ENDIF.
ENDIF.
START-OF-SELECTION.
DATA(lv_object_por) = VALUE sibflporb( instid = CONV #( p_po )
typeid = p_type
catid = p_catid ).
DATA: lv_return_code TYPE sy-subrc.
DATA: it_task_filter TYPE STANDARD TABLE OF swr_task WITH DEFAULT KEY.
DATA: it_worklist TYPE STANDARD TABLE OF swr_wihdr WITH DEFAULT KEY.
* Workflow-Schnittstellen: Workitems zu Objekt
CALL FUNCTION 'SAP_WAPI_WORKITEMS_TO_OBJECT'
EXPORTING
object_por = lv_object_por
IMPORTING
return_code = lv_return_code
TABLES
task_filter = it_task_filter
worklist = it_worklist.
cl_demo_output=>write_data( lv_object_por ).
cl_demo_output=>write_data( lv_return_code ).
cl_demo_output=>write_data( it_task_filter ).
cl_demo_output=>write_data( it_worklist ).
* HTML-Code vom Demo-Output holen
DATA(lv_html) = cl_demo_output=>get( ).
* Daten im Inline-Browser im SAP-Fenster anzeigen
cl_abap_browser=>show_html( EXPORTING title = 'Workflow'
html_string = lv_html
container = cl_gui_container=>default_screen ).
* cl_gui_container=>default_screen erzwingen
WRITE: space.