SAP ABAP BDC(批量数据通信)教程
批量输入简介
批输入通常用于将数据从非 R/3 系统传输到 R/3 系统或在 R/3 系统之间传输数据。
它是一种数据传输技术,允许您将数据集自动传输到属于交易的屏幕,从而传输到 SAP 系统。批输入由批输入会话控制。
批输入会话
将一系列事务调用与输入数据和用户操作组合在一起。批输入会话可用于执行批输入中的对话事务,其中部分或全部屏幕由会话处理。批输入会话作为数据库表存储在数据库中,并且可以在访问事务时在程序中用作内部表。
注意事项
- BDI 的运作方式是 SAP 就像用户一样进行交易,但它会自动执行交易。所有屏幕验证和业务逻辑验证都将在使用批量数据输入时完成。
- 适合输入大量数据。
- 无需手动交互
批量输入方法
SAP 提供两种将遗留数据传输到 R/3 系统的基本方法。
- 经典的批量输入方法。
- 调用交易方法。
经典批量输入法
在此方法中,ABAP/4 程序将外部数据读取到 SAP 系统并存储在批处理输入会话中。
创建会话后,您可以运行会话来执行 SAP 其中的交易。
此方法使用功能模块 BDC_OPEN、BDC_INSERT 和 BDC_CLOSE
批量输入会话可以通过三种方式处理
- 在前台
- 在后台
- 加工过程中,有错误显示
如果您想测试数据传输,您应该在前台处理批量输入会话或使用错误显示。
如果您想执行数据传输或测试其性能,您应该在后台处理会话。
传统批量输入法注意事项
- Sync同步处理
- 为多个交易传输数据。
- Sync同步数据库更新。
- 每次会话都会生成一个批量输入过程日志。
- 会话无法并行生成。
调用交易方法。
在这个方法中 ABAP/4 程序使用 CALL TRANSACTION USING 语句运行 SAP 交易。
整个批量输入过程在程序中在线进行
注意事项:
- 更快地处理数据
- 异步处理
- 为单笔交易传输数据。
- 没有生成批输入处理日志。
批量输入程序
您通常会遵循以下步骤为您的组织开发批量输入
- 分析遗留数据。确定要传输的数据如何映射到 SAP 结构。还需注意必要的数据类型或数据长度转换。
- 产生 SAP 用于导出程序的数据结构。
- 将数据导出到顺序文件中。请注意,字符格式是预定义的 SAP 批处理输入程序。
- 如果 SAP 如果不使用提供的 BDC 程序,请编写自己的批输入程序。根据情况选择合适的批输入方法。
- 处理数据并将其添加到 SAP 系统.
- 分析进程日志。对于 CALL TRANSACTION 方法,如果没有创建适当的日志,请使用程序收集的消息。
- 根据过程分析的结果,纠正并重新处理错误的数据。
编写 BDC 程序
您可以遵循以下过程来编写 BDC 程序
- 分析交易以处理批量输入数据。
- 决定要使用的批量输入方法。
- 从顺序文件读取数据
- 执行数据转换或错误检查。
- 将数据存储在批量输入结构BDCDATA中。
- 为经典批输入生成批输入会话,或者直接使用 CALL TRANSACTION USING 语句处理数据。
批量输入数据结构
批量输入数据结构声明
DATA : BEGIN OF < bdc table> OCCURS <occurs parameters>. INCLUDE STRUCTURE BDCDATA. DATA:END OF <bdc table>.
字段名称 | 类型 | 长度 | 描述 |
---|---|---|---|
课程 | CHAR | 8 | 模块池 |
达普罗 | 荷兰国家计算机公司 | 4 | Dynpro 号码 |
动力开始 | CHAR | 1 | 启动 dynpro |
FNAM | CHAR | 35 | 字段名称 |
有效值 | CHAR | 80 | 字段值 |
特定屏幕的数据中字段的顺序并不重要
注意事项
- 填充 BDC 数据时,请确保考虑用户设置。这对于填充涉及数字的字段(如数量、金额)尤其重要。用户设置决定数字的分组字符。例如:五万这个数字可以根据用户设置写成 50,000.00 或 50.000,00。
- 压缩金额和数量字段的 FVAL 字段,以便它们左对齐。
- 请注意,在填充 BDC 数据表时,通过 BDC 填充的所有字段都应被视为字符类型字段。
- 在某些屏幕中,当您使用 BDC 填充表格控件中的值时,您必须注意默认屏幕大小上有多少行,并为这些行编写代码。如果您必须填充更多行,那么您必须编写“向下翻页”功能的代码,就像您手动填充表格控件时所做的那样。
- 上述场景中出现的行数将根据用户使用的屏幕尺寸而有所不同。因此,请始终针对标准屏幕尺寸进行编码,并让您的 BDC 始终在标准屏幕尺寸下工作,而不管用户将屏幕尺寸设置为何种尺寸。
创建批输入会话
- 使用功能模块BDC_OPEN_GROUP打开批输入会话。
- 对于会话中的每个事务:
- 使用交易中处理的所有屏幕和字段的值填充 BDCDATA。
- 使用 BDC_INSERT 将事务转移到会话。
- 使用 BDC_CLOSE_GROUP 关闭批输入会话
批量输入记录器
批量输入记录器(系统 > 服务 > 批量输入 > 记录器)记录手动输入的交易并创建批量输入会话,稍后可使用 SM35 执行。
- 从批输入初始屏幕中选择“记录”按钮来启动批输入记录器。
- 录音名称是用户定义的名称,可以与从录音创建的批量输入会话名称匹配。
- 输入 SAP 交易并开始发布交易。
- 在您完成发布后 SAP 交易中您可以选择获取交易并保存来结束记录或者选择下一个交易并发布另一个交易。
- 保存记录后,您可以从记录中创建批输入会话和/或从记录中生成批输入程序。
- 您创建的批输入会话现在可以像任何其他批输入会话一样进行分析。
- 批量输入记录器功能生成的程序是数据接口程序员的强大工具。它提供了坚实的基础,然后可以根据客户要求进行修改。