SAP 录屏 BDC

事物代码:SHDB

点击开始记录,开始进行录屏操作。

 

选中该条记录,生成程序。

根据生成的代码,进行整理的时候,可以调用系统封装过的函数,也可以自己进行归纳,抽离代码。

*&---BDC录屏返回消息
DATA i_messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

DATA:bdcdata LIKE bdcdata    OCCURS 0 WITH HEADER LINE.


LOOP AT gt_burks INTO gw_burks.

*&===BOM BDC处理
*&---打开BDC
    CALL FUNCTION 'BDC_OPEN_GROUP'
      EXPORTING
        client = sy-mandt
        group  = gv_group
        user   = sy-uname.
    IF sy-subrc <> 0.
    ENDIF.

    CLEAR:bdcdata[].

    REFRESH i_messtab.

    PERFORM bdc_dynpro      USING 'SAPMM03Y' '0100'.
    PERFORM bdc_field       USING 'BDC_CURSOR'            "记录光标的位置
                                  'MARV-BUKRS'.
    PERFORM bdc_field       USING 'BDC_OKCODE'            "记录动作
                                  '/00'.
    PERFORM bdc_field       USING 'MARV-BUKRS'            "记录屏幕输入的字段
                                  gw_burks-bukrs_001.
    PERFORM bdc_dynpro      USING 'SAPMM03Y' '0110'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'MARV-XRUEM'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=BU'.
    PERFORM bdc_field       USING 'MARV-XRUEM'
                                  gw_burks-xruem_002.

*&---调用BDC事务
    CALL TRANSACTION 'MMRV' USING bdcdata
                     MODE   'N'
                     UPDATE 'S'
                     MESSAGES INTO i_messtab.

*&---错误消息处理
    DATA:e_mess(50).
    CLEAR:e_mess.
*    LOOP AT i_messtab WHERE msgtyp = 'E' OR msgtyp = 'A'.
    LOOP AT i_messtab .
      CALL FUNCTION 'MESSAGE_TEXT_BUILD'
        EXPORTING
          msgid               = i_messtab-msgid
          msgnr               = i_messtab-msgnr
          msgv1               = i_messtab-msgv1
          msgv2               = i_messtab-msgv2
          msgv3               = i_messtab-msgv3
          msgv4               = i_messtab-msgv4
        IMPORTING
          message_text_output = e_mess.
      MESSAGE e_mess TYPE 'S'.

      gw_burks-bz = e_mess.

    ENDLOOP.
*关闭BDC
    CALL FUNCTION 'BDC_CLOSE_GROUP'.
    IF sy-subrc <> 0.
    ENDIF.

    MODIFY gt_burks FROM gw_burks.

  ENDLOOP.




*用到的两个系统的BDC函数
*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
  CLEAR bdcdata.
  bdcdata-program  = program.
  bdcdata-dynpro   = dynpro.
  bdcdata-dynbegin = 'X'.
  APPEND bdcdata.
ENDFORM.

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
  CLEAR bdcdata.
  bdcdata-fnam = fnam.
  bdcdata-fval = fval.
  APPEND bdcdata.
ENDFORM.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值