当前位置 博文首页 > 少年休闲海:【ABAP】SUBMIT程序相互调用

    少年休闲海:【ABAP】SUBMIT程序相互调用

    作者:[db:作者] 时间:2021-09-14 13:33

    SUBMIT程序相互调用

    方式1:

    调用其他程序并传递选择条件参数

    ??submit?z_pro_007? ?with?s_vbeln??in?s_vbeln
    ??????????????????????with?s_kunnr??in?s_kunnr
    ??????????????????????with?p_submit?eq?abap_on
    ??????????????????????and?return.

    接收其他程序中的结果内表

    ??import?gt_itab?from?memory?id?'ZP007'.
    ??free?memory?id?'ZP007'.

    在调用程序中需要传递结果内表

    data: gt_itab like table of gt_list with?header?line.
    
    free?memory?id?'ZP007'.
    ????clear:?gt_itab,?gt_itab[].
    ????gt_itab[]?=?gt_list[].
    ????export?gt_itab?to?memory?id?'ZP007'.

    方式2:

    直接通过调用程序获取结果内表

    data?:?ls_data?type?ref?to?data.
    ??field-symbols?:<lt_data>?type?table,
    ??????????????????<l_data>??type?data.
    ??cl_salv_bs_runtime_info=>set(
    ????????????????????????????display?=?abap_false
    ????????????????????????????metadata?=?abap_false
    ????????????????????????????data?=?abap_true?).
    
    ??submit?z_pro_007? ?with?s_vbeln??in?s_vbeln
    ??????????????????????with?s_kunnr??in?s_kunnr
    ??????????????????????with?p_submit?eq?abap_on
    ??????????????????????and?return.
    
    ??try.
    ??????cl_salv_bs_runtime_info=>get_data_ref(
    ??????importing?r_data?=?ls_data?).
    ??????assign?ls_data->*?to?<lt_data>.
    ????catch?cx_salv_bs_sc_runtime_info.
    ??????message?'Unable?To?Retrieve?ALV?Data!'??type?'E'.
    ??endtry.
    
    ??cl_salv_bs_runtime_info=>clear_all(?).
    
    ??if?not?<lt_data>?is?assigned.
    ??else.
    ????loop?at?<lt_data>?assigning?<l_data>.
    ??????move-corresponding?<l_data>?to?gt_itab.
    ??????append?gt_itab.
    ????endloop.
    ??endif.

    cs