SAP PI-在同步方案中发送关于响应消息的异步通知

2020-08-17 07:33发布

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

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


你好

我的要求是创建典型的同步SOAP到SOAP方案,并在响应消息上进行异步通知。

简单地说:

1。 系统A正在向系统B发送信息请求。

2。 系统B发送同步响应。

3。 来自响应消息的一些信息被异步发送到系统C(用于通知返回到系统A的内容)。 当系统C在请求时不可用时,无法阻止同步方案。

4。 响应被同步发送到系统A。

我正在尝试找到实现可重用组件的解决方案,该组件可用于将请求结果异步通知第三系统。

我已经看过Lookup API,但这是为处理同步请求而设计的。

https://help.sap.com/doc/javadocs_nw73_sps05/7.3.5/zh-CN/PI/com/sap/aii/mapping/lookup/LookupService.html

" ...访问器支持对远程系统的同步调用。

Lookup API支持通过JDBC,RFC和SOAP适配器进行访问。 如果要使用第三方适配器执行映射查找,则适配器必须满足以下条件:

-适配器必须支持同步调用。

-适配器不得使用接收方协议..."

有什么想法吗?

非常感谢。

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

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


你好

我的要求是创建典型的同步SOAP到SOAP方案,并在响应消息上进行异步通知。

简单地说:

1。 系统A正在向系统B发送信息请求。

2。 系统B发送同步响应。

3。 来自响应消息的一些信息被异步发送到系统C(用于通知返回到系统A的内容)。 当系统C在请求时不可用时,无法阻止同步方案。

4。 响应被同步发送到系统A。

我正在尝试找到实现可重用组件的解决方案,该组件可用于将请求结果异步通知第三系统。

我已经看过Lookup API,但这是为处理同步请求而设计的。

https://help.sap.com/doc/javadocs_nw73_sps05/7.3.5/zh-CN/PI/com/sap/aii/mapping/lookup/LookupService.html

" ...访问器支持对远程系统的同步调用。

Lookup API支持通过JDBC,RFC和SOAP适配器进行访问。 如果要使用第三方适配器执行映射查找,则适配器必须满足以下条件:

-适配器必须支持同步调用。

-适配器不得使用接收方协议..."

有什么想法吗?

非常感谢。

付费偷看设置
发送
7条回答
Nan4612
1楼-- · 2020-08-17 08:13

用于向系统C发送通知的协议是什么? 因为向系统C发送通知是基于响应消息的,并且您只想在从系统B接收到响应消息后仅向系统C发送通知,所以我想说创建一个简单的SOAP到SOAP同步。 场景,并在响应映射中添加一个UDF来调用Java邮件客户端选项。

当响应消息被映射到发送者系统的结构时,您可以利用java邮件选项并在UDF中使用它。 答:此UDF将根据响应消息向系统C发送电子邮件。 唯一的缺点是-如果响应映射失败-在这种情况下,您可以创建警报规则以向系统C发送电子邮件警报。您还可以在NWA中配置UDS,以包括特定的响应消息详细信息。

谢谢

Sugata

当学会了学习
2楼-- · 2020-08-17 08:00

您好,Przemyslaw,

我去年实施了相同的要求。 我使用了查找API,它工作正常。 是的,确实需要同步调用,但是我正在捕获此异常,因此响应映射不受影响。

对我来说重要的是,我可以清楚地监视消息流,所以我所做的是:

系统A同步调用SAP PI和SAP PI同步调用系统B。在响应映射中,我调用了接收方通道,该通道正在调用另一个(异步)发送方通道-表示另一个标准的异步SAP PI接口。 并将响应返回给发送方系统A。因此,现在我可以在SAP PI监视中看到所有三个消息。

哎,真难
3楼-- · 2020-08-17 08:04

我忘了提到对系统C的通知应该是异步SOAP调用。

Haoba3210
4楼-- · 2020-08-17 08:01

嗨,Przemyslaw!

我会提供查找API 请尝试一下,即使异步Web服务也会将响应返回给发送方系统(" HTTP 200 OK"状态和空的SOAP消息)。

另一种方法可能是开发定制的适配器模块,该模块将组成并发送

关于Evgeniy。

小c菟菟
5楼-- · 2020-08-17 08:03

感谢Evgeniy。

查找API想要的接收者通道。 这样,我们将无法发送异步请求。 在这种情况下,当系统C不可用时,我们将超时。

如果我们能以某种方式直接从UDF调用发送方通道...有什么想法吗?

歪着头看世界
6楼-- · 2020-08-17 07:51

我有能力将消息异步发送到系统C。

我已经在PI中创建了到系统C的肥皂加注方案。

在UDF中,我基于示例代码直接从Java调用webserwise: https://technology.amis.nl/2011/06/29/how-to-call-a-call -a-webservice-from-java-without-webservice-library /

现在,将代码打包到可恢复的功能库中并使其可配置应该很简单。

一周热门 更多>