SAPBDC精华教程.doc
9页BDC 技术介绍首先简单解释一下 BDC( Batch Data Conversion ):在SAP系统里,由于某种原因, 可能需要重复输入数据,(数据不同,但是操作是相同的,典型的情形就是切换系统的时候,旧系统的数据需要导入SAP,大致过程不外乎是这样:输入一个 t-code ,进入一个某个屏幕,然后输入一个值(有时还要加上一些附加的 checkbox 选项等),点执行或者确定按钮,进入另一个屏幕, 在某些字段输入值 (也可能是标注 checkbox 选中或者不选中)或者修改这些字段里的值然后按“ Eneter ” 最后按“ SAVE……,一条记录完成了,继续下一条,如此循环上面所述的情形,如果让一个“人”来做的话,可能是真是 受不了的但是对于计算机来说,就很简单了SAP通过一个特殊的程序(T-code:SHDB)把用户的一次业务操作的所有过程记录下来从用户输入 transaction code( 事务代码 ) ,点下“ StartRecording ”开始,对于用户的来说是一次普通的业务操作,但是 SAP却在记录:1. 光标放到哪个字段, (在程序中不用改变)2. 填入了什么值, (变量,循环中的 Internal Table某个字段)3. 点击了什么按钮(在程序中不用改变)本次操作的作为一个“代表”,是一个“模板”,告诉SAP系统以怎样的方式来执行程序,也就是用计算机的语言来描述如果手工操作的话应该是怎样的一个过程。
用BDC技术编程时,有以下几个步骤:1.把外部的数据源( Txt,Excel 等)用读进 internal table或者用 do enddo 循环2 .在循环里,把用 SHDB记录的步骤重复执行 N次,(N =Dialog 屏幕数量) 这时实际上并没行完成数据的入, 系统只是在“填表”,填一个叫做“ BDCData 的 Internal Table 填完 bdcdata 以后,用 call transaction ‘ XXXX' usingbdc 这个命令来真正的 commit动作或者 call function'BDC_INSERT'在建立一个sessio n并 把执行 的结果返回给 messtab 这个 Internal Table 现在假想一种情境,来做一个演示的 BDC程序由于业务上的需要,某公司打算将某些物料的描述都在后面加上指定的文本Group X所以需要修改已经存在的物料数据,用T-code :MM02,外部数据是TXT文本,记录有N条,如下:Material NO.Description6000-00001XXXXXXX(Group A)2098-00001fdfladsfladfl(Group B )2059-00009dfdsfreddfalfasfa(Group A)2003-00003 iadfdafdf,adfasf(Group D)F面是“录”操作的过程,在命令栏里输入 T-code : SHDB进入如下屏幕:Ti ii&n : 右❻』汀」即¥口 知"Ig n 科口◎汕 口I T* - T D FUJK T19B h-dilL"- £]』祇sslmt rtl«rt3,Mi fez- ze z^n±iDjrB^-cazilL£i[: 4= f inla :Ci'S^tcd. bp *声册fl圈Fr« ■> fl忌吩or尿旷;RMxdiag O^rvi^・ 口 Xw 】“cm “II*曲 COl ilLh^.±E«^tta
MM02是需要录的事务代 码按下“ Start Recording ”,就会进入“ Change Material这时,以下的操作对于用户来说是一次普通修改物料描述操作, 尽管系统在记录所有的操作输入一个物料后,点击“ Select View(s)假设我们只选“ Basic Data 1 ”和“ Basic Data 1然后点击绿色的小勾“ Enter ”Basic data 1 (| 国 Eagle data 2 〔 sales oig. 1 Sales1: sales or j-2 L EEMaterialeooo-ooooiautomatic replenishjwenl: materialHGeneral data我们在该物料后面添加一个“ Group A ” ,描述改为:然后点“ SAVE,保存这次修改现在SAP回到了 SHDB先点“ SAVE,保存 Recordi ng :Ztest, 然后点” Back”,返回SHDB勺第一屏选中“ Ztest ” ,然后点击“ Program”,由SAP自动生成一个程序在上面的对话框中输入程序的名字(注意 SAP的命名规范,Y或者Z开头),确认输入再输入一些程序的属性信息如下:点击“ Source Code ” ,指定“ Develop Class ”等后,就可以进入ABAP Editor,产生如下代码:report ZBDCTESTno sta ndard page head ing lin e-size 255.in clude bdcrecx1.parameters: dataset(132) lower case.*** DO NOT CHANGE - the gen erated data section - DONOT CHANGE ***# / 42。





