Scenario
I Chosen Spread Sheet, In this Blog
If You are Choosing Mail
A file will be sent along with body which written, I written HI
After Previewing of File
Code
TABLES: sscrfields.
TYPES : BEGIN OF ls_work_id,
cr_no TYPE usmd_crequest,
wi_id TYPE sww_wiid,
wi_crt TYPE XUBNAME,
wi_aagent TYPE sww_aagent,
wi_cd_ftd TYPE swr_cd_f,
wi_stat TYPE sww_wistat,
wi_forw_by TYPE sww_forwby,
END OF ls_work_id.
DATA : iv_cr_id TYPE usmd_crequest.
SELECT-OPTIONS: so_id FOR iv_cr_id.
**********************************************************************
*** Soon After Entering of CR Number - Pressing of enter will directly display O/P,
*** without any action on Execute Button
AT SELECTION-SCREEN.
IF sscrfields-ucomm EQ space.
sscrfields-ucomm = 'ONLI'.
ENDIF.
START-OF-SELECTION.
**********************************************************************
DATA :lt_wi_depd TYPE TABLE OF swr_wihdr,
ls_top_wdr TYPE swr_wihdr,
lt_stat TYPE swfartwista,
lt_data TYPE swr_struct-workitemid,
lt_work_id TYPE TABLE OF ls_work_id,
ls_work_id LIKE LINE OF lt_work_id,
lt_agent TYPE TABLE OF swragent,
ls_agent TYPE swragent,
lo_table TYPE REF TO cl_salv_table.
**********************************************************************
START-OF-SELECTION.
SELECT usmd_crequest,
top_wi_id
FROM usmd2400
INTO TABLE @DATA(lt_top_id)
WHERE usmd_crequest IN @so_id.
IF sy-subrc EQ 0 AND lt_top_id IS NOT INITIAL.
LOOP AT lt_top_id INTO DATA(ls_top_id).
REFRESH lt_wi_depd.
*to get dependent workitems
CALL FUNCTION 'SAP_WAPI_GET_DEPENDENT_WIS'
EXPORTING
workitem_id = ls_top_id-top_wi_id
status = lt_stat
TABLES
items = lt_wi_depd.
IF lt_wi_depd IS NOT INITIAL.
LOOP AT lt_wi_depd INTO DATA(ls_wi_ded) WHERE wi_stat = 'READY'.
CALL FUNCTION 'SAP_WAPI_WORKITEM_RECIPIENTS'
EXPORTING
workitem_id = ls_wi_ded-wi_id
TABLES
recipients = lt_agent.
ls_agent = lt_agent[ 1 ].
**********************************************************************
SELECT SINGLE USMD_CREATED_BY
FROM USMD120C INTO @data(lv_crt_by) WHERE usmd_crequest IN @so_id.
APPEND VALUE #( cr_no = ls_top_id-usmd_crequest
wi_id = ls_wi_ded-wi_id
wi_crt = lv_crt_by
wi_aagent = ls_agent-objid
wi_cd_ftd = ls_wi_ded-wi_cd_ftd
wi_stat = ls_wi_ded-wi_stat
wi_forw_by = ls_wi_ded-wi_forw_by ) TO lt_work_id.
ENDLOOP.
ENDIF.
ENDLOOP.
ELSE.
MESSAGE 'Enter valid CR Number' TYPE 'I' DISPLAY LIKE 'E'.
EXIT.
ENDIF.
**********************************************************************
* Exporting - Spread Sheet
DATA:
* global reference table for salv table
go_table TYPE REF TO cl_salv_table,
* Columns refernce table for salv table
go_columns TYPE REF TO cl_salv_columns_table,
* Functions list refernce table for salv table
go_functions TYPE REF TO cl_salv_functions_list,
* Error handling class for factory method
g_cx_salv_msg TYPE REF TO cx_salv_msg,
* Message to display error
gv_message TYPE string,
* Columns refernce table for salv table
go_cols TYPE REF TO cl_salv_columns,
* Columns list refernce table for salv table
gr_column TYPE REF TO cl_salv_column_list,
* Error handling class
g_cx_salv_not_found TYPE REF TO cx_salv_not_found,
lo_aggrs TYPE REF TO cl_salv_aggregations,
gr_layout TYPE REF TO cl_salv_layout,
key TYPE salv_s_layout_key,
lf_variant TYPE slis_vari,
gr_content TYPE REF TO cl_salv_form_element.
TRY.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = go_table
CHANGING
t_table = lt_work_id.
CATCH cx_salv_msg INTO g_cx_salv_msg.
IF g_cx_salv_msg IS NOT INITIAL.
gv_message = g_cx_salv_msg->if_message~get_longtext( ).
ENDIF.
ENDTRY.
go_cols = go_table->get_columns( ).
* Here setting all toorbar functions visible
go_functions = go_table->get_functions( ).
go_functions->set_all( abap_true ).
go_functions->set_view_lotus( abap_false ).
go_functions->set_view_excel( abap_false ).
* Here setting column width optimized
go_columns = go_table->get_columns( ).
go_columns->set_optimize( abap_true ).
go_table->display( ).
Thanks & Regards,