货铺QQ群号:834508274
申请时请提供您哪个模块顾问,否则是一律不通过的。
进群统一修改群名片,例如BJ_ABAP_森林木。群内禁止发广告及其他一切无关链接,小程序等,进群看公告,谢谢配合
不修改昵称会被不定期踢除,谢谢配合!
有时候是需要获取其他程序的结果,可以考虑把某个程序的主要逻辑封装成function,也可以考虑在某个地方submit下这个程序。
因为submit return,没有输出接口。
所以需要从内存中获取。
下面是个简单的demo:
先建一个program,根据carrid 获取spfli数据。
REPORT zlm_spfli.
TABLES:spfli.
DATA:lt_spfli TYPE TABLE OF spfli.
SELECT-OPTIONS s_carrid FOR spfli-carrid.
START-OF-SELECTION.
SELECT * FROM spfli INTO TABLE lt_spfli
WHERE carrid IN s_carrid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_structure_name = 'SPFLI'
TABLES
t_outtab = lt_spfli
EXCEPTIONS
program_error = 1.
现在另外一个程序来submit这个程序,然后获取alv的值
*&---------------------------------------------------------------------*
*& Report ZLM_GET_ALV_DATA
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zlm_get_alv_data.
TABLES spfli.
RANGES s_carrid FOR spfli-carrid.
DATA:lr_alv_data TYPE REF TO data.
FIELD-SYMBOLS:<lt_alv_data> TYPE ANY TABLE .
FIELD-SYMBOLS:<lt_data> TYPE any.
START-OF-SELECTION.
s_carrid[] = VALUE #( ( sign = 'I' option = 'EQ' low = 'LH'
high = '' ) ).
cl_salv_bs_runtime_info=>set(
EXPORTING
display = abap_false
metadata = abap_false
data = abap_true ).
CLEAR lr_alv_data.
UNASSIGN <lt_alv_data>.
SUBMIT zlm_spfli
WITH s_carrid IN s_carrid
AND RETURN.
TRY.
cl_salv_bs_runtime_info=>get_data_ref(
IMPORTING
r_data = lr_alv_data ).
ASSIGN lr_alv_data->* TO <lt_alv_data>.
IF <lt_alv_data> IS ASSIGNED AND sy-subrc = 0.
ENDIF.
CATCH cx_salv_bs_sc_runtime_info.
ENDTRY.
cl_salv_bs_runtime_info=>clear_all( ).
debug看下
有时候需要调用标准tcode对应的结果,自己去鼓捣吧。敲一遍就知道了。