SAP PI - 沟通


在 SAP PI 中,您可以定义两种类型的通信 -同步异步

同步通讯

同步通信由请求和响应操作调用,操作后立即返回处理输出。一般来说,同步场景是指发送方进程向接收方发送请求并等待响应。如果接收方发生错误,则发送方应用程序负责再次发送消息。

在这种方法中,发送方可能会在超时后重新发送消息,并且可能存在重复的消息。这种方法在 PI 中被称为BE(Best Effort)

考虑两个系统 – AB。并且,您在两个系统之间引入了一个中间系统 I。系统A和系统I之间的通信是同步的,系统A和系统B之间的通信是异步的。

同步通讯

在这种通信场景中可能会发生以下类型的错误 -

  • 应用程序错误- 处理消息时接收方出现错误,发送方不知道此错误并继续等待回复。

  • 网络级错误- 在此错误中,发送方和接收方之间的通信网络存在错误。发送者不知道这一点,消息被卡在中间,发送者等待直到操作超时。

错误
  • 响应消息中的错误- 在这种情况下,会发生错误,响应消息会卡在中间,发送者会继续等待。

优点

以下是使用同步通信的主要优点 -

  • 无需配置响应消息路由。

  • 无需将响应与请求关联起来。

  • 在此通信中,立即收到响应。

推荐场景

这适用于涉及读取操作的操作,例如查看采购订单。

缺点

以下是使用异步通信的主要缺点 -

  • 如果失败,发送者需要重新发送消息。

  • 接收系统应配置为检查重复消息。

  • 在这种情况下,发送方应用程序将被阻止,直到收到响应或发生超时错误。

  • 您无法配置多个接收器。

异步通信

在异步通信中,您可以在两个系统之间添加中间系统或中间件。当发送方应用程序发送请求时,它不会等待接收方应用程序发送响应。如果由于某种原因失败,中间件负责重新发送消息。如果需要,接收系统可以将响应作为单独的异步调用发送回发送方。

SAP PI 中的这种方法称为“精确一次”(EO)“按顺序精确一次”(EOIO)

异步通信

中间系统是一个队列,来自 A 的消息首先添加到队列中,在接收者端,将其从队列中拉出并发送到接收者。系统 B 的响应消息如下

SAP PI 中的方法

您还可以根据业务要求在某些情况下使用先进先出 (FIFO) 来维持顺序。这种情况称为异步维护顺序或精确一次按顺序 (EOIO)。

异步通信确保有保证的交付。如果接收方系统在一段时间内不可用,则中间队列会保留该消息并保留在那里,直到接收方系统可用并将消息从队列中拉出并发送到接收方系统。

推荐场景

建议用于创建采购订单或修改采购订单等修改操作

优点

以下是异步通信的主要优点 -

  • 如果发生故障,SAP PI 系统可确保有保证的传送并将重新发送消息。

  • 重复检查无需配置。

  • 在这种情况下,您可以配置多个接收器。

  • 发送方系统和接收方系统不需要同时在线。

  • PI 记录通过异步通信发送的所有消息。

  • 由于中间系统保留消息和响应请求,因此不会超时。

缺点

以下是异步通信的主要缺点 -

  • 在这种情况下,发送方需要自行将响应与请求关联起来。

  • 响应消息需要单独实现和路由。

  • 它不提供立即响应。

SAP PI — 技术

SAP 提供了一个基于 NetWeaver 的中间件,称为 SAP NetWeaver Process Integration。SAP NetWeaver PI 以称为简单对象访问协议 (SOAP-HTTP) 的特定格式传送消息。该消息包含标头和有效负载。标头包含一般信息,例如发送者和接收者信息,有效负载包含实际数据。

系统可以直接与 SAP NetWeaver PI 通信或使用适配器进行通信 -

  • 使用应用程序适配器进行通信
  • 使用技术适配器进行通信
  • 使用行业标准适配器进行通信
  • 使用事务适配器进行通信
  • 使用代理直接通信