This is a great tool for a workflow administrator. It is a report that allows you to view what’s in another user’s inbox. It’s displayed in an ALV grid format and clicking the workitem ID takes you to the applicable workflow log.
REPORT zwf_view_inbox
MESSAGE-ID b1
NO STANDARD PAGE HEADING
LINE-SIZE 170.
************************************************************************
* Program Name : ZWF_VIEW_INBOX
* Author : H Bauer
***********************************************************************
************************************************************************
* I n c l u d e s *
************************************************************************
TYPE-POOLS: slis.
************************************************************************
* I n t e r n a l T a b l e s *
************************************************************************
DATA BEGIN OF itab_wl OCCURS 0.
INCLUDE STRUCTURE swr_wihdr.
DATA:END OF itab_wl.
DATA: BEGIN OF gt_outtab OCCURS 0.
INCLUDE STRUCTURE itab_wl.
DATA: END OF gt_outtab.
DATA: fld_catalog TYPE slis_t_fieldcat_alv, ” lvc_t_fcat,
wa_fld_catalog LIKE LINE OF fld_catalog.
DATA: gs_layout TYPE slis_layout_alv,
gt_sort TYPE slis_t_sortinfo_alv,
gs_sort TYPE slis_sortinfo_alv,
g_exit_caused_by_caller,
gs_exit_caused_by_user TYPE slis_exit_by_user,
g_repid LIKE sy-repid.
DATA: gs_print TYPE slis_print_alv.
DATA: gt_events TYPE slis_t_event,
gt_list_top_of_page TYPE slis_t_listheader,
g_status_set TYPE slis_formname VALUE ‘PF_STATUS_SET’,
g_user_command TYPE slis_formname VALUE ‘USER_COMMAND’,
g_top_of_page TYPE slis_formname VALUE ‘TOP_OF_PAGE’,
g_top_of_list TYPE slis_formname VALUE ‘TOP_OF_LIST’,
g_end_of_list TYPE slis_formname VALUE ‘END_OF_LIST’.
DATA: gs_variant LIKE disvariant,
g_save,
gv_dbcnt TYPE p,
w_callback_ucomm TYPE slis_formname.
DATA: gv_save_tabix LIKE sy-tabix.
************************************************************************
* P a r a m e t e r s & S e l e c t O p t i o n *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-005.
PARAMETERS: pv_uname LIKE sy-uname.
SELECTION-SCREEN: END OF BLOCK block1.
SELECTION-SCREEN: BEGIN OF BLOCK block3 WITH FRAME TITLE text-010.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN COMMENT /1(79) text-201.
SELECTION-SCREEN: END OF BLOCK block3.
************************************************************************
* A t S e l e c t i o n S c r e e n *
************************************************************************
AT SELECTION-SCREEN.
IF pv_uname IS INITIAL.
MESSAGE e999(b1) WITH ‘Please enter SAP Logon ID’.
ENDIF.
************************************************************************
* S t a r t o f S e l e c t i o n *
************************************************************************
START-OF-SELECTION.
g_repid = sy-repid.
PERFORM s100_layout_init USING gs_layout.
PERFORM s120_update_field_catalog.
PERFORM s140_eventtab_build USING gt_events[].
gs_variant-report = g_repid.
g_save = ‘A’.
PERFORM s200_get_wf_data.
************************************************************************
* E n d o f S e l e c t i o n *
************************************************************************
END-OF-SELECTION.
PERFORM s150_comment_build USING gt_list_top_of_page[].
w_callback_ucomm = ‘CALLBACK_UCOMM’.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = g_repid
i_callback_user_command = w_callback_ucomm
is_layout = gs_layout
it_fieldcat = fld_catalog
it_sort = gt_sort
i_save = g_save
is_variant = gs_variant
it_events = gt_events[]
is_print = gs_print
IMPORTING
e_exit_caused_by_caller = g_exit_caused_by_caller
es_exit_caused_by_user = gs_exit_caused_by_user
TABLES
t_outtab = itab_wl
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc = 0.
IF g_exit_caused_by_caller = ‘X’.
ELSE.
IF gs_exit_caused_by_user-back = ‘X’. “F3
ELSE.
IF gs_exit_caused_by_user-exit = ‘X’. “F15
ELSE.
IF gs_exit_caused_by_user-cancel = ‘X’. “F12
ELSE.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ELSE.
ENDIF.
************************************************************************
* F o r m s *
***********************************************************************
*&———————————————————————*
*& Form LAYOUT_INIT
*&———————————————————————*
FORM s100_layout_init USING rs_layout TYPE slis_layout_alv.
*”Build layout for list display
rs_layout-detail_popup = ‘X’.
rs_layout-zebra = “X”.
rs_layout-cell_merge = ‘X’.
rs_layout-colwidth_optimize = ‘X’.
rs_layout-no_min_linesize = space. “‘X’.
rs_layout-min_linesize = 120.
rs_layout-totals_text = ‘Grand total’.
rs_layout-subtotals_text = ‘Sub-total’.
*
gs_print-print = space.
gs_print-prnt_title = ‘X’.
gs_print-prnt_info = ‘ ‘.
gs_print-no_print_selinfos = ‘X ‘. ” display no selection infos
gs_print-no_coverpage(1) = space..
gs_print-no_print_listinfos = ‘X’. ” display no listinfos
ENDFORM. ” LAYOUT_INIT
*———————————————————————*
* FORM UPDATE_FIELD_CATALOG *
*———————————————————————*
* …….. *
*———————————————————————*
FORM s120_update_field_catalog.
wa_fld_catalog-col_pos = 10.
wa_fld_catalog-fieldname = ‘WI_ID’.
wa_fld_catalog-tabname = ‘ITAB_WL’.
wa_fld_catalog-seltext_l = ‘Workflow ID’.
wa_fld_catalog-hotspot = ‘X’.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = wa_fld_catalog-col_pos + 10.
wa_fld_catalog-fieldname = ‘WI_TEXT’.
wa_fld_catalog-tabname = ‘ITAB_WL’.
wa_fld_catalog-seltext_l = ‘Description’.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = wa_fld_catalog-col_pos + 10.
wa_fld_catalog-fieldname = ‘WI_CD’.
wa_fld_catalog-tabname = ‘ITAB_WL’.
wa_fld_catalog-seltext_l = ‘Create Date’.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = wa_fld_catalog-col_pos + 10.
wa_fld_catalog-fieldname = ‘WI_CT’.
wa_fld_catalog-tabname = ‘ITAB_WL’.
wa_fld_catalog-seltext_l = ‘Create Time’.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = wa_fld_catalog-col_pos + 10.
wa_fld_catalog-fieldname = ‘WI_AAGENT’.
wa_fld_catalog-tabname = ‘ITAB_WL’.
wa_fld_catalog-seltext_l = ‘Agent’.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = wa_fld_catalog-col_pos + 10.
wa_fld_catalog-fieldname = ‘WI_RH_TASK’.
wa_fld_catalog-tabname = ‘ITAB_WL’.
wa_fld_catalog-seltext_l = ‘Task’.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = wa_fld_catalog-col_pos + 10.
wa_fld_catalog-fieldname = ‘WI_FORW_BY’.
wa_fld_catalog-tabname = ‘ITAB_WL’.
wa_fld_catalog-seltext_l = ‘From’.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = wa_fld_catalog-col_pos + 10.
wa_fld_catalog-fieldname = ‘WI_STAT’.
wa_fld_catalog-tabname = ‘ITAB_WL’.
wa_fld_catalog-seltext_l = ‘Status’.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = wa_fld_catalog-col_pos + 10.
wa_fld_catalog-fieldname = ‘WI_AA_NAME’.
wa_fld_catalog-tabname = ‘ITAB_WL’.
wa_fld_catalog-seltext_l = ‘Agent Name’.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = wa_fld_catalog-col_pos + 10.
wa_fld_catalog-fieldname = ‘DEF_GUID’.
wa_fld_catalog-tabname = ‘ITAB_WL’.
wa_fld_catalog-seltext_l = ‘WF Task/GUID’.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
ENDFORM. ” UPDATE_FIELD_CATALOG
*&———————————————————————*
*& Form EVENTTAB_BUILD
*&———————————————————————*
FORM s140_eventtab_build USING rt_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION ‘REUSE_ALV_EVENTS_GET’
EXPORTING
i_list_type = 0
IMPORTING
et_events = rt_events.
READ TABLE rt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE g_top_of_page TO ls_event-form.
APPEND ls_event TO rt_events.
ENDIF.
ENDFORM. ” EVENTTAB_BUILD
*&———————————————————————*
*& Form COMMENT_BUILD
*&———————————————————————*
FORM s150_comment_build USING lt_top_of_page TYPE
slis_t_listheader.
DATA: ls_line TYPE slis_listheader,
ls_info TYPE slis_entry,
com1(4),
com2(4),
lv_jobd(20),
date1(10),
lv_date1(10),
lv_date2(10).
WRITE sy-datum TO date1.
CLEAR ls_line.
ls_line-typ = ‘H’.
CONCATENATE ‘ZW911’ text-100 date1 INTO ls_line-info
SEPARATED BY ‘ – ‘.
APPEND ls_line TO lt_top_of_page.
ls_line-typ = ‘S’.
CONCATENATE ‘System:’ sy-sysid ‘-‘ sy-mandt
INTO ls_line-info.
APPEND ls_line TO lt_top_of_page.
CONCATENATE ‘Inbox for: ‘ pv_uname
INTO ls_line-info.
APPEND ls_line TO lt_top_of_page.
ENDFORM. ” COMMENT_BUILD
*———————————————————————*
* FORM select_gr_data *
*———————————————————————*
* …….. *
*———————————————————————*
FORM s200_get_wf_data.
DATA: lv_return LIKE sy-subrc.
CALL FUNCTION ‘SAP_WAPI_CREATE_WORKLIST’
EXPORTING
user = pv_uname
IMPORTING
return_code = lv_return
TABLES
worklist = itab_wl.
ENDFORM. “s200_get_header_data
*———————————————————————*
* FORM callback_ucomm *
*———————————————————————*
FORM callback_ucomm USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA: p_wid LIKE swr_struct-workitemid
.
CASE rs_selfield-fieldname.
WHEN ‘WI_ID’.
MOVE rs_selfield-value TO p_wid.
CALL FUNCTION ‘SAP_WAPI_DISPLAY_WORKITEM’
EXPORTING
workitem_id = p_wid.
ENDCASE.
*
ENDFORM. “callback_ucomm
*———————————————————————*
* FORM top_of_page *
*———————————————————————*
FORM top_of_page.
CALL FUNCTION ‘REUSE_ALV_COMMENTARY_WRITE’
EXPORTING
i_logo = ‘ENJOYSAP_LOGO’
it_list_commentary = gt_list_top_of_page.
WRITE: AT 88 ‘Page:’, sy-pagno.
ENDFORM. “top_of_page
Workflow : Other Useful Links :
Org units in workflow steps?
‘No Administrator found’ workflow error
LIV & Payment Release workflow
Workflow performance tips
How can I temporarily disable a workflow in production?
Raising ABAP OO events for workflow