標準程式是用FM TPM_TRL_FLOW_PROTOCOL直接跑出來的,在客製報表是很有用的
只是這支FM執行時會直接跑出畫面,不是回傳table,所以必須修改:
1 建立一個function group,globe data就直接貼上LTPM_TRL_PROTOCOLSTOP裡面的程式碼
2 複製function module PM_TRL_FLOW_PROTOCOL到ZTPM_TRL_FLOW_PROTOCOL,並指定步驟1的function group
3
在import的地方新增一個參數IM_EXPORT TYPE CHAR1
在table的地方新增一個參數EX_FLOWDATA TYPE TRLY_FLOW_ALV
4
刪除原程式碼:
* *** call ALV
PERFORM display_flows.
新增新程式碼:
PERFORM display_flows.
新增新程式碼:
if im_export = 'X'.
ex_flowdata[] = g_tab_selected_flowdata[].
clear g_refresh.
else.
perform display_flows.
endif.
ex_flowdata[] = g_tab_selected_flowdata[].
clear g_refresh.
else.
perform display_flows.
endif.
5 應用時記得做以下處理(回傳table是L_FLOWDATA):
* Read TRD transactions
PERFORM ENRICH_WITH_TRD(SAPLZTPM_TRL_PROTOCOLS)
CHANGING L_FLOWDATA.
PERFORM ENRICH_WITH_TRD(SAPLZTPM_TRL_PROTOCOLS)
CHANGING L_FLOWDATA.
只是這支FM執行時會直接跑出畫面,不是回傳table--->
回覆刪除傳入
im_display_flows = ''
im_delete_flows = ''
就可以傳回TABLE了