出站 iDocs 可以在 SAP 中作为批处理或包进行处理。这种技术也称为 iDocs 的打包或捆绑。该打包允许我们将 iDocs 作为集合或一个数据包发送到目标系统。如果要将多个 iDoc 作为一条消息发送到目标系统,则 iDoc 打包方法非常有用。
在本文中,我们将讨论与 iDoc 打包相关的 SAP ALE/iDoc 配置。此外,我们还将查看用于在 SAP Process Orchestrator 版本 7.1 或更高版本中捆绑 iDoc 的 iDoc 适配器 (iDoc_AAE) 配置。此外,我们还将学习如何使用程序RSEOUT00处理捆绑的出站 iDoc。
出站 iDoc 合作伙伴配置文件中的包装大小
要在 SAP 中配置 iDoc 集合,我们需要设置 Partner Profile 的出站参数的 Pack Size。但是,此参数只能与输出模式“收集 iDocs”结合使用。
要配置包大小,请转到 SAP 后端系统中的事务 we20,然后导航到出站 iDoc 配置(出站参数)。
iDoc 合作伙伴配置文件的出站参数 – we20
然后在“包大小”参数中分配每条消息的 iDoc 数量。
在合作伙伴配置文件中配置的大小和输出模式“收集 iDocs”
在此示例中,每 10 个出站 iDoc 将作为一条消息发送到目标系统。
发件人 iDoc 适配器中的 iDoc 包大小
如果您使用的是中间件 SAP Process Integration 7.1 或更高版本,要使 iDoc 捆绑正常工作,您需要将发送方 iDoc 适配器与合作伙伴配置文件一起配置。
在发件人 iDoc 适配器 (iDoc_AAE) 中,“适配器特定”参数的“入站消息设置”下有两个与 iDoc 收集相关的重要参数。
- 复选框“单个 XI 消息中有多个 iDocs”
- 数值参数“单个 XI 消息中的 iDoc 数量”
要允许在同一条消息中接收多个 iDoc,请标记参数“单个 XI 消息中有多个 iDocs”。接下来,在参数“单个 XI 消息中的 iDocs 数量”中定义单个消息中允许的最大 iDoc 数量。
iDoc Collection 的发件人iDoc_AAE适配器配置
Java iDoc 适配器iDoc_AAE默认使用 tRFC 传输协议和 iDoc XML 消息协议。
在此处显示的示例中,每 10 个 iDoc 捆绑在一个 XI 消息中。在消息映射程序中,您可以将批量 iDoc 消息映射到目标消息。
iDoc 包装和程序RSEOUT00
当在 iDoc 合作伙伴配置文件中激活“收集 iDoc”配置时,从输出、程序、主数据分发框架等创建的出站 iDoc 将被分配到状态 (30) “iDoc 准备好派单”。要处理状态为 30 的 iDocs 并将其发送到出站端口,应执行标准的出站 iDoc 处理程序RSEOUT00。
标准做法是将此程序安排为质量和生产环境中的定期批处理作业,以处理出站 iDoc。RSEOUT00的每个计划作业都应处理一个 iDoc 消息类型和 iDoc 基本类型组合。
出站 iDoc 处理程序的选择屏幕 RSEOUT00
参数“Maximum Number of iDocs”定义了在执行 COMMIT WORK 之前传输的 iDocs 的最大数量。仅当在 SAP 中打包 iDocs 时,此参数才有效。
但是,您需要确保根据处理的单个 iDoc 的大小和系统资源为 iDoc 的最大数量分配一个合理的数字。如果分配的数字过高,系统可能会遇到短暂的转储。
在为后台作业分配最大数量的 iDocs 时RSEOUT00取单个出站 iDoc 的大小。如果 iDoc 的大小很大,则应分配较小的数字。但是,如果 iDoc 大小较小,则您可以自由地分配更高的数字。例如,ARTMAS (article master) iDoc 是一个相对较重的 iDoc。因此,应分配较少的最大 iDocs 数量。另一方面,对于COND_A(价格条件)iDoc,可以分配更高的数字,因为COND_A iDocs 的大小较小
SAP 中的 iDoc 包大小与 SAP PI/PO iDoc_AAE中的 iDoc 数量
您可能已经注意到,我们可以在 SAP 和 SAP PI/PO 中配置两种不同的包装尺寸参数。
- iDoc 包。合作伙伴配置文件中的大小 - SAP 后端系统
- 单个 XI 消息中的最大 iDoc 数 – SAP PI/PO 适配器 iDoc_AAE
如果在每个参数中配置的 iDocs 数量不同,会发生什么情况?
让我们看看我们可以拥有的组合,
- 合作伙伴配置文件中的 iDoc 包大小等于iDoc_AAE适配器中的 iDoc 数量。
- 合作伙伴配置文件中的 iDoc 包大小大于iDoc_AAE适配器中的大小。
- 合作伙伴配置文件中的 iDoc 包大小小于iDoc_AAE适配器中的大小。
- iDoc_AAE通信通道中的最大 iDocs 数为空。
合作伙伴配置文件中的 iDoc 包大小等于iDoc_AAE适配器中的 iDoc 数量。
Pack Size in Partner Profile | Package Size in Sender Adapter (iDoc_AAE) | Number of iDocs Processed (sent from SAP HANA) | Number of XI messages in PI/PO (iDocs in the XI message) |
10 | 10 | 8 | 1 (8) |
10 | 10 | 9 | 1 (9) |
10 | 10 | 10 | 1 (10) |
10 | 10 | 11 | 1 (10) + 1(1) |
合作伙伴配置文件中的 iDoc 包大小大于iDoc_AAE适配器中的大小。
Pack Size in Partner Profile | Package Size in Sender Adapter (iDoc_AAE) | Number of iDocs Processed (sent from SAP HANA) | Number of XI messages in PI/PO (iDocs in the XI message) |
10 | 9 | 8 | 1 (8) |
10 | 9 | 9 | 1 (9) |
10 | 9 | 10 | 1 (9) + 1 (1) |
10 | 9 | 11 | 1 (9) + 1(1) + 1(1) |
合作伙伴配置文件中的 iDoc 包大小小于iDoc_AAE适配器中的大小。
Pack Size in Partner Profile | Package Size inSender Adapter (iDoc_AAE) | Number of iDocs Processed (sent from SAP HANA) | Number of XI messages in PI/PO (iDocs in the XI message) |
8 | 10 | 7 | 1 (7) |
8 | 10 | 8 | 1 (8) |
8 | 10 | 9 | 1 (8) + 1 (1) |
8 | 10 | 10 | 1 (8) + 1 (2) |
8 | 10 | 11 | 1 (8) + 1 (3) |
iDoc_AAE通信通道中的最大 iDocs 数为空。
适配器的参数“单个 XI 消息中的最大 iDocs 数”iDoc_AAE 是可选的。因此,您可以在发件人 iDoc 通信频道中将其留空。
如果将参数留空并通过 iDoc 合作伙伴配置文件控制包大小,则打包的行为方式将与包大小等于发送方适配器包大小相同。
将此参数留空的一个优点是,您将能够在合作伙伴配置文件中使用不同包大小的不同集成方案中的同一发件人 iDoc 通信通道。
样本捆绑出站 iDoc XML
让我们看看捆绑的 iDoc XML 是什么样子的。在这里,我们得到了 iDocs 的输出 iDoc XML,大小为 5。
COND_A iDocs 收集到 XML (XI) 消息上
打包 iDocs 时,在主 iDoc 基本类型标记下(在示例 <COND_A04> 中),您将找到重复的 <iDoc> XML 段。在运行时,整个消息将立即传递到 SAP PI/PO 中的映射程序。
捆绑 iDoc 的消息映射和操作映射
在带有iDoc_AAE适配器的 SAP PI/PO 单堆栈版本中,您可以使用从 SAP 导入的 iDoc 作为 Massage Mapping 程序的源消息和 Operation Mapping 程序的源操作。
使用 HTTP iDoc 适配器和新的仅限 Java 的 SAP PI/PO,您无需手动调整 iDoc XSD 来更改出现情况。
用作源消息类型的 iDoc 类型
出站服务接口
使用导入的 iDoc 服务接口作为 iDoc 采集场景的出站服务接口。
iDoc Collection 场景的出站服务接口
总而言之,您可以使用合作伙伴配置文件中的“包大小”和iDoc_AAE发送器适配器来控制出站 iDoc 打包。根据定义的包装尺寸,捆绑过程会有所不同。收集的出站 iDoc 应使用程序RSEOUT00进行处理。该程序应安排为后台作业,以自动处理 iDocs。