当前位置:文档之家› SAP数据批量导入的常用方法

SAP数据批量导入的常用方法

SAP数据批量导入的常用方法:在SAP项目实施时主要有三种批量导入方法:第一种:LSMW-----Legacy System Migration Workbench.(遗留系统迁移工作台)The LSM Workbench is an R/3 based tool that support when transferring data from non-SAP systems to SAP R/3.T-code: LSMW第二种:CATT(计算机辅助测试工具)CATT(computer aided test tool) screen record, system will not create program.T-code: SCAT第三种:BDC(批导入数据)For batch input or change, system will create program, and you can change the program.T-code: SHDB一、C ATT操作具体方式如下:1大致过程1.1 录制CATTSCAT—>TCD,输入事务码—>按前台操作方式操作一遍,在需要输入的地方输入相关内容,直至存盘退出;1.2 定义相关需输入字段的名字(更改记录,把数值变化的字段做成“变量”,保存记录)在SCAT中选中所保存的CATT,点击修改,双击TCD,双击相关条目,双击相关屏幕的字段进行定义,在此过程中对于不需要的屏幕可以跳过,对于需确认的屏幕可以插入OK code,最后保存,CATT定义即告完成1.3 导出格式文件:在SCAT中,选中所保存的CATT,执行菜单“转到—>变式—>输出缺省”,系统会导出一个TXT格式的文件;1.4 填写数据到该TXT文件用Excel导出上面导出的文件,在第五行以后的相应列逐行输入每行记录的相关内容(Excel的复制类操作不用讲了),对于内容一样的部分可以不输,以默认值的形式(在录制定义CATT时输入或执行CATT时输入),数据输入完成后,将该文件仍保存为txt 格式;1.5 执行CATT:在SCAT中,执行所保存的CATT,日志格式及处理方式按需选择,变式选择自文件外部,选择相应的文件,如有必要,在下面的相关字段可以输入缺省值,执行即可。

2 操作截图2.1 录制CATT,在此以MM02为例。

点击上图中的“TCD”,会出现以下界面,输入要录制的TCODE,在此以MM02为例。

以下进入MM02的操作界面,按照正常步骤走即可。

假定要完成修改“MRP类型”和“序号参数文件”的操作记录。

将“MRP类型”修改为“ND”将“序列号参数文件”修改为“Z001”修改完毕后,点击“保存”,出现以下界面:在上个界面中点击“结束记录”,进入下面的界面在上述界面中点击“保存”在此仅为事例,保存到本地,实际中可根据自己需要选择保存位置。

2.2 更改记录选中刚才保存的测试情况,点击“修改”,如图所示:进入到修改界面之后,双击TCD,即可修改记录的详细步骤,如图所示:选择屏幕编号,双击进去:将某些字段做成变量,例如“物料”等,实际可根据需要设置设置成变量之后,界面上相应的字段输入出会变成灰色,如图:同理,设置其他需要设置为变量的字段。

比如此例中“工厂”、“库存地”等。

然后点击保存即可。

注意:有时记录操作完成后,会记录一些不必要的屏幕或者操作,这些不必要的操作有时会影响正常运行,所以需要将这些记录删除。

2.3 输出缺省值按照如下图路径操作:将缺省值文件保存到本地,在此以放在桌面为例。

2.4 准备批输入文件。

在一个EXCEL文档中打开刚才保存到本地的TXT文件,将数据按照特定格式输入,并保存。

2.5 执行CATT注意:三种“处理方式”的差别:前台,逐个数据需要你确认,你可能需要不断点击鼠标或按回车,但较直观,不易出错;后台,自动逐条执行,跳过出错条目,出错条目在日志中会体现;错误:自动逐条执行,在出错时暂停,等待确认,建议使用此种方式。

“变式”一般都会选择“自文件外部”点击“选择”,选择刚才编辑完保存的txt文件即可。

执行完之后,会出现日志,可以查看输入参数。

3注意事项在录制记录的过程中不能出现错误类型的系统消息,否则需要重新录制用于录制记录的这条数据已经进入系统,批导入的时候应该从文件中删除,否则报错。

CATT不支持长文本CATT不支持鼠标翻页,录制记录时,若要翻页,要使用键盘。

执行CATT时最好先在文本中准备一条数据,运行,测试结果是否正确。

二、BDC导入Batch Input是一种数据批量输入SAP系统的辅助程序,SAP系统的资料、格式可以通过Batch Input录入SAP系统Batch Input的机制是模拟事务处理将数据录入R/3系统。

Batch Input 类似SAP的CATT,控制性更好,处理能力更强1、首先我们需要把需要批导入事务的操作步骤记录下来,可以用T-CODE“SHDB”来记录。

在COMMAND LINE中输入“SHDB”。

2、进入TRANSACTION RECORDER界面3、点“NEW RECORDER”创建一个记录,现在以修改订单为例,键入记录名“ZAMAO”,输入事务代码“VA02”,然后“START RECORDING”。

6、现在来增加一下订单的PO DATE。

7、填入“2006.10.01”,点“保存”。

8、这样就完成了一个最最简单的BDC录取工作,录完之后会出现系统运行的操作的跟踪,包括程序号,屏幕号,字段名,值等等,下面的任务是根据这些写到程序里面以完成SAP 自动跑订单修改的这一动作。

* BDC tableDATA: t_bdc LIKE bdcdata OCCURS 0 WITH HEADER LINE,t_bdcmsg LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.DATA: BEGIN OF t_log OCCURS 0,information(289) TYPE c, "END OF t_log.DATA: v_mode TYPE c VALUE 'N'.其中TABLE t_bdc中记录的具体的操作步骤,而TABLE t_bdcmsg是记录系统返回的信息,成功与否都记录到自定义的信息表t_log中。

FORM.fm_set_bdc TABLES t_bdc STRUCTURE bdcdataUSING u_sign TYPE cu_par1u_par2.CLEAR: t_bdc.IF u_sign = 'X'.t_bdc-program = u_par1.t_bdc-dynpro = u_par2.t_bdc-dynbegin = u_sign.ELSE.t_bdc-fnam = u_par1.t_bdc-fval = u_par2.ENDIF.APPEND t_bdc.ENDFORM.PERFORM. fm_set_bdc:TABLES t_bdc USING 'X' 'SAPMV45A' '0102',TABLESt_bdc USING ' ' 'BDC_OKCODE' '/00',TABLES t_bdc USING ' ' 'VBAK-VBELN' it_display-vbeln,TABLES t_bdc USING 'X' 'SAPMV45A' '4001',TABLES t_bdc USING ' ' ' VBKD-BSTDK' '2006.10.01'.因为此处是修改操作,所以要切记写入的只是你修改的数据,千万别把订单本来的数据也写入t_bdc,如果写入则会把需要修改的所有订单都该成举例的订单的数据,而我们需要修改的仅仅是增加一个PO DATE“2006.10.01”。

然后是调用事物代码:CALL TRANSACTION 'VA42'USING t_bdcMODE v_mode "Background performanceUPDATE 'S' "local updataMESSAGES INTO t_bdcmsg. "all message table最后是收集系统信息(成功与否,要是失败,失败的原因)并输出到SAP程序屏幕READ TABLE t_bdcmsg WITH KEY msgtyp = 'S'msgid = 'V1'msgnr = '311'. "批导入成功的标志,可以自己debug表t_bdcmsg中去找.IF sy-subrc EQ 0.CONCATENATE '订单号码:'it_display-vbeln',项目号:'it_display-posnr'修改成功' INTO t_log.APPEND t_log.CLEAR t_log.ELSE.LOOP AT t_bdcmsg.IF t_bdcmsg-msgtyp = 'E'OR t_bdcmsg-msgv1 <> ''OR t_bdcmsg-msgv2 <> ''OR t_bdcmsg-msgv3 <> ''OR t_bdcmsg-msgv4 <> ''.MESSAGE ID t_bdcmsg-msgid“收集错误信息,并写入自定义的表t_log中。

TYPE 'S'NUMBER t_bdcmsg-msgnrWITH t_bdcmsg-msgv1t_bdcmsg-msgv2t_bdcmsg-msgv3t_bdcmsg-msgv4INTO t_log-information.CONCATENATE '订单号码:'it_display-vbeln',项目号:'it_display-posnr'出错:'t_log-informationINTO t_log-information.APPEND t_log.CLEAR t_log.ENDIF.ENDLOOP.ENDIF.LOOP AT t_log. "显示出错信息WRITE:/t_log-information.ENDLOOP.三、LSMW导入可来源于教学教学网:。

相关主题