Чтобы отправить несколько записей в Salesforce в WSO2 ESB / EI - PullRequest
0 голосов
/ 23 апреля 2020

У меня несколько записей, и мне нужно отправить sh каждой записи в 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 каждая запись будет отправлена ​​в Salesforce с помощью Call Mediator.
  • Агрегированная операция, необходимая после итератора.

Здесь я не могу выбрать каждую json элемент по технике ниже.

<property description="Email" expression="$ctx:incomingRequest//*[local-name()='Email']/text()" name="Email" scope="default" type="STRING"/>

1 Ответ

1 голос
/ 25 апреля 2020

Я выполнил свое требование, теперь я могу отправлять несколько записей в 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>
...