Json 在WSO2 ESB/EI中向salesforce发送多条记录
我有多个记录,需要将每个记录推送到Salesforce。有人能帮我达到这个要求吗 输入请求:Json 在WSO2 ESB/EI中向salesforce发送多条记录,json,iterator,wso2esb,wso2ei,Json,Iterator,Wso2esb,Wso2ei,我有多个记录,需要将每个记录推送到Salesforce。有人能帮我达到这个要求吗 输入请求: [ { "Lead Source":"LDV Facebook - Book a Test Drive", "Preferred Model":"T60 4WD Diesel Dual Cab Ute", "Email":"Test1@bigpond.com", "Postal Code":"4211", "Enquiry Date":"
[
{
"Lead Source":"LDV Facebook - Book a Test Drive",
"Preferred Model":"T60 4WD Diesel Dual Cab Ute",
"Email":"Test1@bigpond.com",
"Postal Code":"4211",
"Enquiry Date":"27-03-20",
"Date Sent":"01-04-20",
"Mobile":"+61 414 994 774",
"Name":"Stephen Ross",
"Dealer":"QLD -Von Bibra Gold Coast - 554216"
},
{
"Lead Source":"LDV i-Motor - Get a Quote",
"Preferred Model":"T60 4WD Diesel Dual Cab Ute",
"Email":"Test2@gmail.com",
"Postal Code":"4209",
"Enquiry Date":"27-03-20",
"Date Sent":"01-04-20",
"Mobile":"+61 423 927 999",
"Name":"Jaxon",
"Dealer":"QLD - Von Bibra Gold Coast - 554216"
},
{
"Lead Source":"LDV i-Motor - Get a Quote",
"Preferred Model":"T60 4WD Diesel Dual Cab Ute",
"Email":"Test3@hotmail.com",
"Postal Code":"4209",
"Enquiry Date":"28-03-20",
"Date Sent":"01-04-20",
"Mobile":"+61 447809 834",
"Name":"Brendan Dunleavy",
"Dealer":"QLD - Von Bibra Gold Coast - 554216"
}
]
<iterate expression="//jsonArray/jsonElement" id="LDVid" sequential="true">
<target>
<sequence>
<property description="incomingRequest" expression="$body/*" name="incomingRequest" scope="default" type="OM"/>
<!-- Business process related sequence -->
<sequence key="ProcessSequence"/>
</sequence>
</target>
</iterate>
代理代码:
[
{
"Lead Source":"LDV Facebook - Book a Test Drive",
"Preferred Model":"T60 4WD Diesel Dual Cab Ute",
"Email":"Test1@bigpond.com",
"Postal Code":"4211",
"Enquiry Date":"27-03-20",
"Date Sent":"01-04-20",
"Mobile":"+61 414 994 774",
"Name":"Stephen Ross",
"Dealer":"QLD -Von Bibra Gold Coast - 554216"
},
{
"Lead Source":"LDV i-Motor - Get a Quote",
"Preferred Model":"T60 4WD Diesel Dual Cab Ute",
"Email":"Test2@gmail.com",
"Postal Code":"4209",
"Enquiry Date":"27-03-20",
"Date Sent":"01-04-20",
"Mobile":"+61 423 927 999",
"Name":"Jaxon",
"Dealer":"QLD - Von Bibra Gold Coast - 554216"
},
{
"Lead Source":"LDV i-Motor - Get a Quote",
"Preferred Model":"T60 4WD Diesel Dual Cab Ute",
"Email":"Test3@hotmail.com",
"Postal Code":"4209",
"Enquiry Date":"28-03-20",
"Date Sent":"01-04-20",
"Mobile":"+61 447809 834",
"Name":"Brendan Dunleavy",
"Dealer":"QLD - Von Bibra Gold Coast - 554216"
}
]
<iterate expression="//jsonArray/jsonElement" id="LDVid" sequential="true">
<target>
<sequence>
<property description="incomingRequest" expression="$body/*" name="incomingRequest" scope="default" type="OM"/>
<!-- Business process related sequence -->
<sequence key="ProcessSequence"/>
</sequence>
</target>
</iterate>
注意:
- 在ProcessSequence内部,需要获取每个json对象元素,因为json元素有业务相关的操作
- 使用Salesforce Rest连接器,每个记录将使用调用中介器推送到Salesforce
- 迭代器之后需要的聚合操作
<property description="Email" expression="$ctx:incomingRequest//*[local-name()='Email']/text()" name="Email" scope="default" type="STRING"/>
我满足了我的要求,现在我可以使用迭代器将多条记录逐个发送给Salesforce
<iterate expression="//jsonArray/jsonElement" id="LDVid" sequential="true">
<target>
<sequence>
<sequence description="ProcessSequence" key="ProcessSequence"/>
</sequence>
</target>
</iterate>
<property name="Aggregated_Responses" scope="default">
<jsonObject/>
</property>
<aggregate id="LDVid">
<completeCondition>
<messageCount max="-1" min="-1"/>
</completeCondition>
<onComplete enclosingElementProperty="Aggregated_Responses" expression="$body/*[1]" xmlns:ns="http://org.apache.synapse/xsd">
<log description="***aggregated***" separator="***aggregated***">
<property expression="$ctx:Aggregated_Responses" name="Aggregated_Responses"/>
</log>
<send/>
</onComplete>
</aggregate>
能否将主体记录在ProcessSequence中并在此处共享i?你好@arunasugunakumar,我也可以在序列中找到jsonbody。现在我获取了如下所示的json元素。