货铺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: TYPE ANY TABLE .
 FIELD-SYMBOLS: 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 .
   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 .
       IF  IS ASSIGNED AND sy-subrc = 0.
       ENDIF.
     CATCH cx_salv_bs_sc_runtime_info.
   ENDTRY.
   cl_salv_bs_runtime_info=>clear_all( ).
 










