当前位置 博文首页 > 少年休闲海:【ABAP】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