|
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
Related Items:
|