调用标注程序运行结果(两种方法BDC和Submit)

发布时间 2023-12-14 11:13:42作者: YangMercy
DATA bdcdata LIKE bdcdata    OCCURS 0 WITH HEADER LINE.
DATA messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.



SELECT-OPTIONS: s_bukrs FOR anla-bukrs DEFAULT '5700',
                s_anlkl FOR anla-anlkl DEFAULT 'Z411'.


FIELD-SYMBOLS: <lt_data> TYPE STANDARD TABLE.
DATA ls_data TYPE REF TO data.

CALL METHOD cl_salv_bs_runtime_info=>set
  EXPORTING
    display  = abap_false
    metadata = abap_false
    data     = abap_true.

*AR01
*方式1 用Submit调用 选择屏幕字段可以在标准屏幕F1或者/H查找
SUBMIT rabest_alv01
 WITH bukrs IN s_bukrs
 WITH so_anlkl IN s_anlkl
 WITH berdatum = '20231031'
 WITH bereich1 = '01'
 WITH srtvr    = '0001'
 WITH xeinzel  = 'X'
 WITH p_grid   = 'X'
AND RETURN .


*方式2 用BDC调用替代Submit
*PERFORM bdc_dynpro      USING 'RABEST_ALV01' '1000'.
*PERFORM bdc_field       USING 'BDC_CURSOR'
*                              'P_GRID'.
*PERFORM bdc_field       USING 'BDC_OKCODE'
*                              '=ONLI'.
*PERFORM bdc_field       USING 'BUKRS-LOW'
*                              '5700'.
*PERFORM bdc_field       USING 'SO_ANLKL-LOW'
*                              'Z411'.
*PERFORM bdc_field       USING 'BERDATUM'
*                              '20231031'.
*PERFORM bdc_field       USING 'BEREICH1'
*                              '01'.
*PERFORM bdc_field       USING 'SRTVR'
*                              '0001'.
*PERFORM bdc_field       USING 'XEINZEL'
*                              'X'.
*PERFORM bdc_field       USING 'P_GRID'
*                              'X'.
*
*
*CALL TRANSACTION 'AR01' USING bdcdata
*                        MODE 'N'
*                        UPDATE 'S'
*                        MESSAGES INTO messtab.
*
*

TRY.
    CALL METHOD 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 '没有满足条件的数据' TYPE 'E'.
ENDTRY.


cl_salv_bs_runtime_info=>clear_all( ).