SAP PI – 通信
SAP PI – 通信
在 SAP PI 中,您可以定义两种类型的通信 –同步和异步。
同步通讯
请求和响应操作调用同步通信,操作后立即返回进程输出。一般而言,您可以说同步场景是发送方进程向接收方发送请求并等待响应。如果接收方发生错误,则发送方应用程序负责重新发送消息。
在这种方法中,发送者可能会在超时后重新发送消息,并且可能存在重复的消息。PI 中的这种方法称为BE(Best Effort)。
考虑两个系统 – A和B。并且,您在两个系统之间引入了一个中间系统 I。系统 A 和系统 I 之间的通信是同步的,而系统 A 和系统 B 之间的通信是异步的。
在这种通信场景中可能会发生以下类型的错误 –
-
应用程序错误– 处理消息时接收端出现错误,发送方不知道此错误并一直等待回复。
-
网络级错误– 在此错误中,发送方和接收方之间的通信网络存在错误。发件人不知道这一点,消息卡在中间,发件人等待操作超时。
-
响应消息中的错误– 在这种情况下,发生错误并且响应消息卡在两者之间并且发件人继续等待。
好处
以下是使用同步通信的主要优势 –
-
无需配置响应消息路由。
-
无需将响应与请求相关联。
-
在此通信中,立即收到响应。
推荐场景
这适用于涉及读取操作的操作,例如查看采购订单。
缺点
以下是使用异步通信的主要缺点 –
-
如果失败,发送方需要再次发送消息。
-
该接收系统应当配置为检查重复的消息。
-
在这种情况下,发送方应用程序被阻止,直到收到响应或发生超时错误。
-
您不能配置多个接收器。
异步通信
在异步通信中,您可以在两个系统之间添加一个中间系统或中间件。当发送方应用程序发送请求时,它不会等待接收方应用程序发送响应。如果由于某种原因出现故障,中间件负责重新发送消息。如果需要,接收系统可以将响应作为单独的异步调用发送回 Sender。
SAP PI 中的这种方法称为Exactly Once (EO)或Exactly Once in Order (EOIO)。
中间系统是一个队列,来自 A 的消息首先添加到队列中,在接收端,它从队列中拉出并发送给接收者。来自系统 B 的响应消息遵循
您还可以根据业务需求使用先进先出 (FIFO) 在某些情况下维护订单。这种情况被称为异步顺序维护或完全按顺序 (EOIO)。
异步通信确保有保证的交付。如果接收器系统在一段时间内不可用,则中间队列会保留消息并保持在那里,直到接收器系统可用并将消息从队列中拉出并发送到接收器系统。
推荐场景
建议用于修改操作,例如创建采购订单或修改采购订单
好处
以下是异步通信的主要优势 –
-
如果出现故障,SAP PI 系统将确保有保证的交付并将重新发送消息。
-
重复检查不需要配置。
-
您可以在这种情况下配置多个接收器。
-
发送方系统和接收方系统不需要同时在线。
-
PI 记录所有通过异步通信发送的消息。
-
没有超时,因为中间系统会保留消息和响应请求。
缺点
以下是异步通信的主要缺点 –
-
在这种情况下,发送方需要自行将响应与请求相关联。
-
响应消息需要单独实现和路由。
-
它不提供立即响应。
SAP PI — 技术
SAP 提供了一个基于 NetWeaver 的中间件,称为 SAP NetWeaver Process Integration。SAP NetWeaver PI 以称为简单对象访问协议 (SOAP-HTTP) 的特定格式传送消息。此消息包含标头和有效负载。标头包含一般信息,例如发送方和接收方信息,有效载荷包含实际数据。
系统可以直接或使用适配器与 SAP NetWeaver PI 通信 –
- 使用应用程序适配器进行通信
- 使用技术适配器进行通信
- 使用行业标准适配器进行通信
- 使用事务适配器进行通信
- 使用代理直接通信