Salesforce 带命令行的apex数据加载器中的键提取SOQL值
我正在使用命令行apex数据加载器。我想提取那些“last_ax_date”字段值大于数据加载程序机器上某处指定的日期的帐户Salesforce 带命令行的apex数据加载器中的键提取SOQL值,salesforce,Salesforce,我正在使用命令行apex数据加载器。我想提取那些“last_ax_date”字段值大于数据加载程序机器上某处指定的日期的帐户 <bean id="ExtractAXAccounts" class="com.salesforce.dataloader.process.ProcessRunner" singleton="false"> <property name="configOverrideMap"><map> <e
<bean id="ExtractAXAccounts" class="com.salesforce.dataloader.process.ProcessRunner"
singleton="false">
<property name="configOverrideMap"><map>
<entry key="process.operation" value="extract" />
<entry key="dataAccess.type" value="csvWrite" />
<entry key="sfdc.extractionSOQL" value="select Id, Name, Last_AX_Date from Account where Last_AX_Date greater then 'date store in somewhere in the system'" />
</map></property>
</bean>
根据上述情况,我希望动态提取帐户。因此,我必须在哪里指定日期,以及如何将其用于“sfdc.extractionSOQL”值。我不认为可以只为部分
sfdc.extractionSOQL
传入值,但您可以从执行DataLoader.jar的脚本传入整个查询。这将允许您在从命令行执行时传入日期值。请记住,如果不对Data Loader附带的process.bat
文件进行一些修改,这是不可能的,因此这里有一个直接调用DataLoader.jar的解决方案:
process-conf.xml
(将sfdc.extractionSOQL
保留在声明之外):
然后,您可以从命令行调用
runDL 2012-01-01T00:00:00Z
,以提取Last\u AX\u Date
大于2012年1月1日的所有记录。非常感谢。我唯一的意见是,如果在查询中使用像=这样的字符,它将给您带来问题。查看此论坛了解更多详细信息。
<bean id="ExtractAXAccounts" class="com.salesforce.dataloader.process.ProcessRunner"
singleton="false">
<property name="configOverrideMap"><map>
<entry key="process.operation" value="extract" />
<entry key="dataAccess.type" value="csvWrite" />
</map></property>
</bean>
set classpath=C:\salesforce\dataloader\lib\DataLoader.jar
set mainclass=com.salesforce.dataloader.process.ProcessRunner
set confdir=C:\salesforce\dataloader\conf
if [%1]==[] goto error
call java -cp %classpath% -Dsalesforce.config.dir=%confdir% %mainclass% process.name=ExtractAXAccounts sfdc.extractionSOQL="select Id, Name, Last_AX_Date from Account where Last_AX_Date > %1"
goto end
:error
echo Error: missing date argument (must be in 'yyyy-mm-ddThh:mm:ssZ' format)
:end