SAP BDC数据导入简介
- 格式:pdf
- 大小:4.73 MB
- 文档页数:9
MSN:ZHANGQIAO243@QQ:183083099导入教程BDC导入教程BDC(Batch Data Conversion):在SAP系统里,由于某种原因,可能需要重复输入数据,(数据不同,但是操作是相同的,典型的情形就是切换系统的时候,旧系统的数据需要导入SAP),大致过程不外乎是这样: 输入一个t-code,进入一个某个屏幕,然后输入一个值(有时还要加上一些附加的checkbox选项等),点执行或者确定按钮,进入另一个屏幕,在某些字段输入值(也可能是标注checkbox选中或者不选中)或者修改这些字段里的值。
然后按“Eneter”……最后按“SAVE”……,一条记录完成了,继续下一条,如此循环。
上面所述的情形,如果让一个“人”来做的话,可能是真是受不了的。
但是对于计算机来说,就很简单了。
SAP通过一个特殊的程序(T-code:SHDB)把用户的一次业务操作的所有过程记录下来。
下面介绍一个简单的BDC导入过程首先在CJ20N中创建项目MSN:ZHANGQIAO243@QQ:183083099新建项目TEST23MSN:ZHANGQIAO243@QQ:183083099MSN:ZHANGQIAO243@QQ:183083099创建WBS,TEST2311,TEST2312,TEST2313选中项目定义,点击编辑-状态-下达,如果不下达会导致后面无法挂接物料MSN:ZHANGQIAO243@QQ:183083099下达后点击保存输入T-CODE:SHDB,进入如下界面MSN:ZHANGQIAO243@QQ:183083099点击,出现如下界面,输入录制的名称和录制的事物代码:CN21MSN:ZHANGQIAO243@QQ:183083099点击进行录制,自动跳转到CN21的界面MSN:ZHANGQIAO243@QQ:183083099输入网络参数文件,网络类型,工厂,MRP控制者后回车进入如下界面MSN:ZHANGQIAO243@QQ:183083099输入需要挂接物料的WBS元素后回车点击,进入如下界面MSN:ZHANGQIAO243@QQ:183083099作业说明中输入变压器采购,回车,然后选中此行项目MSN:ZHANGQIAO243@QQ:183083099点击最下方的,进行物料挂接输入物料号,需求数量MSN:ZHANGQIAO243@QQ:183083099完成后回车MSN:ZHANGQIAO243@QQ:183083099点击确认,进入如下界面MSN:ZHANGQIAO243@QQ:183083099录制的程序就会显示,点击进行导出,存为TXT文件MSN:ZHANGQIAO243@QQ:183083099再点击保存返回到最初的界面MSN:ZHANGQIAO243@QQ:183083099新建EXCEL CN21.XLS,输入你需要导入的数据和名称MSN:ZHANGQIAO243@QQ:183083099将先前存储的TXT用WORD打开选择工具-信函与邮件-邮件合并MSN:ZHANGQIAO243@QQ:183083099点击右键合并的下一步直到第三步MSN:ZHANGQIAO243@QQ:183083099点击浏览导入先前建立的EXCEL文件(就是选择导入的数据源),出现如下图MSN:ZHANGQIAO243@QQ:183083099点击确定点击确定在工具栏点击鼠标右键将邮件合并工具栏显示MSN:ZHANGQIAO243@QQ:183083099从打开的WORD中选择需要替换的字段,这个就需要对字段比较熟悉,知道哪些是需要输入的(可以通过F1帮助查看字段信息,确认需替换的字段的名称)。
在SAP项目实施时主要有三种批量导入方法:LSMW,CATT,BDC第一种:LSMW-----Legacy System Migration Workbench.The LSM Workbench is an R/3 based tool that support whe n transferring data from non-SAP systems to SAP R/3.T-code: LSMW第二种: CATTCATT(computer aided test tool) screen record, s ystem will not create program.T-code: SCAT第三种: BDCFor batch input or change, system will create program, and you can change the program.T-code: SHDBBDC导入Batch Input是一种数据批量输入SAP系统的辅助程序,SAP系统的资料、格式可以通过Batch Inpu t录入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”。
4、下面的任务就是记录下修改订单的操作步骤。
5、填入订单号码,按确定6、现在来增加一下订单的PO DATE。
7、填入“,点“保存”。
8、这样就完成了一个最最简单的BDC录取工作,录完之后会出现系统运行的操作的跟踪,包括程序号,屏幕号,字段名,值等等,下面的任务是根据这些写到程序里面以完成SAP自动跑订单修改的这一动作。
SAPABAPBDC的使用及代码详解
一、SAPABAP和BDC简介
SAP ABAP(Advanced Business Application Programming)是SAP公司开发的一种强大的应用程序开发语言,支持SAP应用程序的开发。
它也是基于关系数据库的4GL语言,主要用于处理事务处理(OLTP),报表和屏幕编程等复杂的应用程序。
批处理数据转换(BDC)是SAP R/3系统中一种通用的数据转换方式。
在运行低效的封闭过程时,可以使用BDC方式来进行数据转换,以减少时间和成本。
二、ABAP语言特征
1、支持循环:ABAP支持多种形式的循环,包括Do -while循环,for循环,while循环,if - elseif - else,case等等,能够很好地满足程序开发的需要。
2、支持函数库:ABAP有许多内置函数,可以帮助开发者更方便地完成程序的开发,如字符串处理,数学计算,日期函数等等。
3、强大的对象模型:ABAP支持基于对象的编程,可以在ABAP中实现面向对象编程,使程序的执行更加安全、高效。
4、支持流程图:ABAP中的流程图语言可以极大地简化编程的难度,使程序更加规范,也更容易阅读、理解和扩展。
三、BDC的原理及程序实现
1、BDC原理:BDC使用了事务处理系统(TPS)的原理,它以一系列交互式程序的形式将外围系统的数据输入系统中,而BDC通过将数据转换成系统可接受的形式,将数据导入系统中。
BDC(Batch Data Conversion)在SAP系统里,重复输入数据时,(数据不同,但是操作是相同的,典型的情形就是主数据导入),大致过程不外乎是这样:输入一个t-code,进入一个某个屏幕,然后输入一个值(有时还要加上一些附加的checkbox选项等),点执行或者确定按钮,进入另一个屏幕,在某些字段输入值(也可能是标注checkbox选中或者不选中)或者修改这些字段里的值。
然后按“Eneter”……最后按“SAVE”……,一条记录完成了,继续下一条,如此循环。
如果数据量非常大的话,让一个“人”来做的话,可能是真是受不了的。
但是对于计算机来说,就很简单了。
SAP通过一个特殊的程序(T-code:SHDB)把用户的一次业务操作的所有过程记录下来。
从用户输入transaction code(事务代码),点下“Start Recording”开始,对于用户的来说是一次普通的业务操作,但是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’ using bdc……这个命令来真正的commit动作或者call function 'BDC_Insert'在建立一个session。
SAP BDC批量導入數據EvansBatch Input(批導入)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‛。
4、下面的任務就是記錄下修改訂單的操作步驟。
5、填入訂單號碼,按確定6、現在來增加一下訂單的PO DATE。
7、填入‚2006.10.01‛,點‚保存‛。
8、這樣就完成了一個最最簡單的BDC錄取工作,錄完之後會出現系統運行的操作的跟蹤,包括程式號,螢幕號,欄位名,值等等,下面的任務是根據這些寫到程式裏面以完成SAP自動跑訂單修改的這一動作。
9、首先必須定義BDC變數:* 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中。
BDC数据导入简介在SAP项目实施过程中,批量导入数据主要有三种方法,包括LSMW、CATT、BDC.下面简单介绍以下BDC导入数据的操作方法。
关于BDC,我查询到两种叫法,一个是Batch input communication,另一个是Batch data conversion.但是不知道这两种叫法哪一个是正确的,或者都正确。
BDC的处理步骤分为四步,如下:1.录制BDC标准命令,即BDC模板,就是将在SAP系统中处理的步骤录制下来,然后保存为文本文件到本地。
2.制作数据收集的EXCEL文件,这个文件是数据的原文件,可以根据不同的数据转换方法来定义不同的格式。
3.数据转换,并将转换后的数据上载到SAP系统当中,数据转换的方法常用有4种,WORD邮件合并、SAP TOOL、EXCEL宏、ABAP程序,我介绍SAP TOOL的数据转换方法。
4.到批处理画面进行批处理。
注意:做好的模板,要在测试系统中反复测试后,才能到生产机进行批量导入执行,否则容易出现大量错误,如果是主数据,可以大部分删除,如果是业务数据,就只能冲销了。
举例:大港油田226系统中供水公司工作中心的导入。
操作步骤:一.录制BDC模板执行事务代码SHDB,进入如下界面。
点击new recording.1.在记录字段填写记录名,由自己指定,这里填写KING.2.在Transaction code字段输入要执行的事务代码,这个是工作中心的导入,因此填写IR01.填写完成后,点击Start recording开始录制。
录制的过程就是创建一个工作中心的过程,创建完一个工作中心后,点击保存,出现如下界面。
点击按钮,将BDC模板下载到本地,文件名为bdc_recording的文本文件。
新建一个EXCEL文件,将单元格的格式改文本格式,将bdc_recording文本文件中的内容复制到这个EXCEL当中,我们来查看bdc_recording文件的结构。
ABAP 调用BDC 过程详解调用BDC导入数据到系统,可以有大致三种方法:第一: 导出源程序,通过,通过word自带导入工具把导入表中数据导入源程序.特点:优缺点: 适应于数据量较少, 缺点操作复杂,不适合与基层人员和无基础人员.第二: 生产源程序,选择通过模版导入,下载系统模板填充后上传,再导入数据.优缺点: 使用与数据量较少情况,操作也不简单,但是不需要编程基础.第三: abap 编程实现.优缺点: 当然需要较强的abap编程知识,编写完成,即可实现傻瓜式导入,复用性强,操作简单.本文就详细介绍abap调用BDC导入数据的过程.abap实现BDC导入的本质是通过abap程序调用BDC的一些内置方法, 通过循环内表,abap 把数据和操作写入BDCDATA表,然后执行这张表.1.调用F4_FILENAME 之类方法打开文件选择框(略).2.调用TEXT_CONVERT_XLS_TO_SAP之类方法导入数据到内表,保证内表.(略)3.调用BDC导入数据.3.1.数据声明:DATA:BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE. "执行的参数传递表. DATA:MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE."返回执行结果.3.2.常用方法.*form: bdc_dynapro 分配屏幕参数子程序.*form: bdc_field. 分配字段参数子程序.*form: bdc_transaction 调用食物代码并传递指定的参数.当然这些方法在生产程序时都包含在include bdcrecx1文件中. 当然生成的文件可能不能满足你的需要可以自己编辑include文件,然后包含自己的文件.3.2.1 form bdc_transaction源码*-------------------------------------------------------------------FORM BDC_TRANSACTION USING TCODE CTUMODE.DATA: L_MSTRING(480).DATA: L_SUBRC LIKE SY-SUBRC.REFRESH MESSTAB.CALL TRANSACTION TCODE USING BDCDATAMODE CTUMODEUPDATE 'A'MESSAGES INTO MESSTAB.L_SUBRC = SY-SUBRC.write: / 'CALL TRANSACTION',TCODE,'returncode:',L_SUBRC,'RECODE:', sy-index.LOOP AT MESSTAB.SELECT SINGLE * FROM T100 WHERE SPRSL = MESSTAB-MSGSPRAAND ARBGB = MESSTAB-MSGIDAND MSGNR = MESSTAB-MSGNR.IF SY-SUBRC = 0.L_MSTRING = T100-TEXT.IF L_MSTRING CS '&1'.REPLACE '&1' WITH MESSTAB-MSGV1 INTO L_MSTRING.REPLACE '&2' WITH MESSTAB-MSGV2 INTO L_MSTRING.REPLACE '&3' WITH MESSTAB-MSGV3 INTO L_MSTRING.REPLACE '&4' WITH MESSTAB-MSGV4 INTO L_MSTRING.ELSE.REPLACE '&' WITH MESSTAB-MSGV1 INTO L_MSTRING.REPLACE '&' WITH MESSTAB-MSGV2 INTO L_MSTRING.REPLACE '&' WITH MESSTAB-MSGV3 INTO L_MSTRING.REPLACE '&' WITH MESSTAB-MSGV4 INTO L_MSTRING.ENDIF.CONDENSE L_MSTRING.write: / MESSTAB-MSGTYP,L_MSTRING(250).ELSE.WRITE: / MESSTAB.ENDIF.ENDLOOP.REFRESH BDCDATA.ENDFORM.3.2.2. bdc_dynpro通用源码*作用: 指定bdc_dynpro的实参,告知系统dialog程序名称:SAPLMGMM,及screen number:0060 perform bdc_dynpro using 'SAPLMGMM' '0060'. *-------------------------------------------------------FORM BDC_DYNPRO USING PROGRAM DYNPRO.CLEAR BDCDATA.BDCDATA-PROGRAM = PROGRAM.BDCDATA-DYNPRO = DYNPRO.BDCDATA-DYNBEGIN = 'X'.APPEND BDCDATA.ENDFORM.3.2.3. bdc_field 通用源码.*作用指定bdc_field的实参,告知系统把光标放在哪个字段,这里是“RMMG1-MATNR,物料” perform bdc_field using 'BDC_CURSOR'*--------------------------------------------------------FORM BDC_FIELD USING FNAM FVAL.CLEAR BDCDATA.BDCDATA-FNAM = FNAM.BDCDATA-FVAL = FVAL.APPEND BDCDATA.ENDFORM.3.2.4. 源程序调用.先看录屏生产的记录表及生产程序.复制do……….. enddo之间数据,数据为一个完整写入数据过程.调用 loop at itab(存放导入数据表)修改其中一些字段,当然要了解字段含义比如:perform bdc_field using 'DATABROWSE-TABLENAME''zymq004'.此BDC要修改一个表一些字段,而生成程序表名为 recode-tablename_001.显然表名确定,所以只需修改为表名,而非变量即可.一些字段,如perform bdc_field using 'ZYMQ004-YJBMBM'gt_data-yjbmbm.则把字段改为导入内表的字段名,这样就可以表中读入.这样就可以了.。
传输数据的过程1.获取要传输的数据(路径+文件名+格式)2.转换数据格式,使其成为系统可接受的格式(Sender Structure →Receiver Sructure)3.传输4.反馈BDC批导入是传递大批量数据到R/3的一项标准技术。
其模拟事务流程传递数据,数据就像在线输入一样进行传递。
该技术的优点是会执行事务的相关检查,因此可以保证数据的一致性。
批导入过程分为两步:1. 创建一个批导入session ,其中包括所有相关的数据。
2. 处理批导入session,将其中包含的数据传入R/3系统。
数据传输工作台只执行第一步。
大多数SAP标准数据传输程序都使用的是批导入技术。
数据传输程序创建一个批导入session,其在迟后一个时间处理。
批导入可以以多种方式执行:•前台•后台•在处理过程中显示错误信息如果想对数据传输进行检查,可以在前台处理批导入或以显示错误信息的方式执行。
如果想传递数据或测试其性能,应该在后台处理。
特点分析简单地讲BDC就是先把相应事务的处理过程录制下来,然后让系统自动执行特定的事务过程,在执行的过程中把需要传输的数据输入进去。
所以可以看出BDC的优点是并不要求使用者对业务知识有多了解,只要相应的过程可以录制下来,就可以反复执行录制的过程,把数据输入系统。
但BDC有一个缺点,就是输入数据时,如果项目栏的记录很多而需要换页时,不同的程序可能换页方式不同,并且不同的显示器所显示的行项目数量也不一样多,会出现执行不下去或者遗漏数据的情况,这个问题比较棘手。
获取源数据一般情况下,在进行传输之前要把数据放入内表●从系统内部获取例如,以ALV形式输出数据后此时,数据存放在与ALV控件相对应的内表中●从系统外部获取CALL FUNCTION’DATA_UPLOAD’把数据由系统外部上传到ABP的内表中,这里的外部数据有严格的格式要求。
如果源数据是存放在EXCEL中,需要将其另存为以Tab键格开的文本文件。