BDC 批导

BDCBatch Data Communication Program,批量数据交换程序),是一种通过ABAP程序将资料批量输入系统的方法,工作原理:将用户繁荣的操作程序和步骤记录下来,然后依照流程逐步将指定的数据在指定的操作页面及栏位输入并执行。优点如下:1、避免了手工进行一些重复性工作,提高效率 2、输入确保数据的完整性,采用交互用户所用的同一事务代码将数据录入到SAP系统

 何时使用?

存在大量的重复业务,就会考虑使用 BDC
符合应用于采用正常交互方式输入的数据的所有检查和控制

 SAP 系统提供的BDC有两种,从其它 SAP 系统和非 SAP 系统向本系统传递数据的基本方法。这两种方法统称为“批输入”或“批数据通讯”。两种批输入方法都通过执行常规 SAP 事务进行工作,正如用户输入一样。但是,批输入可自动执行事务,因此适用于输入以电子表格表格形式存在的大量数据。BDC是SAP常用的一种数据传输方法。用于一些数据量大,但是对速度又要求不高的数据传输。

定义一个BDC程序的基本流程

  1. BDC录制,记录屏幕操作
  2. 产生相关的程序及数据格式文件
  3. 利用程序将相关单据信息读取到内表,并对内表的数据进行调整逻辑处理(数据检查或数据转换)
  4. 调用BDC录制程序导入数据
  5. 输出消息列表

 主要事务代码:SHDB(录屏)、  SM35(查看会话)

BDC实现的两种方式 CALL TRANSACTION 、BATCH INPUT SESSION

SHDB的使用

BDCDATA

字段名称

类型

长度

描述

说明

PROGRAM

CHAR

8

程序

所操作的事务所对应的程序名称

DYNPRO

NUMC

4

界面编号

可能是主屏幕,也可能是子屏幕

DYNBEGIN

CHAR

1

是否是界面开始一行

第一行为’X’,否则为’’

FNAM

CHAR

35

字段名称

屏幕操作中具体对应的动作,与F1查到的字段名称一致

如:BDC_CURSORBDC_OKCODE

FVAL

CHAR

80

字段值

字段名所对应的参数

如:按钮的命令,分页签的名称等

CALL TRANSACTION TCODE USING BDCDATA
                     MODE   MODE
                     UPDATE UPDATE
                     MESSAGES INTO MESSTAB.

MODE   A: 无论出错与否,每个页面都显示分步显示                                                                                      E: 只显示出错误时的页面                                                                                                                  N: 无论出错与否都不显示页面,后台执行 

UPDATE S: 数据更新完成后执行下一个操作   同步                                                                                          A: 马上执行下一个操作  异步                                                                                                              L:本地

文件获取方式 

  1.  使用函数WS_FILENAME_GET,获取文件路径
  2.  使用函数GUI_UPLOAD,上传txt文件
  3. 使用函数TEXT_CONVERT_XLS_TO_SAP,上传excel文件

 文件的路径的搜索帮助:弹出打开文件的窗口,默认路径在D盘,文件类型是txt,还有窗口的名称

DATA lt_file_table  TYPE filetable.
  DATA lv_rc  TYPE i.
  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title      = 'Select File'
      default_filename  = '*.txt'
      initial_directory = 'D:\'
      multiselection    = ''
    CHANGING
      file_table        = lt_file_table
      rc                = lv_rc.
  READ TABLE lt_file_table INTO p_file  INDEX 1.

函数GUI_UPLOAD:上载文件里的内容到内表

或者用
CALL METHOD cl_gui_frontend_services=>gui_upload
    EXPORTING
      filename            = p_path
      filetype            = 'DAT'
      has_field_separator = cl_abap_char_utilities=>horizontal_tab
    CHANGING
      data_tab            = it_tab.

下载,生成一个文件在本地(有则重新写文件,无则创建文件),文件的内容来自内表
 CALL METHOD cl_gui_frontend_services=>gui_download
    EXPORTING
      filename              = l_out_path
      write_field_separator = 'X'
    CHANGING
      data_tab              = it_out
    EXCEPTIONS
      file_write_error      = 1
      file_not_found        = 2.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值