2017-08-28 309 views
0

我有一个场景,我需要从​​对象中删除完整的数据。如何从salesforce对象中删除数据?

为了实现,首先获取该对象的所有Ids并以.csv格式保存在一个文件中。一旦数据上传到文件中,需要使用批次中的记录删除记录。

我可以查询对象并将数据保存为.csv,但删除数据时有时会出现错误。

Message    : null (java.nio.BufferUnderflowException). 
    Element    : /batch-delete-genericFlow/processors/3 @ apl-sfa-batch-interface-v44:batch-delete-all.xml:48 (Transform Message) 
    -------------------------------------------------------------------------------- 
    Exception stack is: 
    null (java.nio.BufferUnderflowException). (org.mule.api.MessagingException) 
     java.nio.Buffer.nextGetIndex(Buffer.java:500) 
     java.nio.HeapCharBuffer.get(HeapCharBuffer.java:135) 
     com.mulesoft.weave.reader.UTF8StreamSourceReader.decode$1(SeekableStreamSourceReader.scala:147) 
     com.mulesoft.weave.reader.UTF8StreamSourceReader.read(SeekableStreamSourceReader.scala:167) 
     com.mulesoft.weave.reader.csv.parser.StreamingCSVParser.read(StreamingCSVParser.scala:61) 
     (66 more...) 

     (set debug level logging or '-Dmule.verbose.exceptions=true' for everything) 
******************************************************************************** 

PFB删除批号代码:

<batch:job name="batch-delete-genericBatch" max-failed-records="-1"> 
     <batch:input> 
      <enricher target="#[flowVars['jobInfo_delete']]" doc:name="Enricher jobId"> 
       <sfdc:create-job config-ref="SFA_MSBI" type="#[flowVars.sObjectName]" concurrencyMode="Serial" contentType="CSV" operation="delete" doc:name="Create Job"/> 
      </enricher> 
      <expression-component doc:name="Save Job ID"><![CDATA[sessionVars.jobInfo_delete = flowVars.jobInfo_delete.id 
]]></expression-component> 
     </batch:input> 
     <batch:process-records> 
      <batch:step name="Batch_Step" > 
       <batch:commit doc:name="Batch Commit" size="5000"> 
        <processor-chain doc:name="Processor Chain"> 
         <dw:transform-message metadata:id="df884737f2bc" doc:name="Transform Message"> 
          <dw:set-payload><![CDATA[%dw 1.0 
%output application/java 
--- 
payload map { 
    Id: $.Id 
}]]></dw:set-payload> 
         </dw:transform-message> 
         <sfdc:create-batch config-ref="SFA_MSBI" doc:name="Salesforce"> 
          <sfdc:job-info ref="#[flowVars.jobInfo_delete]"/> 
          <sfdc:objects ref="#[payload]"/> 
         </sfdc:create-batch> 
        </processor-chain> 
       </batch:commit> 
      </batch:step> 
     </batch:process-records> 
     <batch:on-complete> 
      <async doc:name="Async"> 
       <sfdc:close-job config-ref="SFA_MSBI" jobId="#[sessionVars.jobInfo_delete]" doc:name="Salesforce"/> 
      </async> 

     </batch:on-complete> 
    </batch:job> 

请指教。

回答