BDC批导入

目录

一、BDC简述

1.1、批导入过程

1.2、执行方式

二、创建BDC——SHDB

第一步:录屏

第二步:命名新记录,并输入相应的事务码

第三步:执行相应的事务操作

第四步:生成代码段

三、执行BDC

3.1、BDCDATA的结构

3.2、分析数据结构


BDC:批导入(Batch Data Conversion)

       在SAP系统里,由于某种原因,可能需要重复输入数据,(数据不同,但是操作是相同的,典型的情形就是切换系统的时候,旧系统的数据需要导入SAP)。

最标准、最规范的做批导入的方式是用BAPI(因为BAPI可以测试,保证无错误后,才真正往系统内进行导入),而BDC要到保存后才知道是否有错误。

但是BDC比BAPI更灵活简单,因为BAPI是SAP自己写的函数,有些操作并没有写在其中,而BDC可以录制各种各样的BDC。

一、BDC简述

1.1、批导入过程

  • 创建一个批导入的模板 :
  • 进入BDC工作台,输入要批导入的T-CODE,输入值之后,将当前T-CODE执行完毕,最后保存,一条模板记录就完成了。这样,BDC记录了所有以上在该T-CODE中录入的数据以及操作的过程。
  • 处理批导入:
  • 在程序中,将要批导入的数据整理,将数据循环填充在叫“BDCData”的内表里,最后用CALL  TRANSCTION  <t-code >using bdcdata命令来提交本次批导入的重复动作。

1.2、执行方式

  1. 前台  A
  2. 后台  N
  3. 在处理过程中显示错误信息 E

二、创建BDC——SHDB

第一步:录屏

在SHDB:选择‘新建记录’按钮

第二步:命名新记录,并输入相应的事务码

第三步:执行相应的事务操作。

       下面的执行过程与相应事务的处理相同,事务操作完成之后,系统会提示你要不要保存输入的数据,选择‘是’。

第四步:生成代码段

       自动生成BDC程序,方法是选择相应的记录然后选择‘Program’按钮,系统会根据所选择的记录,自动生成一个Report程序,可根据该程序编写你自己的程序。

三、执行BDC

CALL TRANSACTION TCODE USING BDCDATA

                     MODE   CTUMODE

                     UPDATE CUPDATE

                     MESSAGES INTO MESSTAB.

参数说明:

TCODE:相应事务的事务码

MODEA:显示所有屏幕

             E: 只显示错误屏幕

             N: 显示屏幕

UPDATE:S: 同步的更新(数据量不大时选S)

                  A: 异步的更新(数据量比较大时选A)

                  L: 本地的更新(一般不用)

MESSAGES:用于存放消息,系统中定义了一个标准的消息结构BDCMSGCOLL,用于存放消息。如果在调用事务时指定了该表,那么不管是否有错误,相应的消息都会进入MESSTAB

3.1、BDCDATA的结构

  1. 定义变量
    DATA:   BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
    DATA:   MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE. 
    
  2. 设置屏幕
    *&---------------------------------------------------------------------*
    *& 添加Program/DynPro操作到BatchInput序列的内部表BDCDATA    *
    *& PROGRAM - 程序名(长度为8的字符串)                     
    *& DYNPRO  - 画面号                                         *
    *&---------------------------------------------------------------------*
    FORM BDC_DYNPRO USING PROGRAM
                          DYNPRO.
      CLEAR BDCDATA.
      BDCDATA-PROGRAM = PROGRAM.
      BDCDATA-DYNPRO  = DYNPRO.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
    ENDFORM.
    
  3. 设置屏幕字段
    *&---------------------------------------------------------------------*
    *&  添加屏幕数据操作到BatchInput序列的内部表BDCDATA        *
    *& FNAM - 屏幕项目名                                        *
    *& FVAL - 填写项目值                                        *
    *&---------------------------------------------------------------------*
    FORM BDC_FIELD USING FNAM FVAL.
      CLEAR BDCDATA.
      BDCDATA-FNAM = FNAM.
      BDCDATA-FVAL = FVAL.
      APPEND BDCDATA.
    ENDFORM.
    
  4. 调用2、3的子例程,将所有的屏幕号和屏幕字段以及屏幕按钮添加到BDCDATA里
    BDCDATA里。
    PERFORM BDC_DYNPRO      USING 'SAPLSUU5' '0050'.
    PERFORM BDC_FIELD       USING 'BDC_CURSOR‘  'USR02-BNAME'. 
    …..
    
  5. 调用事务 
    CALL TRANSACTION   <transaction code>
                USING	<BDCDATA table>
     			MODE	<display mode>
    		    UPDATE	<update mode>
    	  MESSAGES  INTO  <message table> .
    

程序:ZPROGAM_F007 

3.2、分析数据结构

  • 可以通过在屏幕字段上按”F1“,然后查看其技术信息获得字段信息
  • 一般我们通过工具来进行辅助分析:
  • SHDB     -  Batch Input Transaction Recorder
  • SM35     -  Batch Input Monitoring 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值