SAP IDOC 教程:定义、结构、类型、格式和表
什么是 IDOC?
IDOC 只是一个数据容器,用于在任何能够理解数据语法和语义的两个进程之间交换信息。
换句话说,IDOC 就像一个具有指定格式的数据文件,在两个知道如何解释该数据的系统之间交换。
IDOC 代表“中间文档”
当我们执行出站 ALE 或 EDI 流程时,会创建一个 IDOC。
在 SAP 系统中,IDOC 存储在数据库中。每个 IDOC 都有一个唯一的编号(在客户端内)。
主要功能
- IDOC 独立于发送和接收系统。(SAP 到 SAP 以及非 SAP)
- IDOC 基于 EDI 标准、ANSI ASC X12 和 EDIFACT。如果数据大小有任何冲突,它会采用长度较大的那个。
- IDOC 独立于数据交换的方向,例如 ORDERS01:采购模块:入站和出站
- IDOC 可以在文本编辑器中查看。数据以字符格式而不是二进制格式存储。
IDOC 的结构
IDOC 结构由 3 部分组成 –
- 管理部分(控制记录)- 包含 IDOC 类型、消息类型、当前状态、发件人、收件人等。这被称为控制记录。
- 应用数据(数据记录)- 包含数据。这些被称为数据记录/段。
- 状态信息(状态记录)- 这些提供有关 IDOC 经过的各个阶段的信息。
您可以使用事务 WE02 或 WE05 查看 IDOC
如上面的屏幕截图所示,IDOC 记录有三个部分:控制、数据和状态。让我们详细了解它们 – 控制记录
- 所有控制记录数据都存储在 EDIDC 表中。此表的键是 IDOC 编号
- 它包含 IDOC 编号、方向(入站/出站)、发件人、收件人信息、正在使用的通道、正在使用的端口等信息。
- 方向“1”表示出站,“2”表示入站。
数据记录
- 数据记录包含应用程序数据,如员工抬头信息、每周详细信息、客户详细信息等。
- 所有数据记录数据都存储在 EDID2 到 EDID4 表中,EDIDD 是一个您可以查看其组件的结构。
- 它包含 IDOC 编号、IDOC 中段的名称和编号、层次结构和数据等数据
- 实际数据以字符串形式存储在名为 SDATA 的字段中,该字段长度为 1000 个字符。
状态记录
- 状态记录在每个里程碑或遇到错误时附加到 IDOC。
- 所有状态记录数据都存储在 EDIDS 表中。
- 状态 1-42 用于出站,状态 50-75 用于入站
IDOC 类型
IDOC 类型(基本)定义了要交换的业务文档的结构和格式。IDOC 是 IDOC 类型的实例,就像编程语言中变量和变量类型的概念一样。您可以使用 WE30 定义 IDOC 类型。
什么是段?
段定义了 IDOC 中数据记录的格式和结构。段是可重用组件。
对于每个段,SAP 创建
- 段类型(与版本无关)
- 段定义(与版本相关)
- 段文档
最后 3 个字符是段的版本
定义会根据版本不断变化,但段类型保持不变。
事务:WE31
什么是扩展 IDOC 类型?
IDOC 有两种类型:-
- 基础版
- 扩展
SAP 提供了许多预定义的不可修改的基本 IDOC 类型。如果您想向这些受限的基本类型添加更多数据,可以使用扩展类型。大多数情况下,您不会使用扩展。
文档
每个 IDOC 都通过事务 WE60 进行了详尽的文档说明
消息类型
消息表示在两个合作伙伴之间传输的特定类型的文档,例如订单、订单响应、发票等。
一个 IDOC 类型可以与许多消息类型相关联
此外,一个消息类型可以与不同的 IDOC 类型相关联。事务 WE81
IDOC 视图
一个 IDOC 类型可以用于多个消息类型,这导致 IDOC 包含比特定消息类型所需的字段更多的字段。
IDOC 视图用于提高生成 IDOC 的性能,以确保只用相关段填充数据。IDOC 视图仅对出站处理重要。
合作伙伴配置文件
合作伙伴被定义为您进行业务和交换文档的业务合作伙伴
在与我们交换 IDOC 的合作伙伴的合作伙伴配置文件中,我们维护交换数据所需的参数。使用的事务是 WE20。
端口
端口定义了您的 SAP 系统与您要传输数据的其他系统(子系统)之间连接的技术特性。端口定义了两个系统之间数据交换的介质。
有不同类型的端口。最常用的两种是 ALE 中使用的 TRFC 端口和 EDI 使用的文件端口。
对于 TRFC 端口,我们必须给出使用 SM59 创建的逻辑目标的名称。
使用文件端口时,您可以指定 IDOC 文件应放置的目录。其他系统或中间件将从此处拾取文件。函数模块可用于为 IDOC 生成文件名。在测试期间,您可以使用“出站文件”指定一个常量文件名。“出站触发器”选项卡可用于提供信息,如果我们希望在 IDOC 在此位置创建时在子系统上触发一些处理。我们必须指定要运行的命令文件名和目录。
这太令人困惑了!
让我们通过一个示例来了解创建 IDOC 的过程 –
- 每当创建采购订单 (PO) 时,我们都希望将 IDOC 发送给供应商。
- 采购订单以 IDOC 的形式发送给供应商(合作伙伴)。该合作伙伴必须在该系统中启用 EDI。SAP 应该意识到它可以以电子方式向该供应商发送文档。
- 客户作为出站 IDOC 发送的采购订单将是供应商的入站 IDOC。供应商方的 SAP 系统可以处理此 IDOC,以在其系统上创建应用程序文档(销售订单)。
- 报价、询价单、采购订单、销售订单、发票、交货单等是一些通过 IDOC 常用交换的文档。
数据从 SAP 系统传出的过程称为出站流程,而数据进入 SAP 系统 Process 的过程称为入站流程。作为开发人员或顾问,您将参与为您的组织设置这些流程。以下是如何设置它们的步骤 –
出站流程
涉及的步骤 –
- 创建段(WE31)
- 创建 IDOC 类型(WE30)
- 创建消息类型(WE81)
- 将消息类型与 IDOC 类型关联(WE82)
- 创建端口(WE21)
- 如果您将使用消息控制方法触发 IDOC,则创建用于创建 IDOC 的函数模块,并将函数模块与出站处理代码关联。
- 否则,创建将创建 IDOC 的函数模块或独立程序。
- 创建合作伙伴配置文件(WE20),其中包含您要交换 IDOC 的合作伙伴的出站参数中的必要信息。触发 IDOC。
入站流程
涉及的步骤 –
- 创建基本 IDOC 类型(事务 WE30)
- 创建消息类型(事务 WE81)
- 将消息类型与基本 IDOC 类型关联(事务 WE82)
- 创建用于处理 IDOC 的函数模块
- 定义函数模块特性(BD51)
- 将入站函数模块分配给消息类型(WE57)
- 定义处理代码(事务 WE42)
- 创建合作伙伴配置文件(事务 WE20)