要在WSO2 ESB / EI中将多个记录发送给salesforce

问题描述 投票:0回答:1

我有多个记录,需要将每个记录推送到Salesforce。谁能帮助我达到这一要求?

输入请求:

[
   {
      "Lead Source":"LDV Facebook - Book a Test Drive",
      "Preferred Model":"T60 4WD Diesel Dual Cab Ute",
      "Email":"[email protected]",
      "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":"[email protected]",
      "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":"[email protected]",
      "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连接器,每个记录将通过Call Mediator推送到Salesforce。
  • 迭代器之后需要聚合操作。

在这里,我无法通过以下技术获取每个json元素。

<property description="Email" expression="$ctx:incomingRequest//*[local-name()='Email']/text()" name="Email" scope="default" type="STRING"/>
json iterator wso2esb wso2ei
1个回答
0
投票

我满足了我的要求,现在我可以使用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>
© www.soinside.com 2019 - 2024. All rights reserved.