Как вытащить все доступные поля запроса для объекта SOQL? - PullRequest
0 голосов
/ 07 мая 2018

Итак, я вижу, что Stackoverflow более отзывчив, чем само сообщество Salesforce, и я пересылаю свой вопрос из здесь :

Как я могу получить список всех доступных полей запроса для объекта SOQL? Мой сценарий DataLoader готов к работе, но мне нужен способ получить все поля запроса для конкретных объектов данных SOQL и передать их в мой файл process-conf.xml в DataLoader, чтобы получить значения всех этих полей в отдельном месте , Я уже установил значение DataLoader, но мне нужен способ получить все доступные поля запроса, поскольку они продолжают изменяться. ANT Migration Tool не может самостоятельно извлекать поля запроса.

ANT Конфигурация инструмента:

# build.properties  
# Specify the login credentials for the desired Salesforce organization
sf.username = <test user acct>
sf.password = <password>
#sf.sessionId = <Insert your Salesforce session id here.  Use this or username/password above.  Cannot use both>
#sf.pkgName = <Insert comma separated package names to be retrieved>
#sf.zipFile = <Insert path of the zipfile to be retrieved>
#sf.metadataType = <Insert metadata type name for which listMetadata or bulkRetrieve operations are to be performed>   
sf.serverurl = https://na3.salesforce.com
sf.maxPoll = 20
# If your network requires an HTTP proxy, see http://ant.apache.org/manual/proxy.html for configuration.
#
logType=Detail

build.xml

<project name="Sample usage of Salesforce Ant tasks" default="test" basedir="." xmlns:sf="antlib:com.salesforce">

    <property file="build.properties"/>
    <property environment="env"/>

    <!-- Setting default value for username, password and session id properties to empty string 
         so unset values are treated as empty. Without this, ant expressions such as ${sf.username}
         will be treated literally.
    -->
    <condition property="sf.username" value=""> <not> <isset property="sf.username"/> </not> </condition>
    <condition property="sf.password" value=""> <not> <isset property="sf.password"/> </not> </condition>
    <condition property="sf.sessionId" value=""> <not> <isset property="sf.sessionId"/> </not> </condition>

    <taskdef resource="com/salesforce/antlib.xml" uri="antlib:com.salesforce">
        <classpath>
            <pathelement location="ant-salesforce.jar" />           
        </classpath>
    </taskdef>

    <!-- See what happens here -->
    <target name="retrieveSOQL">
      <sf:retrieve 
          username="${sf.username}" 
          password="${sf.password}" 
          sessionId="${sf.sessionId}"
          serverurl="${sf.serverurl}" 
          retrieveTarget="output" 
          unpackaged="package.xml"/>
    </target>
</project>

Package.xml

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>Account</members>
        <members>Opportunity</members>
        <members>Lead</members>
        <members>Event</members>
        <members>Project__c</members>
        <name>CustomObject</name>
    </types>
    <version>41.0</version>
</Package>

процесс-conf.xml

<beans>
    <bean id="AccountExtract"
          class="com.salesforce.dataloader.process.ProcessRunner"
          singleton="false">
      <description>csvAccountExtract job</description>
        <property name="name" value="csvAccountExtract"/>
        <property name="configOverrideMap">
            <map>
                <entry key="sfdc.debugMessages" value="false"/>
                <entry key="sfdc.debugMessagesFile" value="C:\Users\user\Desktop\salesforce_backup\sfdcSoapTrace.log"/>
                <entry key="sfdc.endpoint" value="https://na3.salesforce.com"/>
                <entry key="sfdc.username" value="<username>"/>
                <!-- password below has been encrypted using key file, therefore it will not work without the key setting: process.encryptionKeyFile
                the password is not a valid encrypted value, please generate the real value using encrypt.bat utility -->
                <entry key="sfdc.password" value="<password>"/>
                <entry key="process.encryptionKeyFile" value="key.txt"/>
                <entry key="sfdc.timeoutSecs" value="600"/>
                <entry key="sfdc.loadBatchSize" value="200"/>
                <entry key="sfdc.entity" value="Account"/>
                <entry key="sfdc.extractionRequestSize" value="500"/>
                <entry key="sfdc.extractionSOQL" value="Select Id, IsDeleted, MasterRecordId, Name, Type, RecordTypeId, ParentId, BillingStreet FROM Account"/>
                <entry key="process.operation" value="extract"/>
                <entry key="dataAccess.type" value="csvWrite"/>
                <entry key="dataAccess.name" value="C:\Users\user\Desktop\account.csv"/>
            </map>
        </property>
    </bean>
...
</beans>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...