向 WSO2 中的销售人员发送多条记录 ESB/EI
To send multiple records to salesforce in WSO2 ESB/EI
我有多个记录,需要将每个记录推送到 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":"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 Connector,每条记录都将使用 Call Mediator 推送到 Salesforce。
- 迭代器后需要聚合操作。
这里我无法通过以下技术获取每个 json 元素。
<property description="Email" expression="$ctx:incomingRequest//*[local-name()='Email']/text()" name="Email" scope="default" type="STRING"/>
我满足了我的要求,现在我可以使用 Iterator 将多条记录一条一条地发送到 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>
我有多个记录,需要将每个记录推送到 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":"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 Connector,每条记录都将使用 Call Mediator 推送到 Salesforce。
- 迭代器后需要聚合操作。
这里我无法通过以下技术获取每个 json 元素。
<property description="Email" expression="$ctx:incomingRequest//*[local-name()='Email']/text()" name="Email" scope="default" type="STRING"/>
我满足了我的要求,现在我可以使用 Iterator 将多条记录一条一条地发送到 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>