krishna movva
krishna movva

Reputation: 49

Create Batch-Mulesoft-Salesforce connector

I am trying to add batches to a job using SFDC Create Batch connector.As per the documentation,it expects jobInfo object(com. sforce. async. JobInfo).Below is the payload that i am sending.Even though i typecast the object to JobInfo object,it still complains Message : "Unable to convert Array to class 'org.mule.extension.salesforce.api.bulk.JobInfo'

I am not sure what i am missing

%dw 2.0
output application/java
var arr = []

---

({

id: "75023000002VC0rAAG" 
}  as Object {
class : "com.sforce.async.JobInfo"
})>> arr       

Upvotes: 0

Views: 1223

Answers (1)

Ramachandran G
Ramachandran G

Reputation: 26

Please find the sample code you can use.

<flow name="AccountAddressFlowFlow" doc:id="d164048e-ab84-42d2-b1bf-cbcdc6c8802a" >
        <http:listener doc:name="Listener" doc:id="73736cd1-cc6f-425d-8a9e-b2dacb4fd1e4" config-ref="HTTP_Listener_config" path="/accountaddress"/>
        <file:read doc:name="Read" doc:id="9bc9edf9-07af-4061-8d6c-c85eb254d113" path="./AccountAddress/testl2Address.csv" outputMimeType='application/csv; quote="\""; separator=|'>
            <ee:repeatable-file-store-stream bufferUnit="MB" />
        </file:read>
        <salesforce:create-job operation="upsert" type="Account_Address__c" doc:name="Create job" doc:id="6eaef36f-719a-45c6-a4f1-e3897c85dc97" config-ref="Salesforce_Config" target="JobInfo">
            <salesforce:create-job-request ><![CDATA[#[%dw 2.0
output application/java
---
{
    externalIdFieldName: "ADDR_Key__c",
    contentType: "JSON",
    concurrencyMode: "Parallel"
}]]]></salesforce:create-job-request>
        </salesforce:create-job>
        <ee:transform doc:name="Transform Message" doc:id="3d6b1820-95bb-4f11-b777-6db7a79319e2" >
            <ee:message >
                <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
            </ee:message>
        </ee:transform>
        <batch:job jobName="AccountAddressFlowBatch_Job" doc:id="259c9a9a-72d2-4b46-85cd-6c700fe2e9f5" maxFailedRecords="-1" blockSize="10000" maxConcurrency="16">
            <batch:process-records >
                <batch:step name="Batch_Step" doc:id="d5599f4a-0200-410f-95a3-9a38a08173f8" >
                    <ee:transform doc:name="Transform Message" doc:id="245af51b-1ae7-4958-b644-f45baf7c63dd" >
                        <ee:message >
                            <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
{
    Name:payload.Location_Name80,
    Location_ID__c:payload.Location_ID,
    Fiber_Status__c:payload.fiber_status,
    Account__r:{
            Sub_Account_ID__c:payload.Sub_Account_ID
            },
    Address_Type__c:payload.Address_Type,
    Postal_Code__c:payload.Postal_Code,
    FirstNet_Type__c:payload.FirstNet_Type
}]]></ee:set-payload>
                        </ee:message>
                    </ee:transform>
                    <batch:aggregator doc:name="Batch Aggregator" doc:id="33855357-eb2d-4dd3-ade2-ce043530665e" size="10000">
                        <salesforce:create-batch doc:name="Create batch" doc:id="83d9ab61-50dd-469b-bbf8-d2f53f36b3bc" config-ref="Salesforce_Config" jobInfoBatch="#[%dw 2.0
output application/java
---
vars.JobInfo]"/>
                    </batch:aggregator>
                </batch:step>
            </batch:process-records>
            <batch:on-complete >
                <logger level="INFO" doc:name="Logger" doc:id="b1c1fc2d-a3f4-4bf1-8ceb-5f249df58c60" />
            </batch:on-complete>
        </batch:job>
        <logger level="INFO" doc:name="Logger" doc:id="e2bd3d39-2fc9-46f6-a686-55531f77a2d6" message="Account Address Completed"/>
    </flow>
</mule>

Upvotes: 1

Related Questions