SAP IDOC 入站和出站处理配置

2021-10-28 12:16发布


          点击此处--->   EasySAP.com 群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)

https://docs.oracle.com/cd/B14099_19/integrate.1012/b14061/processing.htm


一种 为入站和出站处理配置 SAP

在入站(客户端)处理期间,IDoc 被传输到接口并存储在 R/3 系统中。文档数据是在第二步中生成的,也是在工作流的过程中生成的。

出库处理 在 SAP 中涉及 事件处理。SAP 中的事件定义为对象中发生状态更改。发生相关状态更改时会创建事件。以下主题描述了如何启用入站和出站 SAP 处理。

  • 配置 SAP 入站处理

  • 配置 SAP 出站处理

配置 SAP 入站处理

SAP 入站处理要求上游系统将 IDoc 传输到 文档接口通过 R/3 系统端口。因此,您不必在入站合作伙伴配置文件中指定端口;IDoc 接口只需将上游系统识别为端口。 端口定义,为上游系统提供唯一 ID,必须可用于该端口。这个端口定义的技术参数可以(通常是)被上游系统覆盖。

如果上游系统被识别,则 IDoc 将保存在数据库中。如果在合作伙伴配置文件中使用相应的消息定义了合作伙伴,则会进一步处理 IDoc。这是在第二步中独立完成的。这确保了外部系统可以快速可靠地(自动)接收数据。

您必须执行以下步骤来配置 SAP 入站 IDoc 处理:

  1. 配置逻辑系统。

  2. 配置分发模型。

  3. 定义入站合作伙伴资料。

配置逻辑系统

在任何分布式环境中,每个参与系统都必须有一个唯一的 ID 以避免混淆。在 SAP 中,名称逻辑系统用作唯一 ID。此名称明确分配给 SAP 中的一个客户端系统。

定义逻辑系统

定义一个 合乎逻辑的 系统:

  1. 运行销售交易。

    执行销售交易
    插图说明ale_saletransaction.gif

    这 显示 IMG 窗口显示。

    显示 IMG 窗口
    插图说明ale_inbound1.gif

    执行以下步骤:

    1. 展开发送和接收系统。

    2. 展开逻辑系统

    3. 选择定义逻辑系统。

  2. 单击 IMG - 活动图标。

    显示消息窗口。它表明该表是跨客户端的。

    消息窗口
    插图说明 ale_imgmessage.gif

  3. 单击复选标记图标以继续。

    将显示更改视图“逻辑系统”:概览窗口。

    逻辑系统概述
    插图说明ale_inbound2a.gif

  4. 单击新条目。

    将显示新条目:已添加条目概览窗口。

    新条目窗口
    插图说明 ale_inbound4a.gif

  5. 输入逻辑系统,例如,ORACLETDS,在 Log.System列并在Name列中提供说明

  6. 单击保存。

    这 显示工作台请求提示对话框。

    提示工作台请求对话框
    插图说明ale_inbound4.gif

  7. 单击创建请求图标。

    这 显示创建请求对话框。

    创建请求窗口
    插图说明ale_inbound5.gif

  8. 为您的请求输入名称和描述,然后单击保存。

    您配置的逻辑系统(例如,ORACLETDS)现在已添加到列表中。

    新的逻辑系统上市
    插图说明 ale_logicalsysdisplay.gif

配置分布模型

分布模型用于描述逻辑系统之间的 ALE 消息流。业务对象根据独特的分发模型分发给连接的接收者,该模型可以包含根据所涉及的业务对象的类型而具有不同复杂性的规则。

定义分布模型

定义分布模型:

  1. 运行bd64事务。

    执行 bd4 事务
    插图说明ale_nbd64.gif

    这 显示分布模型窗口被显示。

    分销模式
    插图说明ale_distmodel1.gif

  2. 单击菜单栏中的分布模型。

    切换加工方式
    插图说明ale_distmodel2.gif

  3. 选择切换处理模式

    显示分布模型窗口切换到更改分布模型。

    改变分销模式
    插图说明ale_distmodel3.gif

  4. 单击创建模型视图。

    这 显示创建模型视图对话框。

    创建模型视图对话框
    插图说明ale_inbound7.gif

  5. 短文本字段中输入模型视图名称,技术名称字段中输入名称,该名称也用作描述。

  6. 单击复选标记图标以输入信息。

    您将返回主 更改分布模型窗口。您配置的分发模型现在已添加到列表中。

    新的分销模式
    插图说明ale_distmodel4.gif

  7. 单击添加消息类型。

    这 显示添加消息类型对话框。

    添加消息类型对话框
    插图说明ale_inbound8.gif

    执行以下步骤:

    1. SenderReceiver字段中,输入您配置的逻辑系统,例如,ORACLETDS。

      您可以单击每个字段右侧的图标来浏览逻辑系统列表。

    2. 消息类型字段中,输入要使用的消息类型,例如 MATMAS。

      您可以单击每个字段右侧的图标来浏览可用消息类型列表。

  8. 单击复选标记图标以输入信息。

    您将返回到主更改分布模型窗口。

  9. 点击 节省。

定义合作伙伴档案

合作伙伴资料是数据交换的先决条件。这涉及定义谁可以与 SAP 系统交换消息以及使用哪个端口。

定义合作伙伴档案

要定义合作伙伴资料:

  1. 运行we20事务。

    执行we20事务
    插图说明 ale_we20.gif

    这 显示合作伙伴资料窗口。

    合作伙伴资料窗口
    插图说明 ale_pprofile1.gif

  2. 在左窗格中,展开 合作伙伴类型 LS 并从列表中选择您配置的逻辑系统,例如,ORACLETDS。

    在右侧窗格中,Partn.number 字段指的是逻辑系统的名称。

    合作伙伴资料窗口
    插图说明ale_pprofile2.gif

  3. 单击保存。

  4. 入站参数表中,单击创建入站参数图标。

    合作伙伴配置文件:入站参数窗口随即显示。

    合作伙伴资料:入站参数窗口
    插图说明ale_inbound11.gif

  5. 在里面 消息类型字段,输入您要使用的消息类型,例如 MATMAS。

    您可以单击每个字段右侧的图标来浏览可用消息类型列表。

    默认情况下选择入站选项选项卡。

  6. 流程代码字段中,输入要使用的流程代码,例如 MATM。

    您可以单击每个字段右侧的图标来浏览可用过程代码列表。

  7. 在里面 按功能模块区域处理,选择以下选项之一:

    • 由后台程序触发。

      在这种情况下,适配器将 IDoc 写入 SAP 数据库,该数据库将被立即处理。

    • 立即触发。

      在这种情况下,适配器等待 SAP 系统处理 IDoc。这可能需要 1 到 15 分钟。

  8. 单击保存。

配置 SAP 出站处理

事件创建必须由您或 SAP 实施。事件由特定的应用程序(事件创建者)创建,然后在系统范围内发布。任意数量的接收器都可以使用自己的响应机制来响应事件。事件通常定义为对象类型的组件。

SAP 伪事件不由 SAP 事件管理器处理,而是从 ABAP 程序或远程函数调用(使用 目标参数)。

相关概念和术语

以下主题列出并定义了与 SAP 和 SAP 事件处理。

客户端和服务器程序

RFC程序 对于非 SAP 系统,可以作为 RFC 通信中的调用方或被调用程序。有两种类型的 RFC 程序:

  • RFC客户端

  • RFC服务器

RFC 客户端是调用RFC 来运行RFC 服务器提供的功能的实例。可以远程调用的函数称为RFC函数,RFC API提供的函数称为RFC调用。

SAP网关

这 SAP 网关是一个安全的应用服务器。除非先前已从 SAP 预先注册,否则不接受任何连接演示客户端。服务器连接将自身呈现给网关并公开一个程序标识符。如果在已注册的程序 ID 列表中找到程序标识符,则网关服务器将提供到服务器的连接,该服务器“接受”连接。然后将此 ProgramID 与 SAP 内的 RFC 目标链接,这使 SAP 功能模块和 ALE 文档(IDoc 或 BAPI IDoc)能够路由到目标。RFC 目标用作标记以向 SAP 用户屏蔽程序 ID。

RFC 服务器程序可以注册到 SAP 网关并等待传入的 RFC 调用请求。RFC 服务器程序在 SAP 网关的程序 ID 下注册自己,而不是为特定的 SAP 系统注册。

在 SAPGUI 中,必须使用事务 SM59 定义目标,使用连接类型 T 和注册模式。此外,该条目必须包含有关注册 RFC 服务器程序的 SAP 网关的信息。

程序 ID 和负载平衡

如果 网关 服务器具有到特定服务器实例的连接,另一个服务器实例将自身呈现给网关,然后网关提供连接,然后开始在负载平衡模式下运行。使用专有算法,网关根据需求和总处理时间向每个服务器发送不同的消息。当消息由架构和应用程序验证时,这可能会导致不可预测的结果。

使用单个 SAP 程序 ID 在 Oracle 应用服务器中配置多个事件时,SAP 会负载平衡事件数据。例如,如果多个远程函数调用或 BAPI 使用相同的程序 ID(例如,ORACLETDS)和多个 SAP侦听器使用此程序 ID 进行配置,然后 SAP 向一个侦听器发送一个请求,然后向另一个侦听器发送下一个请求,依此类推。

SAP Gateway Server 中存在负载平衡算法。此机制专用于 SAP 应用程序开发,可以通过比较连接的总吞吐量、等待状态的次数等来工作。这意味着一个连接可能会收到九条消息,而第二个连接可能会收到一条消息。如果 9 条消息中的 5 条被拒绝进行模式验证,而另一个连接上的一条消息被拒绝进行模式验证,您可能怀疑自己丢失了SAP 事件处理消息。

服务器(从 SAP 入站到适配器)情况中的负载平衡是通过将适配器的多个实例连接到 SAP 系统来处理的。然后 SAP 系统将对连接进行负载平衡。您无法调整此性能。

客户端(从适配器出站到 SAP)情况下的负载平衡仅由 SAP 应用程序设计处理。如果您的系统支持消息服务器,那么您可以在客户端情况下进行负载平衡。如果您只有一台应用程序服务器,则除非通过应用程序服务器调整(例如允许的最大连接数或连接的时间限制),否则无法进行负载平衡。

SAP 系统默认限制是 100 个 RFC(通信)或适配器用户。每个用户在 SAP 系统的应用服务器上占用的内存超过 2 MB,根据工作负载或多或少在适配器上。

连接池

连接池是一组到特定目的地的客户端连接。池可能会自动创建到指定远程系统的新连接或返回一个已经存在的连接。它还提供了在不再需要连接时将连接返回到池的方法。

连接池可以检查哪些连接不再使用并且可以关闭以节省系统资源。调用应用程序可以配置池检查连接的时间段以及连接超时的时间段。

池始终绑定到一个用户 ID 和密码,这意味着从此池中获取的所有连接也将使用这些凭据。SAP 连接始终绑定到 SAP 用户 ID 和 SAP 客户端编号。

如果您使用设置为 1 的池大小登录,则不会创建连接池(1 个用户 ID – 1 个进程线程)。如果您使用大于 1 的池大小登录,则会创建一个大小为 n(您指定的数字)的池。

有关连接池的更多信息,请参阅 SAP JCO API 文档。

在 SAPGUI 中注册您的程序 ID

启用您的 SAP 系统要向 SAP 事件适配器发出以下调用或接口,您必须在 RFC 目标下注册您的程序 ID。

  • 远程函数调用 (RFC)

  • 业务应用程序编程接口 (BAPI)

  • 中间文件 (IDoc)

RFC 目标是一个符号名称(例如,ORACLETDS),用于将事件定向到目标系统,屏蔽程序 ID。程序 ID 在 SAPGUI 和事件适配器中配置。

注册您的程序 ID

注册您的 程序编号:

  1. 启动 SAP GUI 并登录到 SAP 系统。

  2. 选择ToolsAdministrationNetwork,然后选择 RFC 目标。

  3. 运行SM59事务。

    这 显示和维护 RFC 目的地窗口被显示。

    显示和维护 RFC 目的地窗口
    插图说明 iway_sapu_tcpipconnect.gif

  4. 选择 TCP/IP 连接并单击创建。

    显示 RFC 目标窗口。

    RFC 目的地窗口
    插图说明 iway_sapu_rfcddestination.gif

    提供以下信息:

    1. RFC 目标字段中,输入名称,例如,ORACLETS

      您在此字段中输入的值区分大小写。

    2. 连接类型字段中,为目标类型 TCP/IP 输入 T。

    3. 说明字段中,输入简短说明。

  5. 单击工具栏中的保存或从目标菜单中选择保存。

    显示 RFC 目标 ORACLETS 窗口。

    RFC 目的地窗口
    插图说明 iway_sapu_iwaydest.gif

    执行以下步骤:

    1. 为了 激活类型,单击注册。

    2. 在里面 程序字段,输入ORACLETDS。

  6. 单击工具栏中的保存或从目标菜单中选择保存。

  7. 确保您的事件适配器正在运行。

  8. 验证 SAP 系统和 OracleAS Adapter for SAP 是否正在通信。

  9. 点击 测试连接。

测试 SAP 事件适配器

在里面 SAP Server,SE37 事务使您能够将 RFC(远程函数调用)或 BAPI(业务应用程序编程接口)发送到任何 RFC 目标。有关 RFC 目标的更多信息,请参阅在 SAPGUI 中注册您的程序 ID

通过手动发送 RFC 或 BAPI 测试 SAP 事件适配器

为了测试 SAP 事件适配器:

  1. 在Function Builder中,选择一个功能模块,例如,RFC_CUSTOMER_GET

    函数生成器:初始屏幕窗口
    插图说明 iway_sapu_functionbuilder.gif

  2. 要选择单个测试,请按 F8 并单击 Single Test 图标或选择Function module,选择 Test 然后选择 Single Test。

  3. 输入一个 RFC 目标系统,例如,ORACLETDS。

  4. 输入特定 RFC 模块的输入数据,例如 AB*。

  5. 要执行,请按 F8。

    这 测试功能模块:显示初始屏幕窗口。

    测试功能模块:初始屏幕窗口
    插图说明 iway_sapu_testfunctionmod.gif

  6. 在 SAP GUI 中输入数据并单击执行。

    函数名称和输入数据通过 RFC 传输,以在 Oracle 应用服务器上使用 SAPGUI 中输入的参数创建 XML 文档。

事件适配器的应用程序链接嵌入配置

这 SAP 事件适配器从 SAP 接收 IDoc(中间文档)。要将 SAP 系统配置为将 IDoc 发送到 SAP 事件适配器,请使用 ALE(应用程序链接嵌入)配置来:

  1. 注册您的程序 ID 图形用户界面。

  2. 定义一个端口。

  3. 创建逻辑系统。

  4. 创建合作伙伴资料。

  5. 为合作伙伴和消息类型创建分发模型。

  6. 测试 SAP 事件适配器。

定义端口

端口标识向何处发送消息。只有在之前创建了 RFC 目标时才能使用此端口。

定义端口

要定义端口:

  1. 在 ALE 配置中,选择ToolsBusiness CommunicationsIDocs BasisIDoc,然后选择 Port Definition。

    您还可以运行 WE21 事务。

    将显示创建 tRFC 端口窗口。

    创建 tRFC 端口窗口
    插图说明 iway_sapu_defineport.gif

  2. Ports下的左窗格中,选择 Transactional RFC 并单击 Create。

  3. 选择生成端口名称。

    系统生成端口名称。

  4. 输入要通过此端口发送的 IDoc 版本。

  5. 单击您创建的目标,例如,ORACLETDS。

  6. 保存会话,记下系统生成的 RFC 端口。

创建逻辑系统

一种类型的合作伙伴是逻辑系统。一个逻辑系统管理一个或多个 RFC 目的地。

创建逻辑系统

创建一个名为 ORACLETS 的逻辑系统:

  1. 在ALE配置中,进入区域菜单选择SALE交易。

  2. 选择 SAP 参考 IMG。

  3. 展开以下节点:基本组件应用程序链接启用 (ALE)发送和接收系统逻辑系统和定义逻辑系统。

  4. 单击定义逻辑系统旁边的复选标记。

    更改视图“逻辑系统”:概览窗口显示逻辑系统及其名称的列表。

    更改视图“逻辑系统”:概览窗口
    插图说明 iway_sapu_iwaylog.gif

  5. 单击新条目。

    新条目:添加条目概览窗口显示新日志系统的 Log.System 和 Name 列。

    新条目:已添加条目概览窗口
    插图说明 iway_sapu_newentries.gif

  6. 为日志系统键入一个条目,例如,ORACLETDS。

  7. 名称列中,输入合作伙伴配置文件的名称(描述)。

  8. 单击保存以保存会话。

创建合作伙伴档案

合作伙伴配置文件是使用 IDoc 接口与贸易伙伴进行电子数据交换的参数定义。要使用 IDoc 接口与合作伙伴通信,您必须创建合作伙伴配置文件。

创建合作伙伴档案

要创建合作伙伴资料:

  1. 在 SAP GUI 中,选择ToolsBusiness CommunicationIDoc Basis和 Partner profile。

    您还可以运行 WE21 事务。

    合作伙伴配置文件:出站参数窗口将显示并显示用于指定合作伙伴配置文件详细信息的字段。

    合作伙伴资料:出站参数窗口
    插图说明 iway_sapu_partnerprofile.gif

    执行以下步骤:

    1. 选择合作伙伴类型 LS(逻辑系统)。

    2. 按 F5(创建)。

  2. 对于类型,输入用户。

  3. 对于代理,输入当前用户 ID,或者您可以选择其他代理类型。

  4. 在出站参数表控件下,选择创建出站参数。

    合作伙伴类型为LS,消息类型为DEBMAS,即IDoc文档类型。

  5. 将 Partn.funct 留空。

  6. 单击出站选项选项卡。

    提供以下信息:

    1. 根据您的性能要求,单击 Transfer IDoc Immed 或 Collect IDocs。

    2. 对于 IDoc,输入消息类型,例如 DEBMAS。

    3. 输入接收器端口,例如 A000000036。

  7. 单击保存以保存会话。

    将显示合作伙伴资料摘要窗口。它包含您创建的逻辑系统的信息。

    合作伙伴资料摘要窗口
    插图说明 iway_sapu_savedsession1.gif

收集的 IDoc

在入库处理(服务模式)期间在任何平台上使用收集的 IDoc 时,如果 DOCNUM 字段对于每个 IDoc 没有唯一的单据编号,则系统为收集的 IDoc 文件中的每个抬头记录创建一个 IDoc,并复制每个 IDoc 的数据身份证。

确保 DOCNUM 字段包含在 EDI_DC40 结构中,并且每个 IDoc 在收集的 IDoc 文件中都有一个唯一的序列号。

为合作伙伴和消息类型创建分发模型

您必须为您指定的合作伙伴和消息类型创建分发模型。

创建分布模型

创建一个名为 ORAMOD 的分布模型:

  1. 在 SAP GUI 中,选择ToolsAcceleratedSAPCustomizing,然后选择 Project Management。

    您还可以运行 BD64 事务。

    显示“显示分布模型”窗口。

  2. 选择创建模型视图。

    如果需要,在分发模型/切换处理模式中将处理模式切换为编辑。

  3. 为您的新模型视图输入一个简短的文本字符串和一个技术名称。

  4. 单击保存。

    显示分布模型更改窗口,显示分布模型的树结构。

    分销模式变更窗口
    插图说明 iway_sapu_distributemodel.gif

    执行以下步骤:

    显示添加消息类型框。它包含用于指定消息的发送者和接收者以及消息类型的字段。

    添加消息类型对话框
    插图说明 iway_sapu_addmessagetype.gif

    提供以下信息:

    1. 发件人字段中,提供指向 SAP 系统的发件人,该系统会发送 IDoc,例如I46_CLI800

      在这种情况下,发送方是 SAP 4.6B 系统。

    2. 接收方字段中,提供逻辑系统,例如,ORACLETDS。

    3. 消息类型字段中,提供 IDoc 的类型,例如 DEBMAS。

    4. 在分布模型树中,选择一个新的模型视图。

    5. 在右侧,选择添加消息类型。

  5. 单击复选标记图标。

  6. 单击保存。

    Change Distribution Model 窗口显示用于将消息类型 DEBMAS 从 I46_CLI800 SAP 系统发送到 ORACLETS 逻辑系统的新模型视图。

    更改分布模型窗口
    插图说明 iway_sapu_changedistmodel.gif

    您现在已准备好测试与逻辑系统的连接。

测试 SAP ALE 配置

在 SAP 服务器中,BD12 事务使您能够将 IDoc 发送到任何逻辑系统,例如,发送到事件适配器。

测试 SAP ALE 配置

要测试 SAP 应用程序链接嵌入 (ALE) 配置:

  1. 在发送客户窗口中,在输出类型字段中输入 IDoc 消息类型,例如 DEBMAS 

    发送客户窗口
    插图说明 iway_sapu_sendcustomers.gif

  2. 逻辑系统字段中,输入逻辑系统,例如,ORACLETDS。

  3. 单击运行。

    SAP 事件适配器接收 XML 格式的 IDoc。预计事件适配器不会有任何响应。

    将显示确认窗口。

    确认讯息
    插图说明 iway_sapu_testcomplete.gif


赞赏支持