SOQL查询,提取在过去x小时内更新的数据

时间:2012-10-29 21:06:41

标签: salesforce soql

我正在使用CLIq并安排了一个应该每x小时运行一次的任务。 我的问题是我的SOQL查询从数据库获取所有项目,我只需要提取在过去x小时内更新的内容。如何限制我的查询?

这是我的process-config.xml文件。

<!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>

1 个答案:

答案 0 :(得分:1)

我过去很好,与此类似:

SELECT Total_Annual_Sales__c, Market_Specialties__c, Market_Focus__c,  Destination_Specialties__c, CreatedDate, Agency_Website__c, Agency_Business_Email__c
FROM Agency_Profile__c
WHERE LastModifiedDate = TODAY AND HOUR_IN_DAY(LastModifiedDate) > 9

你将它运行到12,然后在下午3点运行...

仍然不理想,因为如果其中一个运行失败,你会想要赶上...因此,对于故障安全解决方案来说,为了节省上次成功运行的时间,需要在加载器周围编写一些脚本。