最初のリクエストからプロパティを引き出し、レスポンスが返ってくるまでそれらのプロパティを保存し、特定のリージョンを置き換えて別のサービスに送信するシーケンスをまとめようとしています。私はこれを成功させましたが、レジストリでpayloadFactoryフォーマットをホストし、フォーマットタグ内のキー属性を使用してそれを参照することで、アプローチを改良したいと考えています。
これが私が達成したいことの例です: Sajini's Blog
これが私が現在取り組んでいるコードです:
<sequence xmlns="http://ws.apache.org/ns/synapse">
<payloadFactory>
<format>
<AddEditEmailAddress xmlns="http://tempuri.org/">
<eResponse xmlns:a="http://schemas.datacontract.org/2004/07/NoelGroup.Users.Core.Task.BusinessLayer" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> $1
<Success xmlns="http://schemas.datacontract.org/2004/07/NoelGroup.Users.Task.BusinessLayer">true</Success> $2
</eResponse>
<personId>$3</personId>
</AddEditEmailAddress>
</format>
<args>
<arg xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('default','BROKEN_OBJECT')"/>
<arg xmlns:ns="http://org.apache.synapse/xsd" xmlns:a="http://schemas.datacontract.org/2004/07/NoelGroup.Users.Core.Task.BusinessLayer" expression="get-property('default','EMAILS')"/>
<arg xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('default','PERSON_ID')"/>
</args>
</payloadFactory>
そして、ここに私が望むものがあります:
<sequence xmlns="http://ws.apache.org/ns/synapse">
<payloadFactory>
<format key="conf:/User_Sync_Assets/Email_Req.xml"/>
<args>
<arg xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('default','BROKEN_OBJECT')"/>
<arg xmlns:ns="http://org.apache.synapse/xsd" xmlns:a="http://schemas.datacontract.org/2004/07/NoelGroup.Users.Core.Task.BusinessLayer" expression="get-property('default','EMAILS')"/>
<arg xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('default','PERSON_ID')"/>
</args>
</payloadFactory>