目录
原文地址: IDoc Basics For Functional Consultants
一、前言
如今,IDoc 在大多数 SAP 应用程序中用于将消息(信息)从 SAP 系统传输到其他系统,反之亦然。尽管 IDoc 上提供了大量文档,但由于其技术性质,实施顾问很难理解这些文档。虽然顾问不需要完全了解 IDoc 概念,但我们必须了解的最少必要的IDoc 信息,用于项目/支持问题所需的知识。
二、概览
IDoc 是一种 SAP 对象,它以电子消息的形式将业务事务数据从一个系统传送到另一个系统。IDoc 是中间文档(**I**ntermediate **Doc**ument)的缩写。IDoc 的目的是将数据或信息从 SAP 传输到其他系统,反之亦然。从 SAP 到非 SAP 系统的传输是通过 EDI(电子数据交换-Electronic Data Interchange)子系统完成的,而对于两个 SAP 系统之间的传输,则使用 ALE。
IDoc 可以在 SAP 系统或 EDI 子系统中触发。这取决于 IDoc 的发送方向,相应地称为入站 IDoc 和出站 IDoc。在出站流的情况下,IDoc 通过文档消息控制在 SAP 中触发,然后发送到 EDI 子系统。EDI 将 IDoc 中的数据转换为 XML 或等效格式,然后通过 Internet 将数据发送到合作伙伴系统。
对于入站流,EDI 转换合作伙伴数据并在 SAP 中创建 IDoc。成功处理此 IDoc 后,应用程序文档将发布到 SAP 中。
三、EDI 标准和 IDOC
EDI 是业务合作伙伴的计算机系统之间通过通信网络使用标准格式进行业务文档的电子交换”。EDI代表电子数据交换(Electronic Data Interchange)。
对于电子信息传输,两个广泛使用的标准是 ANSI ASC X12 和 EDIFACT。ANSI ASC X12 是一个由主要组织、政府机构和 EDI 软件公司的代表组成的委员会,负责定义通过 EDI 进行信息交换的标准和指南。UN/EDIFACT 代表联合国行政、商业和运输 EDI,成立于 1985 年,使用 ANSI X12 和 UNTDI(联合国贸易数据交换)作为基本标准。ANSI X12 将业务文档描述为交易,每笔交易均由三位数字表示,例如 850 – 采购订单,855 – 采购订单确认。EDIFACT 将业务文档描述为消息,由标准名称表示,例如代表采购订单的 ORDERS。
四、IDOC 术语
4.1 IDOC(基本)类型
IDoc 类型基于 EDI 标准,并且主要基于 EDIFACT 标准。 基本类型(或 IDoc 类型)定义 IDoc 的结构。每个基本类型描述了标准 IDoc 段、数据字段的格式及其大小。基本类型还定义 IDoc 中的段和字段数。特定业务事务的消息传输所需的所有字段都映射到不同的段中。它还定义了 IDoc 段以及强制段和可选段的结构和关系。
4.2 IDOC 扩展(EXTENSION)
基本类型包含执行业务交易所需的所有标准字段。但是,如果要向合作伙伴发送任何其他值,那么我们可以利用 IDoc 扩展功能。IDoc 扩展是基本类型的扩展,包含标准基本类型中不可用的附加自定义 IDoc 段和字段。
4.3 IDoc 段
IDoc 段包含发送到合作伙伴或从合作伙伴接收的实际数据。这些段包含作为 IDoc 传输的一部分发送的实际值。
4.4 父项 IDoc 段与子项 IDoc 段
如果 IDoc 段包含自己的段,则该段称为父段。从属段称为子段。
4.5 入站/出站 IDOC
发送到系统外部的 IDoc 称为出站 IDoc,接收到系统中的 IDoc 称为入站 IDoc。
4.6 IDOC方向
这表示信息发送的方向,类似于邮件中使用的术语。如果信息发送到系统外部,则方向为发件箱,当信息被系统接收时,方向为收件箱。在 SAP 中,发件箱方向由“1”表示,即发件箱方向,收件箱方向由“2”表示。
4.7 合作伙伴
合作伙伴是使用 IDoc 与其进行信息交换的业务合作伙伴。它可以是供应商、客户或任何其他系统。根据信息发送的方向,它扮演“发送伙伴”或“接收伙伴”的角色。
4.8 合作伙伴类型
合作伙伴类型/角色用于识别 SAP 系统内的合作伙伴。合作伙伴类型为 KU(代表客户)、LI(代表供应商)和 LS(代表逻辑系统)。
4.9 消息类型
IDoc 处理涉及以消息形式传输或接收文档,每个消息代表 SAP 中的一个文档。这些文件可以是订单、发货确认、提前发货通知、收货或发票。消息类型与基本 IDoc 类型(Basic Type)相关联,定义与合作伙伴交换的数据或文档的类型。
4.10 流程代码
处理代码包含用于 IDoc 处理的功能模块的详细信息。消息类型可以链接到处理代码。
4.11 端口
IDoc 端口包含有关源系统或目标系统之间数据发送方式的信息。端口的类型定义了端口内包含的信息。对于端口类型“Internet”,端口将包含目标系统的 IP 地址。对于端口类型“文件”,维护目录或文件名信息。“tRFC”端口包含有关目标系统的 RFC 目的地的信息。对于使用 ALE 的 IDoc 传输,使用“tRFC”端口。
五、合作伙伴维护
5.1 合作伙伴参数文件-WE20
必须维护我们想要向其发送或接收 IDoc 的所有业务合作伙伴的合作伙伴参数文件。用于维护合作伙伴参数文件的 TCODE 是 WE20。
双击合作伙伴将显示以下屏幕:
合作伙伴配置文件包含 IDoc 入站和出站处理的参数。对于每种消息类型,我们可以维护入站/出站选项、消息控制、后处理选项以及入站和出站参数中的联系信息。
5.2 出站选项(出站参数)
这涉及发送器/接收器端口、输出模式以及与 IDoc 类型(即基本类型和扩展)的关系。
5.3 消息控制(出站参数)
其中包含将为其创建 IDoc 的应用程序(例如采购订单的 EF)、将触发 IDoc 的应用程序的消息类型以及将 SAP 文档转换为 IDoc 的处理代码。例如,如果 PO 要发送给供应商 AXXXXZ,则在合作伙伴 AXXXXZ 的出站选项中,我们需要维护消息类型 ZXX1 并将其链接到流程代码 ME10。因此,当 PO 中触发消息类型 ZXX1 时,将为合作伙伴供应商 AXXXXZ 创建 IDoc。
处理代码链接到 SAP 中的功能模块,将应用程序数据转换为 IDoc。SAP 为这种转换提供了标准功能模块,但也可以根据业务需求进行定制。
更改消息指示器(Change Message Indicator)代表 IDoc 是否作为更改通知发送。例如,采购订单更改消息使用 EDI 标准消息类型 860 发送给供应商。
应在采购订单中针对采购订单更改触发单独的消息类型。必须在“消息控制”选项卡中添加具有更改消息类型的附加行,并且更改消息指示器处于打开状态。
5.4 入站选项(入站参数)
对于入站选项,流程代码仅在“入站”屏幕中维护。IDoc处理可以由后台程序触发并立即触发。
5.5 发送处理(入站/出站参数)
在发送处理选项中,我们可以维护用户或职位的工作流程详细信息,如果 IDoc 处理失败,将向这些详细信息发送错误通知。
5.6 电话(呼入/呼出参数)
我们还可以在电话选项中维护联系方式。
5.7 EDI 标准(出站参数)
EDI 标准屏幕包含用于 IDoc 传输的标准 EDI 术语的详细信息。
例如,消息类型850是采购订单 IDoc 的 EDI 标准,并链接到 IDoc 消息类型订单。
六、IDOC 结构和记录
6.1 结构
IDoc结构分为控制记录、数据记录和状态记录。
这些记录存储在 SAP 的透明表中。它们是 EDIDC、EDID4 和 EDIDS。
6.2 控制记录 (EDIDC)
它包含 IDoc 编号、方向、IDoc 状态、基本类型、消息类型、合作伙伴(发送者/接收者)、创建/更新日期和时间、交换文件或 ISA 编号等信息。
6.3 数据记录(EDID4)
它包含 IDoc 段的详细信息。
IDoc 段的字段包含过帐文档所需的数据。
6.4 状态记录 (EDIDS)
IDoc Status 定义 IDoc 的处理状态。IDoc 状态用于跟踪 IDoc 及其各种处理状态。状态数字代表 IDoc 状态。IDoc 的当前状态显示在控制记录中。
入站初始状态编号为 64,出站初始状态编号为 03。入站 IDoc 的成功状态为 53,出站 IDoc 的成功状态为 16。
七、发送和接收 IDOCS
7.1 触发出站 IDOC
出站 IDoc 可以从采购订单、交货、物料单据、发票等输出消息类型触发。下图显示,处理 PO XXXXXXX1 的输出 ZXX1 后,将添加/创建 IDoc“000000XXXXXXXXX1”。
IDoc和应用文档之间的关系可以通过两种方式找到:
-
IDoc 的关系选项卡:
-
申请文件的关系选项卡,例如PO、SO、物料文件等。
该IDoc的初始状态为30,处理成功后将转换为状态16。
成功的出站 IDoc 将以相反的顺序经历上述所有状态 (01-03-18-06-12-16)。每个状态代表一个 IDoc 验证步骤。如果 IDoc 通过所有验证,它将达到状态 16。出站 IDoc 的这些不同验证步骤解释如下:
01:IDoc生成成功
30:IDoc 已准备好由 IDoc 处理作业进行处理
03:IDoc数据传递到端口
18:IDoc 成功触发 EDI 子系统
06:IDoc 数据转换为 EDI 格式
12:IDoc成功发送给合作伙伴
16:合作伙伴已成功收到IDoc
在验证过程中,IDoc 可能会在上述任何步骤中失败。
7.2接收入站 IDOC
入站 IDoc 的初始状态为 64,成功状态为 53。
下面解释了入站 IDoc 的不同验证步骤:
50:系统中IDoc接收成功
64:IDoc 已准备好由 IDoc 处理作业进行处理
53:申请文档创建并保存成功。展开状态节点53可以找到文档号
入站 IDoc 按相反顺序经历上述所有状态 (50-64-53)。
八、IDOC处理
8.1 自动/立即处理
在这种情况下,IDoc 在生成或添加到系统中后会立即得到处理。在出站选项中选中“立即传输 IDoc”,在入站选项中选中“立即触发”。当两个系统之间需要实时信息交换时,通常使用这些检查。
8.2 手工加工
还可以使用 SAP 中的 TCODE BD87 手动处理 IDoc。
8.3 通过后台作业处理
由后台进行的 IDoc 处理是处理 IDoc 的最优选方式。使用后台作业处理 IDoc 时使用以下程序:
RBDAPP01 - 入站 IDoc
RSEOUT00 - 出站 IDoc
8.4 重新处理IDOC
根据 IDoc 状态,可以使用不同的程序重新处理失败的 IDoc。这些内容如下:
九、测试和编辑 IDoc
如果 IDoc 包含数据错误,则可以使用 TCode WE02 或 WE05 编辑此类 IDoc。编辑 IDoc 时,原始 IDoc 信息(备份)将保存在状态 70(对于入站)/33(对于出站)下的新 IDoc 中。这些IDoc保留在系统中仅供参考,无法进行处理。编辑后的 IDoc 状态变为 69(入站)和 32(出站)。然后可以使用 BD87 事务或批处理作业来处理这些 IDoc。
可以通过使用 TCode WE19 复制 IDoc 来完成 IDoc 的调试。WE19是Idocs处理的测试工具。WE19 复制现有的 idoc 并创建一个新的 IDoc,然后可以根据测试需要对其进行修改。新生成的IDoc也可以使用BD87进行处理。
十、转换 IDOC 状态
报告 RC1_IDOC_SET_STATUS 可用于更改 IDoc 的状态。通常需要更改状态才能将 IDoc 移至状态 68 – 无需进一步处理
十一、在 SAP 中搜索 IDoc
11.1 TCode WE02/WE05:一般搜索。
IDoc 可以通过 TCODE WE02 和 WE05 在系统中显示。如果不知道 IDoc 编号,则可以根据 IDoc 日期、方向、基本类型、消息类型和合作伙伴编号进行搜索。合作伙伴编号可以在文档的输出消息中找到。
IDoc 搜索也可以基于 ISA 或传输文件参考进行。
11.2 TCode WE09:在 IDOC 段中搜索数据
如果我们要查找 IDocs 段中的特定信息,则可以使用 TCODE WE09 找到。如果您要在 IDoc 段内类似类型的 IDoc 中搜索特定信息,这非常有用。例如,如果您要在多个 IDoc 中搜索特定采购订单号(例如 100000001),该订单号位于字段 BELNR 下 IDoc 的段 E1EDK01 中。然后可以通过以下方式执行搜索。
十二、IDOC 验证、常见 IDOC 错误和解决方案
虽然 IDoc 失败可能与上述任何原因无关,但查找 IDoc 错误的最佳方法是将现有 IDoc 与良好示例进行比较。好的示例 IDoc 可以使用上述任何 IDoc 搜索方法轻松搜索。
十三、IDOC 类型的文档
可以使用 TCODE WE60 找到 IDoc 文档,并且有助于获取 IDoc 类型或其特定段的信息。它还提供诸如强制和可选段、最小和最大段数等信息。
十四、常见 IDOC 消息类型的一般信息
以下列表给出了常见 idocs 的基本类型和消息类型组合
十五、从数据库中归档/删除 IDOCS
随着 IDoc 的老化,它们会被存档并从数据库中删除。可以在 Achieve Explorer 中使用 TCODE SARI 查看存档的 IDoc,使用存档对象作为 IDoc。以下是用于从数据库归档和删除 IDoc 的几个程序。