ABAP 最好用BDC模板

一、BDC
使用SHDB录制之后,要把操作步骤写入程序里面去,每次都觉好麻烦,都不晓得怎么写。看别人都是用performs 一点点写进去。但是我觉得方法不直观,所以找到更加直观的方法。
在这里插入图片描述
只要一一对应填写进去就好了,非常好用。

二、源代码

  DATA bdcdata TYPE bdcdata OCCURS 0.
  DATA   l_bdcmsg  LIKE      bdcmsgcoll OCCURS 0  WITH HEADER LINE.
  DATA:zmes TYPE string.

  LOOP AT gt_alv ASSIGNING FIELD-SYMBOL(<ls_alv>) WHERE cbox = 'X'.
    bdcdata = VALUE #(
                  (  program = 'SAPLCOKO1'    dynpro = '0110'  dynbegin = 'X' fnam = ''            fval = ''  )
                  (  program = ''            dynpro = ''      dynbegin = ''  fnam = 'BDC_OKCODE'  fval = '=ENTK'  )
                  (  program = ''            dynpro = ''      dynbegin = ''  fnam = 'CAUFVD-AUFNR' fval = <ls_alv>-AUFNR  )
                  (  program = ''            dynpro = ''      dynbegin = ''  fnam = 'R62CLORD-FLG_OVIEW' fval = 'X'  )


                  (  program = 'SAPLCOKO1'    dynpro = '0115'  dynbegin = 'X'  fnam = ''            fval = ''  )
                  (  program = ''            dynpro = ''      dynbegin = ''  fnam = 'BDC_OKCODE'   fval = '=KOBK'  )

                  (  program = 'SAPLKOBS'    dynpro = '0130'  dynbegin = 'X' fnam = ''            fval = ''  )
                   (  program = ''            dynpro = ''      dynbegin = ''  fnam = 'BDC_CURSOR'  fval = 'DKOBR-EMPGE(02)'  )
                  (  program = ''            dynpro = ''      dynbegin = ''  fnam = 'BDC_OKCODE'  fval = '=DETA'  )

                  (  program = 'SAPLKOBS'    dynpro = '0100'  dynbegin = 'X' fnam = ''            fval = ''  )
                  (  program = ''            dynpro = ''      dynbegin = ''  fnam = 'BDC_OKCODE'  fval = '/00'  )

                  (  program = 'SAPLKOBS'    dynpro = '0100'  dynbegin = 'X' fnam = ''            fval = ''  )
                  (  program = ''            dynpro = ''      dynbegin = ''  fnam = 'BDC_OKCODE'  fval = '=BACK'  )

                  (  program = 'SAPLKOBS'    dynpro = '0130'  dynbegin = 'X' fnam = ''            fval = ''  )
                  (  program = ''            dynpro = ''      dynbegin = ''  fnam = 'BDC_OKCODE'  fval = '=BACK'  )

                   (  program = 'SAPMSSY0'    dynpro = '0120'  dynbegin = 'X' fnam = ''            fval = ''  )
                  (  program = ''            dynpro = ''      dynbegin = ''  fnam = 'BDC_OKCODE'  fval = '=&ONT'  )

                  (  program = 'SAPLCOKO1'    dynpro = '0115'  dynbegin = 'X' fnam = ''            fval = ''  )
                  (  program = ''            dynpro = ''      dynbegin = ''  fnam = 'BDC_OKCODE'  fval = '=BU'  )

                  ).
    CALL TRANSACTION 'CO02' USING bdcdata MODE 'N' MESSAGES INTO l_bdcmsg.
    WAIT UP TO '0.02' SECONDS.
    IF  l_bdcmsg[]  IS INITIAL .
      <ls_alv>-icons = icon_green_light .
      <ls_alv>-mes =  '操作成功'.
    ELSE.

      LOOP  AT     l_bdcmsg.
        CALL FUNCTION 'MESSAGE_TEXT_BUILD'
          EXPORTING
            msgid               = l_bdcmsg-msgid
            msgnr               = l_bdcmsg-msgnr
            msgv1               = l_bdcmsg-msgv1
            msgv2               = l_bdcmsg-msgv2
            msgv3               = l_bdcmsg-msgv3
            msgv4               = l_bdcmsg-msgv4
          IMPORTING
            message_text_output = zmes.
      ENDLOOP.
     " <ls_alv>-icons = icon_red_light .
      <ls_alv>-mes =  zmes.
      CLEAR:zmes.
    ENDIF.
ENDLOOP.
CLEAR:l_bdcmsg,l_bdcmsg[].

三、注意点
BDC_SUBSCR ,表示鼠标停留经过的意思。有时候可以忽略不写。
BDC_CURSOR,表示鼠标点击
BDC_OKCODE,表示回车以及一些操作,这个非常重要
在这里插入图片描述
分享使我快乐,我是寒武青锋。
在这里插入图片描述
记得点赞哈。


版权声明:本文为lmf496891416原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。