저는 CLIq을 사용하고 있으며 매 x 시간마다 실행해야하는 작업을 예약했습니다. 내 문제는 내 SOQL 쿼리가 지난 x 시간 동안 업데이트 된 항목 만 추출해야하는 데이터베이스의 모든 항목을 가져 오는 것입니다. 쿼리를 어떻게 제한 할 수 있습니까?지난 x 시간에 업데이트 된 데이터를 추출하는 SOQL 쿼리
이것은 내 process-config.xml 파일입니다. 내가 과거에이 비슷한 STH 괜찮습니다
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="AMP_AIMS" class="com.salesforce.dataloader.process.ProcessRunner" singleton="false">
<description>Created by Dataloader Cliq.</description>
<property name="name" value="AMP_AIMS"/>
<property name="configOverrideMap">
<map>
<entry key="dataAccess.name" value="...\AMP_AIMS\write\AMP_AIMS.csv"/>
<entry key="dataAccess.readUTF8" value="true"/>
<entry key="dataAccess.type" value="csvWrite"/>
<entry key="dataAccess.writeUTF8" value="true"/>
<entry key="process.enableExtractStatusOutput" value="true"/>
<entry key="process.enableLastRunOutput" value="true"/>
<entry key="process.lastRunOutputDirectory" value="...\AMP_AIMS\log"/>
<entry key="process.operation" value="extract"/>
<entry key="process.statusOutputDirectory" value="...\AMP_AIMS\log"/>
<entry key="sfdc.bulkApiCheckStatusInterval" value="5000"/>
<entry key="sfdc.bulkApiSerialMode" value="5000"/>
<entry key="sfdc.debugMessages" value="false"/>
<entry key="sfdc.enableRetries" value="true"/>
<entry key="sfdc.endpoint" value="https://test.salesforce.com/services/Soap/u/24.0"/>
<entry key="sfdc.entity" value="Agency_Profile__c"/>
<entry key="sfdc.extractionRequestSize" value="500"/>
<entry key="sfdc.extractionSOQL" value="Select a.Total_Annual_Sales__c, a.Market_Specialties__c, a.Market_Focus__c, a.Destination_Specialties__c, a.CreatedDate, a.Agency_Website__c, a.Agency_Business_Email__c From Agency_Profile__c a"/>
<entry key="sfdc.insertNulls" value="false"/>
<entry key="sfdc.loadBatchSize" value="100"/>
<entry key="sfdc.maxRetries" value="3"/>
<entry key="sfdc.minRetrySleepSecs" value="2"/>
<entry key="sfdc.noCompression" value="false"/>
<entry key="sfdc.password" value="blabla"/>
<entry key="sfdc.proxyHost" value=""/>
<entry key="sfdc.proxyNtlmDomain" value=""/>
<entry key="sfdc.proxyPassword" value=""/>
<entry key="sfdc.proxyPort" value=""/>
<entry key="sfdc.proxyUsername" value=""/>
<entry key="sfdc.timeoutSecs" value="60"/>
<entry key="sfdc.useBulkApi" value="false"/>
<entry key="sfdc.username" value="bla"/>
</map>
</property>
</bean>
</beans>
"마지막 X 시간"을 표현하는 방법을 모르지만 가능한 경우 lastmodifieddate 필드 및 날짜 메서드를 사용하여 soql 문에 where 절을 사용합니다. http://www.salesforce.com/us/developer/docs/soql_sosl/Content/sforce_api_calls_soql_select_date_functions.htm –
이 문서는 API에서 사용할 수있는 getUpdated() 메소드에 대해 설명합니다. 그러나 나는 당신이 dataloader http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_calls_getupdated.htm을 통해 이것을 접근 할 수 있는지 확신 할 수 없다. 나는 Talend가 getUpdated() API 메소드를 지원한다고 생각한다. 하지만 APEX 데이터 로더가 문서에서 참조를 찾을 수 없기 때문에 APEX 데이터 로더가 작동하는지 확신 할 수 없습니다. – Born2BeMild
@Sdry : 나는 이전에'SELECT ID, LastModifiedDate = TODAY 및 HOUR_IN_DAY (LastModifiedDate)> 9' 계정의 이름과 비슷한 sth를 사용했다. 당신은 12시에 뛰기 위해 스케쥴을 잡았고, 오후 3시에 비슷한 스케쥴을 만들었습니다 ... 실행 중 하나가 실패 할 경우 따라 잡기를 원했기 때문에 아직 이상하지 않습니다. 시간을 절약하기 위해 로더 주위에서 스크립팅을하기 때문에 마지막으로 성공적인 실행이 필요합니다. – eyescream