Hi,

I'm trying to do the $subject using ESB 5.0, DSS 3.5.0 and Salesforce
Connector.

When I remove the following call operations to the DSS from the sequence
it's working perfectly.

<header name="Action" scope="default" value=
> "urn:insert_SF_Account_operation_batch_req"/>
>     <call blocking="true">
>         <endpoint>
>             <address uri="https://localhost:9448/services/SF_Data_Service/
> "/>
>         </endpoint>
>     </call>


Otherwise, It'll stop after the first batch received. Without continuing
the operation (which need to be iterate until all the batches received).

[I have attached both proxy and the sequence.]

Thanks,
Chanuka.

-- 
Chanuka Dissanayake
*Software Engineer | **WSO2 Inc.*; http://wso2.com

Mobile: +94 71 33 63 596
Email: [email protected]
<?xml version="1.0" encoding="UTF-8"?>
<proxy name="SF_Proxy" startOnLoad="true" transports="http https" xmlns="http://ws.apache.org/ns/synapse";>
    <target>
        <inSequence>
            <salesforce.query configKey="sf_auth">
                <batchSize>200</batchSize>
                <queryString>SELECT CreatedDate,Id,Name FROM Account</queryString>
            </salesforce.query>
            <sequence key="SF_Data_Sequence"/>
            <enrich>
                <source clone="true" property="INIT_MSG_PAYLOAD" type="property"/>
                <target type="body"/>
            </enrich>
            <iterate expression="//sfdc:iterator" sequential="true" xmlns:sfdc="http://wso2.org/salesforce/adaptor";>
                <target>
                    <sequence>
                        <property expression="get-property('operation','opt.salesforce.query.queryLocator')" name="salesforce.query.queryLocator" scope="default" type="STRING"/>
                        <log level="custom">
                            <property expression="$ctx:salesforce.query.queryLocator" name="Before ......................"/>
                        </log>
                        <salesforce.queryMore>
                            <batchSize>200</batchSize>
                        </salesforce.queryMore>
                        <sequence key="SF_Data_Sequence"/>
                        <property expression="$ctx:salesforce.query.queryLocator" name="opt.salesforce.query.queryLocator" scope="operation" type="STRING"/>
                        <log level="custom">
                            <property expression="$ctx:salesforce.query.queryLocator" name="After ......................"/>
                        </log>
                    </sequence>
                </target>
            </iterate>
        </inSequence>
        <outSequence>
            <send/>
        </outSequence>
        <faultSequence/>
    </target>
</proxy>
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="SF_Data_Sequence" trace="disable" xmlns="http://ws.apache.org/ns/synapse";>
    <enrich>
        <source clone="true" type="body"/>
        <target property="INIT_MSG_PAYLOAD" type="property"/>
    </enrich>
    <payloadFactory media-type="xml">
        <format>
            <p:insert_SF_Account_operation_batch_req xmlns:p="http://ws.wso2.org/dataservice"/>
        </format>
        <args/>
    </payloadFactory>
    <!-- Creating a property called DB_BATCH_MSG_PAYLOAD with the root element expression -->
    <property expression="//p:insert_SF_Account_operation_batch_req" name="DB_BATCH_MSG_PAYLOAD" scope="operation" type="OM" xmlns:ns="http://org.apache.synapse/xsd"; xmlns:p="http://ws.wso2.org/dataservice"/>
    <enrich>
        <source clone="true" property="INIT_MSG_PAYLOAD" type="property"/>
        <target type="body"/>
    </enrich>
    <!--  Let's iterate through the data, we can iterate through records -->
    <iterate continueParent="true" expression="//rec:records" sequential="true" xmlns:ns="http://org.apache.synapse/xsd"; xmlns:rec="urn:partner.soap.sforce.com">
        <target>
            <sequence>
                <property expression="get-property('operation','DB_BATCH_MSG_PAYLOAD')" name="DB_BATCH_MSG_PAYLOAD" scope="default" type="OM"/>
                <datamapper config="gov:datamapper/SFConfig.dmc" inputSchema="gov:datamapper/SFConfig_inputSchema.json" inputType="XML" outputSchema="gov:datamapper/SFConfig_outputSchema.json" outputType="XML"/>
                <enrich>
                    <source clone="true" type="body"/>
                    <target property="DB_MSG_PAYLOAD" type="property"/>
                </enrich>
                <property expression="//p:insert_SF_Account_operation" name="DB_MSG_PAYLOAD" scope="default" type="OM" xmlns:p="http://ws.wso2.org/dataservice"/>
                <enrich>
                    <source clone="true" property="DB_BATCH_MSG_PAYLOAD" type="property"/>
                    <target type="body"/>
                </enrich>
                <enrich>
                    <source clone="true" property="DB_MSG_PAYLOAD" type="property"/>
                    <target action="child" xmlns:p="http://ws.wso2.org/dataservice"; xpath="//p:insert_SF_Account_operation_batch_req"/>
                </enrich>
                <property expression="//p:insert_SF_Account_operation_batch_req" name="DB_BATCH_MSG_PAYLOAD" scope="operation" type="OM" xmlns:p="http://ws.wso2.org/dataservice"/>
            </sequence>
        </target>
    </iterate>
    <property expression="get-property('operation','DB_BATCH_MSG_PAYLOAD')" name="DB_BATCH_MSG_PAYLOAD" scope="default" type="OM"/>
    <enrich>
        <source clone="true" property="DB_BATCH_MSG_PAYLOAD" type="property"/>
        <target type="body"/>
    </enrich>
    <log level="full"/>
    <header name="Action" scope="default" value="urn:insert_SF_Account_operation_batch_req"/>
    <call blocking="true">
        <endpoint>
            <address uri="https://localhost:9448/services/SF_Data_Service/"/>
        </endpoint>
    </call>
</sequence>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to