BDC批量数据导入
BDC(Batch Data Communication),是SAP系统数据传输的主要技术之一,主要用于把数据大量大批输入到SAP系统。但是对速度又要求不高的数据传输。
BDC方法与ABAP编程的关系密切,因此相对于LSMW、CATT等其他数据传输方式,BDC方法更灵活。
BDC是模拟屏幕操作(与按键精灵相似),记录相关屏幕出现顺序和处理过程,产生数据录入的格式文件,通过调整数据文件后,再运行BDC产生ABAP程序,最后可能生成的ABAP程序进行修改,得到最终的数据录入代码片断。
BDC录屏操作步骤
1、SM35(包含SHDB)录屏操作
-
创建事务记录
输入事务码MB21,点击“开始记录”将会跳转到MB21维护界面
回车
最后保存
生成录屏记录
保存记录
-
生成程序
回车生成程序源代码
编辑服务器端上生成的测试数据文件
-
查看服务器上的测试文件
在SM35界面上,点击SHDB,在SHDB操作界面,打开文件监视器
SAP会为每个文件夹存放的路径定义一个“目录参数的名称”,如用户所创建的文件存放在SAP应用服务器的“DIR_SAPUSERS”下
双击进去就会看到创建的文件”MB21_FILE“
双击该文件,即可查看该文件的内容,内容就是上面录屏时界面上录入的数据
-
CG3Y—修改测试文件数据
修改好后,再通过CG3Z将文件上传到服务器上
执行录入程序
CG3Y、CG3Z文件每行字符超长问题
CG3Y DOWNLOAD服务器文件(如果是ASC模式下载,每行只能256个字符,解决方案是函数C13Z_FILE_DOWNLOAD_ASCII的L_DATA_TAB改为TYPE STRING)
CG3 ZUPLOAD本地文件到服务器中(如果是ASC模式上传,每行只能256个字符,解决方案是函数C13Z_FILE_UPLOAD_ASCII的L_DATA_TAB改为TYPE STRING)
不带测试数据文件
如果在生成代码时选择的是“从记录中传输”,则生成的代码非常简单,但较之上面需要修改很多才能使用:
生成程序代码
从本地读取测试数据文件
从前面生成的程序来看,引用了系统标准的Include程序bdcrecx1,这里可以将BDC处理的核心代码拷贝出来,如存放到一个自定义的Include文件zbdcrecx1中,自定义程序中不再考虑DataSet及BDC Group的方法,主要需要拷贝的内表定义包括BDCDATA、MESSTAB;需要拷贝的Form如下:
可以自定义程序执行表格数据通过BDC批量导入
DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE."用来存储屏幕字段参数值,传递录屏参数
DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE."记录执行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.
执行就会批量创建相应录屏数据。
CATT批量数据维护(SCAT、SCEM)
CATT 全称 Computer Aided Test Tool(计算机辅助测试工具),也是批量数据维护工具。与BDC类似的是,CATT的数据操作也是通过录制屏幕的方式来实现的,但是有自己的优势:
BDC导入本地数据需要通过辅助开发程序来实现,而CATT则可以直接读取本地文件;
BDC读取文件到内存后再进行处理,可以方便地通过ABAP代码来实现数据的检查或者转换,但是CATT则是比较直接的数据录入,相比之下,BDC的控制会更加灵活。
l CATT操作简单,可以由模块顾问录制好后再提供给用户直接使用,只需要用户按顾问提供的测试数据模板文件提供数据即可
若是基本的数据录入或修改的话,CATT实现起来会更加的简单
示例操作:
SCAT—创建
点击“保存”按钮后,再修改“类型”为“C CATT”类型(注:如果不先保存,直接选 C CATT 时会报错):
保存后,再输入SCEM事务码,操作界面与SCAT基本类似
进入MB21事务代码页面,直接操作录入保存后会回到SCEM界面
点击“结束并应用”按钮
双击屏幕字段值都进行如下调整
SCEM操作完后,保存所有,然后再回到SCAT界面,并执行“导出”,将会导出本地数据录入模板
导入的文件为Txt文件,可以使用Excel打开进行维护,新增的数据必须按文件中的位置来填写
测试文件修改好后,进入执行界面:
预留单就创建成功。