云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

大带宽_idea激活服务器_折扣

小七 141 0

在与新客户机设置新的单向(异步)接口时,偶尔会有一个要求,即该客户机希望在向sappo发送消息后,在http200响应中获得一个简单的技术XML确认。此确认表示SAP PO已成功接收此特定发送的消息。

在这种情况下,状态代码为"200 OK"或"202 Accepted"且有效负载为空的标准技术HTTP响应不足以用作技术确认;发送方客户机还希望响应中包含一个或几个来自原始请求消息的标识符的小负载。

本文的目的是提供一个简单的方法,说明如何在SAP PO中使用简单的sync async bridge设置,并使用一个简单的示例需求来实现这一点。这里的想法是从零开始建立一个工作示例,然后您可以根据自己的需求进行构建。

有关sync async bridges的更多信息,大数据分析技术,我想让您参考关于这个主题的优秀博客文章,这些文章可以在本文的底部找到。

需求

假设客户机将此XML消息发送到SAP PO:

并希望其HTTP 200响应包含一个简单的技术确认XML,该XML还包括原始ID:

此外,我们希望将原始消息从客户端异步发送到接收方系统。

如前所述,这可以通过设置一个sync-async桥来实现。

解决方案的一个可能实现如下:

首先,我们需要创建一些所需的ESR对象,稍后我们将在iflow中使用这些对象。我们需要:

两个外部定义三个服务接口一个消息映射一个操作映射

两个外部定义包含上述两个xml消息的xsd(您可以使用在线xsd生成器基于示例xml消息生成xsd)

MessageFromClientResponseFromServer

三个服务接口如下,使用上述xsd作为源定义:

SIOA_MessageFromClient(设置为outbound/asynchronous)SIIA\ U ResponseFromServer(设置为入站/异步)SIOA\u ResponseFromServer(设置为outbound/asynchronous)

消息映射为:

MM\u MessageFromClient\u到\u ResponseFromServer(实现如下)

操作映射为:

OM\u SIOA\u MessageFromClient\u到\u SIIA\u ResponseFromServer(将消息映射分配给此操作映射)

以上对象的实现为直截了当。消息映射将源消息中的值从映射到到目标消息,如下面的消息映射所示。

为此,我们创建了以下业务组件

BC\uu TEST\uu SenderClient。SenderClient组件是我们发送消息并希望看到技术确认的客户机。将出站接口SIOA\u MessageFromClient与此组件关联。BC\测试\同步应答器。SyncAckResponder组件处理同步发送回发送方的确认响应。将接收方的SIIA\ U ResponseFromServer和发送方的SIOA\ U ResponseFromServer接口关联到此业务组件。BC\uuu TEST\uu AnyOtherAsyncReceiver。AnyOtherAsyncReceiver是希望接收从客户端发送的消息的任何其他系统。我们稍后将为该组件分配一个虚拟入站接口。

我们创建新的通信通道,大数据怎么学,并将它们与业务组件关联,如下所示:

BC_uuutest_uuusenderclient| CC_MessageFromClient_BestEffort_SOAP_SenderBC|U测试|U同步应答器| CC|U应答器| SOAP|U接收器BC_uutest_uusyncackresponder| CC_uresponsefromserver_ubesteffort_usoap_SenderBCïu TESTïAnyOtherAsyncReceiver | CCïMessageFromClientïSOAPïReceiver

对于BCïu TESTïSenderClient | CCïMessageFromClientïBestEffortïSOAPïSender,软件企业有哪些,使用服务质量参数"Best Effort"的SOAP发件人通道默认值,但是设置模块链如下:

对于BC\uu TEST\uu SyncAckResponder\CC\u ResponseFromServer\u SOAP\u Receiver通信通道,将目标URL设置为:

https://:/XISOAPAdapter/MessageServlet?信道=:BC\uuu测试\uuu同步响应者:CC\u ResponseFromServer\u BestEffort\u SOAP\u Sender

请使用有效的用户,以便呼叫成功。SOAP接收方通道对SOAP发送方通道进行内部调用。

在"高级"选项卡中,为名为msgid:

的XHeaderName1设置变量传输绑定,然后,在模块链中,确保XHeaderName1将由DynamicConfigurationHeader记录中的correlationId值填充,该记录是先前通过BC_utest_uusenderclient | CC_MessageFromClient _BestEffort_SOAP_Sender通信通道的模块链中的DynamicConfigurationBean填充的。为此,智能建站软件,我们可以使用dynamicconfigurationbean。有关这一原则的更多信息,请参阅:https://blogs.sap.com/2009/06/18/unknown-use-case-of-dynamicconfigurationbean-store-file-name-to-jms-header-without-mapping/

对于其余的设置,使用默认值。

在| BC|U TEST|U SyncAckResponder | CC|U ResponseFromServer|U BestEffort|SOAP|Sender communication channel中,设置服务质量最后,在模块链中添加DynamicConfigurationBean和NotifyResponseBean并移除默认值sap.com/com.sap.aii.af公司.soapadapter/XISOAPAdapterBean来自模块链

我们还需要创建一个对象,大数据入门,这就是此通道的发送方协议。这需要通过sappo中的标准绑定检查,以便成功调用通信通道。最后,我们为任何其他异步接收器提供了一个SOAP接收器通道。细节在这里并不重要;其思想是MessageFromClient消息可以成功地发送到预期的异步接收方目的地。

所以现在我们的更改列表中有以下组件:

激活更改列表。现在,我们可以在Netweaver Developer Studio中开始创建iflow。

从收件人列表iflow开始:

单击发件人系统的下一步并填写发件人系统:

在另一个选项卡中添加两个收件人:

单击"完成"后,我们将看到我们的流程:

分配先前创建的参考频道。通信信道应该总是有一个选择。

为BC\u TEST\u任何其他异步接收器分配一个虚拟接口

为BC\u TEST\u SyncAckResponder的分支分配操作映射OM\u SIOA\u MessageFromClient\u to\u SIIA\u ResponseFromServer:

您现在拥有以下信息。保存、激活和部署。

此iflow的客户端发送方的端点是SOAP发送通道BC_uuutest_uusenderClient | CC_MessageFromClient_BestEffort_SOAP_sender。这个端点的URL是:

让我们用Postman(在下面的屏幕截图中使用)或SoapUI之类的测试客户端调用这个端点来测试iflow。请求在上半部分,响应在下半部分。

在SAP PO消息监视概述中,我们发现客户端发送的消息有两个条目: