Cómo recuperar campos personalizados en objetos estándar usando la herramienta de migración Ant

Fondo

Estoy intentando restablecer una organización dev usando esta secuencia de comandos de ant .

La mayor parte de las personalizaciones agregadas por defecto son eliminadas. Sin embargo, no puedo recuperar campos personalizados en Oportunidad, Cuenta y otros objetos estándar.

Estoy usando esto para obtener campos personalizados:

*CustomField

Y esto para conseguir objetos estándar:

*CustomObject

También he intentado:

Account.*CustomField

y

OpportunityCustomObject

Sin éxito

Pregunta

¿Cómo puedo recuperar campos personalizados en un objeto estándar en la herramienta de migración de hormigas?

10

4 Respuestas

Nombrar completamente los campos funciona, por ejemplo:


    Account.PayeeNameOverride1__c
    Account.PayeeNameOverride2__c
    Contact.JobDescriptionDate__c
    Contact.JobDescription__c
    CustomField

5
agregado
¿Hay alguna manera de hacer esto más "genérico"?
agregado el autor Brian Lyttle, fuente
Pero, ¿cómo recuperar los campos personalizados si no conoce los nombres?
agregado el autor Brian Lyttle, fuente
No tenemos ejemplos con comodines ...
agregado el autor John Richardson, fuente
Lo siento, no contesté la parte de "restablecer una organización dev" de tu pregunta, así que veo de dónde vienes ahora. Podría escribir código Java que use la API de metadatos para encontrar los nombres de los campos y luego envolverlos en una tarea Ant que se llama primero y edita su package.xml. Pero solo rastrear manualmente los nombres de los campos es más simple a menos que esté hablando de cientos de campos.
agregado el autor John Richardson, fuente

Según la documentación, el tipo de metadatos CustomField no es compatible comodines tristemente Puede acceder a Campos personalizados en Objetos estándar utilizando el tipo de metadatos CustomObject como se describe here contra objetos estándar específicos. Luego analice el archivo .object para compilar su archivo destructiveChanges.xml . Finalmente, también puede usar la tarea sf: listMetadata para descargue una lista de todos los campos personalizados y luego filtre localmente los objetos estándar.

     

También podría interesarle un no desplegado de código abierto publicado here , que envuelve la mayor parte de lo que sospecho que intenta desarrollar en un solo objetivo Ant. Lamentablemente, Salesforce todavía no nos da una tarea de 'limpiar mi organización', ¡así que construimos la nuestra!

5
agregado

Si desea extraer todo el campo personalizado de dicho objeto Accout, escriba al menos un nombre de campo personalizado del objeto de cuenta y luego escriba * en la otra etiqueta de miembro como esta


        *
        Contact.Level__c
        CustomField
    

Esto extraerá todo el campo personalizado del objeto de cuenta.

Y si desea extraer un campo personalizado o estándar, vaya a esto


        Contact
        CustomObject
    

Espero eso ayude

2
agregado

Si desea extraer campos particulares. Entonces use este


Case.EngineeringReqNumber__c
CustomField


Account

Usando la herramienta de migración Force.com construyendo un manifiesto de proyecto

CustomObject

1
agregado