연락처 정보를 반환하는 salesforce 쿼리가 있습니다. 데이터를 2 개의 테이블에 저장해야합니다. 첫 번째 테이블에서 연락처에 대한 일부 메타 데이터를 중간 상태로 저장해야합니다. 그런 다음 저장된 메타 데이터에서 자동 생성 된 메타 데이터 테이블 ID를 가져 와서 모든 연락처에 적용합니다. 그런 다음 연락처 데이터를 데이터베이스 테이블에 저장 한 다음 마지막으로 연락처 메타 데이터를 최종 상태로 업데이트해야합니다. 문제는 많은 데이터가 있으므로이 프로세스를 수행 할 때 페치 크기를 포함해야한다는 것입니다. 내가 성취하고자하는 것은 이것과 같은 것이어야합니다. 이것이 제가 성취하고자하는 것임을 유의하십시오. 가져 오기 대화 상대가 완료되어 최종 상태를 저장할 수 있음을 어떻게 알 수 있습니까? 트랜잭션의 흐름을 어떻게 구조화 할 수 있습니까? 이상적으로는 ConsumerIterator를 Java 구성 요소에 전달하여 프로세스를 쉽게 제어 할 수 있습니다. 예를 들어 ConsumerIterator에 대한 참조를 Java 구성 요소에 전달할 수 있습니까? 내가 어떻게 할 수 있니?Salesfore 및 데이터베이스 구성 요소에서 증분 가져 오기를 처리하는 방법
<sfdc:query fetchSize="100" config-ref="sfdc-connector"
query="dsql:SELECT Id, Account.Id,
Account.Name, Account.PersonEmail, Account.LastName From Contact" />
dw:transform-message metadata:id="d1f6ab4f-4b40-4e30-ae" doc:name="trnsfm">
<enricher target="variable:metaInfo">
<flow-refname="getContactMetadata"/>
</enricher>
<dw:set-payload><![CDATA[%dw 1.0
.//Rest of transformer
<db:insert config-ref="MySQL_Configuration" doc:name="Save Metatdata">
...
</db:insert>
<db:insert config-ref="MySQL_Configuration" doc:name="Save contacts">
....
<db:insert>
<db:insert config-ref="MySQL_Configuration" doc:name="Update Metadata
Final State">
....
<db:insert>
</flow>