Посредник итераций WSO2 повторяет один и тот же элемент для каждой итерации в EI WSO2 - PullRequest
0 голосов
/ 29 апреля 2020

Я передаю несколько записей по одной в Salesforce с помощью WSO2. Итерационный посредник , и все ответы, поступающие от Salesforce, агрегируются с помощью агрегации. До этого отлично работает. Ответ агрегации содержит несколько json объектов (каждый элемент является отдельным) , мне нужно выбрать каждый элемент json объекта и отследить основные сведения (такие как электронная почта, мобильный телефон, LeadId, SF ErrorCode и * 1044). *) к таблице базы данных. Чтобы добиться этого, я снова использую Iterator, чтобы разделить агрегированный ответ. для каждой итерации печатается один и тот же json элемент . Может ли кто-нибудь помочь мне в этом случае?

Совокупный ответ:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><jsonObject xmlns
="http://ws.apache.org/ns/synapse"><jsonValue xmlns="">"{\"transactionId\":null,\"timestamp\":\"2020-04-28 14:21:01\",\"OpportunityId\":\"0065500000Fz6EdAAJ\",\"message\":\"Insert/
Update success\",\"Lead\":{\"attributes\":{\"type\":\"Lead\",\"url\":\"/services/data/v48.0/sobjects/Lead/00Q5500000AvaJ8EAJ\"},\"Company\":\"N/A\",\"Email\":\"dunleavy2010@hotmail
.com\",\"Lead_Type__c\":\"Internet\",\"LeadSource\":\"LDV i-Motor - Get a Quote\",\"FirstName\":\"Brendan\",\"LastName\":\"Dunleavy\",\"Id\":\"00Q5500000AvaJ8EAJ\",\"MobilePhone\":
\"+61 449 819 834\"},\"errorCode\":\"200\",\"appraisalId\":null}"</jsonValue><jsonValue xmlns="">"{\"transactionId\":null,\"timestamp\":\"2020-04-28 14:21:01\",\"OpportunityId\":\"
0065500000Fz6EiAAJ\",\"message\":\"Insert/Update success\",\"Lead\":{\"attributes\":{\"type\":\"Lead\",\"url\":\"/services/data/v48.0/sobjects/Lead/00Q5500000AvaJ3EAJ\"},\"Company\
":\"N/A\",\"Email\":\"steveross01@bigpond.com\",\"Lead_Type__c\":\"Internet\",\"LeadSource\":\"LDV Facebook - Book a Test Drive\",\"FirstName\":\"Stephen\",\"LastName\":\"Ross\",\"
Id\":\"00Q5500000AvaJ3EAJ\",\"MobilePhone\":\"+61 414 404 774\"},\"errorCode\":\"200\",\"appraisalId\":null}"</jsonValue><jsonValue xmlns="">"{\"transactionId\":null,\"timestamp\":
\"2020-04-28 14:21:04\",\"OpportunityId\":\"0065500000Fz6EnAAJ\",\"message\":\"Insert/Update success\",\"Lead\":{\"attributes\":{\"type\":\"Lead\",\"url\":\"/services/data/v48.0/so
bjects/Lead/00Q5500000AvaJDEAZ\"},\"Company\":\"N/A\",\"Email\":\"jaxonstevens18@gmail.com\",\"Lead_Type__c\":\"Internet\",\"LeadSource\":\"LDV i-Motor - Get a Quote\",\"FirstName\
":\"Jaxon\",\"LastName\":\"Stevens\",\"Id\":\"00Q5500000AvaJDEAZ\",\"MobilePhone\":\"+61 423 927 100\"},\"errorCode\":\"200\",\"appraisalId\":null}"</jsonValue></jsonObject></soape
nv:Body></soapenv:Envelope>

Код прокси:

<proxy name="VBReadFromEmailBody" startOnLoad="true" transports="http https" xmlns="http://ws.apache.org/ns/synapse">
<target>
    <inSequence>
                <iterate expression="//jsonArray/jsonElement" id="LDVid" sequential="true">
                    <target>
                        <sequence>
                            <!-- Each jsonElement is pushed to SalesForce  -->
                            <sequence description="VBEmail_LDVNonQualifiedLead_Sequence" key="VBEmail_LDVNonQualifiedLead_Sequence"/>
                        </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">
                        <loopback/>
                    </onComplete>
                </aggregate>
     </inSequence>
    <outSequence>
        <log level="custom">
            <property name="======OUTSEQUENCE=======" value="CALLED"/>
        </log>
        <!-- Log to check aggregatedresponse  -->
        <log level="full"/>
                <property name="messageType" scope="axis2" type="STRING" value="application/json"/>
                <iterate continueParent="true" expression="//jsonValue" sequential="true">
                    <target>
                        <sequence>
                            <property expression="json-eval($)" name="jsonString" scope="default" type="STRING"/>
                            <script language="js"><![CDATA[var log = mc.getServiceLog();        
var payload = mc.getProperty('jsonString').toString();log.info("script payload::::" + payload); payloadRemoveSlash = payload.replace('\\', '').replace('"{','{').replace('}"','}'); mc.setProperty('payloadRemoveSlash',payloadRemoveSlash);]]></script>
                        <log level="custom">
                          <property name=":: Body Inside payloadRemoveSlash::" expression="$ctx:payloadRemoveSlash"/>
                        </log>

                        </sequence>
                    </target>
                </iterate>
 </outSequence>
    <faultSequence>
        <log level="custom">
            <property description="ERROR_CODE" name="ERROR_CODE" scope="default" type="STRING" expression="get-property('ERROR_CODE')"/>
            <property description="ERROR_MESSAGE" name="ERROR_MESSAGE" scope="default" type="STRING" expression="get-property('ERROR_MESSAGE')/>
        </log>

     </faultSequence>
</target>

Данные журнала:

[2020-04-28 22:21:53,160] []  INFO - CommonScriptMessageContext script payload::::"{\"transactionId\":null,\"timestamp\":\"2020-04-29 02:51:50\",\"OpportunityId\":\"0065500000FzDxE
AAV\",\"message\":\"Insert/Update success\",\"Lead\":{\"attributes\":{\"type\":\"Lead\",\"url\":\"/services/data/v48.0/sobjects/Lead/00Q5500000AveQuEAJ\"},\"Company\":\"N/A\",\"Ema
il\":\"dunleavy2010@hotmail.com\",\"Lead_Type__c\":\"Internet\",\"LeadSource\":\"LDV i-Motor - Get a Quote\",\"FirstName\":\"Brendan\",\"LastName\":\"Dunleavy\",\"Id\":\"00Q5500000
AveQuEAJ\",\"MobilePhone\":\"+61 449 819 834\"},\"errorCode\":\"200\",\"appraisalId\":null}"
[2020-04-28 22:21:53,161] []  INFO - LogMediator :: Body Inside payloadRemoveSlash:: = {"transactionId":null,"timestamp":"2020-04-29 02:51:50","OpportunityId":"0065500000FzDxEAAV",
"message":"Insert/Update success","Lead":{"attributes":{"type":"Lead","url":"/services/data/v48.0/sobjects/Lead/00Q5500000AveQuEAJ"},"Company":"N/A","Email":"dunleavy2010@hotmail.c
om","Lead_Type__c":"Internet","LeadSource":"LDV i-Motor - Get a Quote","FirstName":"Brendan","LastName":"Dunleavy","Id":"00Q5500000AveQuEAJ","MobilePhone":"+61 449 819 834"},"error
Code":"200","appraisalId":null}
[2020-04-28 22:21:53,160] []  INFO - CommonScriptMessageContext script payload::::"{\"transactionId\":null,\"timestamp\":\"2020-04-29 02:51:50\",\"OpportunityId\":\"0065500000FzDxE
AAV\",\"message\":\"Insert/Update success\",\"Lead\":{\"attributes\":{\"type\":\"Lead\",\"url\":\"/services/data/v48.0/sobjects/Lead/00Q5500000AveQuEAJ\"},\"Company\":\"N/A\",\"Ema
il\":\"dunleavy2010@hotmail.com\",\"Lead_Type__c\":\"Internet\",\"LeadSource\":\"LDV i-Motor - Get a Quote\",\"FirstName\":\"Brendan\",\"LastName\":\"Dunleavy\",\"Id\":\"00Q5500000
AveQuEAJ\",\"MobilePhone\":\"+61 449 819 834\"},\"errorCode\":\"200\",\"appraisalId\":null}"
[2020-04-28 22:21:53,171] []  INFO - LogMediator :: Body Inside payloadRemoveSlash:: = {"transactionId":null,"timestamp":"2020-04-29 02:51:50","OpportunityId":"0065500000FzDxEAAV",
"message":"Insert/Update success","Lead":{"attributes":{"type":"Lead","url":"/services/data/v48.0/sobjects/Lead/00Q5500000AveQuEAJ"},"Company":"N/A","Email":"dunleavy2010@hotmail.c
om","Lead_Type__c":"Internet","LeadSource":"LDV i-Motor - Get a Quote","FirstName":"Brendan","LastName":"Dunleavy","Id":"00Q5500000AveQuEAJ","MobilePhone":"+61 449 819 834"},"error
Code":"200","appraisalId":null}
[2020-04-28 22:21:53,176] []  INFO - CommonScriptMessageContext script payload::::"{\"transactionId\":null,\"timestamp\":\"2020-04-29 02:51:50\",\"OpportunityId\":\"0065500000FzDxE
AAV\",\"message\":\"Insert/Update success\",\"Lead\":{\"attributes\":{\"type\":\"Lead\",\"url\":\"/services/data/v48.0/sobjects/Lead/00Q5500000AveQuEAJ\"},\"Company\":\"N/A\",\"Ema
il\":\"dunleavy2010@hotmail.com\",\"Lead_Type__c\":\"Internet\",\"LeadSource\":\"LDV i-Motor - Get a Quote\",\"FirstName\":\"Brendan\",\"LastName\":\"Dunleavy\",\"Id\":\"00Q5500000
AveQuEAJ\",\"MobilePhone\":\"+61 449 819 834\"},\"errorCode\":\"200\",\"appraisalId\":null}"
[2020-04-28 22:21:53,179] []  INFO - LogMediator :: Body Inside payloadRemoveSlash:: = {"transactionId":null,"timestamp":"2020-04-29 02:51:50","OpportunityId":"0065500000FzDxEAAV",
"message":"Insert/Update success","Lead":{"attributes":{"type":"Lead","url":"/services/data/v48.0/sobjects/Lead/00Q5500000AveQuEAJ"},"Company":"N/A","Email":"dunleavy2010@hotmail.c
om","Lead_Type__c":"Internet","LeadSource":"LDV i-Motor - Get a Quote","FirstName":"Brendan","LastName":"Dunleavy","Id":"00Q5500000AveQuEAJ","MobilePhone":"+61 449 819 834"},"error
Code":"200","appraisalId":null}

Примечание:

  1. Агрегированный ответ содержит 3 различных объекта json (см .: Агрегированный ответ )
  2. , но скрипт внутри итератора печатает один и тот же элемент json (ie dunleavy2010@hotmail.com) 3 раза (см .: Сведения журнала )

Пожалуйста, посмотрите и дайте мне решение для этого?

...