PayloadFactory - 丰富响应
PayloadFactory - Enrich with Response
我做了一个标注,响应是这样的:
<ns:return>
<ax2446:contract>
<ax2446:array>variable1</ax2446:array>
<ax2446:array>value1</ax2446:array>
</ax2446:contract>
<ax2446:contract>
<ax2446:array>variable2</ax2446:array>
<ax2446:array>value2</ax2446:array>
</ax2446:contract>
<ax2446:contract>
<ax2446:array>variable3</ax2446:array>
<ax2446:array>value3</ax2446:array>
</ax2446:contract>
<ax2446:documents>
<ax2446:array>attachement1</ax2446:array>
<ax2446:array>D:\AUTO\filename-1.txt</ax2446:array>
</ax2446:documents>
<ax2446:documents>
<ax2446:array>attachment2</ax2446:array>
<ax2446:array>D:\AUTO\filename-2.txt</ax2446:array>
</ax2446:documents>
<ax2446:process>TEST_PROCESS</ax2446:modulo>
</ns:return>
我想用合同值创建一个新的负载(数字可以改变)
<p:instantiateProcess xmlns:p="http://carbon.sample">
<xs:process xmlns:xs="http://carbon.sample">TEST_PROCESS</xs:process>
<ns:contract xmlns:ns="http://carbon.sample">
<xs:array xmlns:xs="http://carbon.sample">variable1</xs:array>
<xs:array xmlns:xs="http://carbon.sample">value1</xs:array>
</ns:contract>
<ns:contract xmlns:ns="http://carbon.sample">
<xs:array xmlns:xs="http://carbon.sample">variable2</xs:array>
<xs:array xmlns:xs="http://carbon.sample">value2</xs:array>
</ns:contract>
<ns:contract xmlns:ns="http://carbon.sample">
<xs:array xmlns:xs="http://carbon.sample">variable3</xs:array>
<xs:array xmlns:xs="http://carbon.sample">value3</xs:array>
</ns:contract>
</p:instantiateProcess>´
我通过以下方式获得所有合同:
<property
expression="//ns:return/ax2431:contract"
name="contract" scope="default" type="STRING"
xmlns:ax2431="http://vo.carbon.sample/xsd" xmlns:ns="http://carbon.sample"/>
我尝试使用 payloadfactory,因为我不知道如何强化(如果使用此调解器是正确的)消息以调用新的 Web 服务。或者如果我必须用迭代器制作有效负载...
有人可以帮助我吗?谢谢
获得contract列表后,您可以使用iterate mediator来迭代列表,在迭代器中,您可以添加payloadFactory mediator到创建有效载荷,然后,同时您可以将修改后的有效载荷发送到新的 Web 服务。
请找到以下链接,其中详细说明了如何使用迭代调解器。
http://sparkletechthoughts.blogspot.com/2012/08/how-to-use-iterator-mediator-to-iterate.html
您似乎有几个选择:
- 使用负载工厂
- 使用 XSLT
- 使用脚本冥想器
我怀疑所有 3 个都能得到您想要的结果。这是一个你觉得最舒服的问题。就个人而言,我会沿着 Script mediator 路线走下去,在两个 XML 有效负载之间进行映射,这是一个示例:http://nimbleapi.com/2016/05/javascript-mapping-between-xml-payloads/
除了XSLT或Script meditator,ForEach mediator也是一个选项。
我做了一个标注,响应是这样的:
<ns:return>
<ax2446:contract>
<ax2446:array>variable1</ax2446:array>
<ax2446:array>value1</ax2446:array>
</ax2446:contract>
<ax2446:contract>
<ax2446:array>variable2</ax2446:array>
<ax2446:array>value2</ax2446:array>
</ax2446:contract>
<ax2446:contract>
<ax2446:array>variable3</ax2446:array>
<ax2446:array>value3</ax2446:array>
</ax2446:contract>
<ax2446:documents>
<ax2446:array>attachement1</ax2446:array>
<ax2446:array>D:\AUTO\filename-1.txt</ax2446:array>
</ax2446:documents>
<ax2446:documents>
<ax2446:array>attachment2</ax2446:array>
<ax2446:array>D:\AUTO\filename-2.txt</ax2446:array>
</ax2446:documents>
<ax2446:process>TEST_PROCESS</ax2446:modulo>
</ns:return>
我想用合同值创建一个新的负载(数字可以改变)
<p:instantiateProcess xmlns:p="http://carbon.sample">
<xs:process xmlns:xs="http://carbon.sample">TEST_PROCESS</xs:process>
<ns:contract xmlns:ns="http://carbon.sample">
<xs:array xmlns:xs="http://carbon.sample">variable1</xs:array>
<xs:array xmlns:xs="http://carbon.sample">value1</xs:array>
</ns:contract>
<ns:contract xmlns:ns="http://carbon.sample">
<xs:array xmlns:xs="http://carbon.sample">variable2</xs:array>
<xs:array xmlns:xs="http://carbon.sample">value2</xs:array>
</ns:contract>
<ns:contract xmlns:ns="http://carbon.sample">
<xs:array xmlns:xs="http://carbon.sample">variable3</xs:array>
<xs:array xmlns:xs="http://carbon.sample">value3</xs:array>
</ns:contract>
</p:instantiateProcess>´
我通过以下方式获得所有合同:
<property
expression="//ns:return/ax2431:contract"
name="contract" scope="default" type="STRING"
xmlns:ax2431="http://vo.carbon.sample/xsd" xmlns:ns="http://carbon.sample"/>
我尝试使用 payloadfactory,因为我不知道如何强化(如果使用此调解器是正确的)消息以调用新的 Web 服务。或者如果我必须用迭代器制作有效负载...
有人可以帮助我吗?谢谢
获得contract列表后,您可以使用iterate mediator来迭代列表,在迭代器中,您可以添加payloadFactory mediator到创建有效载荷,然后,同时您可以将修改后的有效载荷发送到新的 Web 服务。
请找到以下链接,其中详细说明了如何使用迭代调解器。
http://sparkletechthoughts.blogspot.com/2012/08/how-to-use-iterator-mediator-to-iterate.html
您似乎有几个选择:
- 使用负载工厂
- 使用 XSLT
- 使用脚本冥想器
我怀疑所有 3 个都能得到您想要的结果。这是一个你觉得最舒服的问题。就个人而言,我会沿着 Script mediator 路线走下去,在两个 XML 有效负载之间进行映射,这是一个示例:http://nimbleapi.com/2016/05/javascript-mapping-between-xml-payloads/
除了XSLT或Script meditator,ForEach mediator也是一个选项。