ABAP BDC批导模板

1.SHDB进行录屏

除了要输入的东西,不要进行其他操作

2.屏幕参数录入

DATA:   bdcdata LIKE bdcdata    OCCURS 0 WITH HEADER LINE.
DATA:   messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

* bdcdata-program:程序名
* bdcdata-dynpro:屏幕号
FORM bdc_dynpro USING program dynpro.
  CLEAR bdcdata.
  bdcdata-program  = program.
  bdcdata-dynpro   = dynpro.
  bdcdata-dynbegin = 'X'.
  APPEND bdcdata.
ENDFORM.

* bdcdata-fnam:字段名
* bdcdata-fval:字段值
FORM bdc_field USING fnam fval.
  CLEAR bdcdata.
  bdcdata-fnam = fnam.
  bdcdata-fval = fval.
  APPEND bdcdata.
ENDFORM.

3.执行BDC

PERFORM bdc_transaction USING 'ME11'.

FORM bdc_transaction USING tcode .
  DATA: l_mstring(480).
  DATA: l_subrc LIKE sy-subrc.
  DATA: lx_auth_check TYPE REF TO cx_root.
  DATA: l_auth_check_text TYPE string.
* batch input session
  REFRESH messtab.
  TRY.
      CALL TRANSACTION tcode WITH AUTHORITY-CHECK USING bdcdata
                       MODE   'N'
                       UPDATE 'A'
                       MESSAGES INTO messtab.
    CATCH cx_sy_authorization_error INTO lx_auth_check.
*     Authorization missing for user when executing transaction
      l_auth_check_text = lx_auth_check->get_text( ).
      sy-subrc = 99.
  ENDTRY.
  l_subrc = sy-subrc.

*  WRITE: / 'CALL_TRANSACTION',
*           tcode,
*           'returncode:'(i05),
*           l_subrc,
*           'RECORD:',
*           sy-index.
  COMMIT WORK AND WAIT .
*  WAIT UP TO 2 SECONDS.

  DELETE  messtab WHERE msgid = '06' AND msgnr = '657'.

  LOOP AT messtab WHERE msgtyp = 'S'.

    CALL FUNCTION 'MESSAGE_TEXT_BUILD'
      EXPORTING
        msgid               = messtab-msgid
        msgnr               = messtab-msgnr
        msgv1               = messtab-msgv1
        msgv2               = messtab-msgv2
        msgv3               = messtab-msgv3
        msgv4               = messtab-msgv4
      IMPORTING
        message_text_output = gs_result-msg.
    .

    IF messtab-msgnr = '310'
      OR messtab-msgnr = '312'
      OR messtab-msgnr = '331'
      OR messtab-msgnr = '335'
      OR messtab-msgnr = '336'
      OR messtab-msgnr = '718'
       .

      gs_result-infnr = messtab-msgv1.
    ENDIF.

    gs_result-iconid = icon_green_light.
  ENDLOOP.
  IF sy-subrc NE 0.
    LOOP AT messtab WHERE msgtyp = 'E' .

      CALL FUNCTION 'MESSAGE_TEXT_BUILD'
        EXPORTING
          msgid               = messtab-msgid
          msgnr               = messtab-msgnr
          msgv1               = messtab-msgv1
          msgv2               = messtab-msgv2
          msgv3               = messtab-msgv3
          msgv4               = messtab-msgv4
        IMPORTING
          message_text_output = gs_result-msg.
      .
      IF messtab-msgnr = '310'
        OR messtab-msgnr = '312'
        OR messtab-msgnr = '331'
        OR messtab-msgnr = '335'
        OR messtab-msgnr = '336'
        OR messtab-msgnr = '718'
         .

        gs_result-infnr = messtab-msgv1.
      ENDIF.

      gs_result-iconid = icon_red_light.
    ENDLOOP.
  ENDIF.

  REFRESH bdcdata.
ENDFORM.

猜你喜欢

转载自blog.csdn.net/wx774891/article/details/112461861
今日推荐