SAP ABAP BDC 的使用及代码详解

首先介绍一下BDC即Batch Data Conversion。由于某种原因,当我们需要大量并且重复的输入保存变更删除数据的操作,且没有对应的BAPI可以使用的时候,可以使用BDC的方式进行。
其原理是sap通过录屏的方式将业务操作记录下来,然后让计算机重复的进行操作。

一,录制业务操作

  1. 输入TCode:SHDB进入BDC录制初始界面
    在这里插入图片描述

  2. 单击工具栏 Newrecording 按钮创建一个新的BDC,系统将弹出Create Recording对话框,要求输入记录名称(此名称可以不用Y或Z开头来定义)和录制程序的事务码,本例以创建物料主数据MM01为例。
    在这里插入图片描述

  3. 单击Startrecording 按钮,程序直接跳转到事务码mm01下
    在这里插入图片描述

  4. 输入自定义的物料名和行业领域,物料类型后,按工具栏的继续按钮,系统将弹出Select View列表,要求选择物料主档中所维护的具体视图,我们选“基本数据1”,单击继续。
    在这里插入图片描述

  5. 进入物料信息维护界面,维护物料主档数据,我们这里选填了4项。

物料名称,基本计量单位,物料组及普通项目类别组。
在这里插入图片描述

  1. 完成后点保存,界面自动跳转到如下图界面,红色圈住的地方就是我们在录屏的过程中填入的值,接下来在程序中需要动态的进行修改。
    在这里插入图片描述

  2. 点保存后,点返回,如下图:
    在这里插入图片描述

  3. 点击工具栏按钮:Program,出现下图对话框,输入程序名称
    在这里插入图片描述

  4. 点继续,在下方的对话框中插入标题,然后点击 源代码
    在这里插入图片描述

  5. 输入开发类,本例是以STMP开发类。点击:本地对象
    在这里插入图片描述

  6. 界面转到abap编辑界面
    在这里插入图片描述

二,编辑生成代码

  1. 在第一阶段中生成的代码,在实际的应用中并不是所有都需要用到,下图中红色框圈出来的部分是我们需要用实际业务中的变量进行代替的。
    步骤大概如下:
    ①从数据库或本地文件中获取到需要进行操作的数据
    ②Loop循环需要操作的数据,每一条需要进行操作的数据需要进行一次BDC(构建BDC 数据 + Call Transaction)
    ③在SHDB中生成的代码,我们只需要留下黑色框中的代码(包括Form 中代码),并将原来录屏中输入的定值变更为loop内表中的值,整理后复制到自己需要用到BDC的程序中进行②操作即可。
    如下图所示:
    在这里插入图片描述
    像以下这样:
    在这里插入图片描述

三,代码含义讲解

 PERFORM bdc_dynpro USING 'SAPLMGMM' '0060' .
     --> 定位到当前屏幕SAPLMGMM程序的 0600 Screen
 
 PERFORM bdc_field USING 'BDC_CURSOR'  'RMMG1-MATNR' .
     -->将光标移动到RMMG1-MATNR输入框中

PERFORM bdc_field USING 'BDC_OKCODE'  '= ENTR' .
     -->输入完成后点击回车(= ENTR回车,此处为屏幕的okcode)

PERFORM bdc_field USING 'RMMG1-MATNR'  P_MATNR.
    -->在屏幕的RMMG1-MATNR输入框中 输入P_MATNR变量中的值
CALL TRANSACTION 'MM02'        (调用的事务码)
           USING gt_bdc_data  (创建好的BDC录屏数据)
   OPTIONGS FROM gs_opt       (调用选项)
    MESSAGE INTO lt_mes.       (成功与否的消息)

gs_opt type cutparams
-dismode (E:有错误是跳转前台、A:一直前台执行、N:均后台执行)
-updmode(A:异步、S: 同步、L:Local Update)
-racommit (后台遇到commit work代码时是否结束BDC ,赋值为X时不结束。此处在实际业务中经常碰到问题,注意此参数设置)
CALL FUNCTION 'CONERT_BDCMESGCALL_TO_BAPIRET2'
    TABLES 
        IMT_BDC_MESGCOLL = lt_mes
        EXT_RETURN  = lt_return
根据lt_return的值判断是否执行成功

四,BDC其他方式-异步模式

除了以上所说的方式还有创建BI SESSION 的方式进行
在SHDB中自动生成的代码有此段逻辑,大概总结如下

① Call ’BDC_OPEN_GROUP‘.(创建BI SESSION)

② LOOP 主数据
BDC数据创建 ->> Call ‘BDC_INSERT’
ENDLOOP.
③ Call BDC_CLOSE_GROUP.(关闭BI SESSION)

  • 20
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂的刘刘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值