2009-02-23 15 views
25

Estamos estudiando la posibilidad de configurar un proceso de implementación adecuado.Salesforce - Cómo implementar entre entornos (Sandboxes, Live, etc.)

Según lo que he leído, parece que hay 4 métodos para hacerlo.

  1. Copiar Pegar & - No queremos hacer esto
  2. Utilizando el mecanismo de "paquete" integrado en la interfaz web de Salesforce
  3. Eclipse IDE Fuerza "Distribuir al servidor" opción
  4. Ant Script (no lo ha probado aún)

¿Alguien tiene consejos sobre la limitación de los diversos métodos?

¿Se puede incluir todo en un paquete de la Interfaz Web?

Estamos buscando para desplegar los siguientes artículos:

  • clases Apex

  • Apex disparadores

  • flujos de trabajo

  • plantillas de correo electrónico

  • Plantillas MailMerge - Parece que no puede encontrar estos en Eclipse

  • campos personalizados

  • diseño de páginas

  • RecordTypes (parece que no puede encontrar estos en Sitio Web o Eclipse)

  • ¿Artículos PickList?

  • SControls

Respuesta

15

recomiendo el Force.com Migration Tool.

Como referencia:

La herramienta de migración le permite utilizar ant para mover su metadatos entre salesforce.com organzations.

+1

Gracias, he investigado esto, y me parece el modo recomendado. ¿Sabes si hay una forma de implementar plantillas de MailMerge usando esta herramienta? Gracias dan – danswain

+0

"Force.com Migration Tool link" está muerto –

15

Puedo hablar de esta experiencia dolorosa reciente.

Embalaje: este es un método muy antiguo que es anterior a la API de metadatos en la que confían Ant y Eclipse. En nuestra experiencia, el único beneficio del empaque es definir su proyecto. Si está usando Eclipse (lo cual hacemos, y lo recomiendo), puede definir su proyecto como basado en un paquete particular.Siempre y cuando recuerde agregar nuevos componentes a su paquete, su proyecto se cuelga juntos

Una cosa que nos desconcertó por un tiempo, por cierto, son los muchos usos del paquete. Hemos observado lo siguiente:

Paquetes instalados: estos vienen en sabores administrados y no administrados y son realmente, en palabras de una publicación reciente en los tableros SFDC, para que los ISV desplieguen sus cosas en varias organizaciones desconocidas "por ahí ". Los paquetes administrados y no administrados tienen limitaciones que los hacen inadecuados e innecesarios para la implementación desde el desarrollo hasta la producción dentro de una organización o, en cualquier caso, donde se realiza un desarrollo personalizado y no se pretende distribuir el código a una gran base anónima.

Paquetes no instalados: esto es lo que ve cuando hace clic en "Paquetes" en la interfaz de usuario web. Estos, que a veces llamamos "paquetes de desarrollo", parecen ser solo una forma conveniente de mantener unida la definición de un proyecto.

De todos modos, la conclusión a la que me refiero es que nuestro equipo (desarrollo personalizado, no un ISV) no necesita paquetes de ninguna forma.

Las otras formas de implementación, tanto Eclipse como Ant, se basan en la API de metadatos. En teoría, son capaces de exactamente las mismas cosas. En realidad, parecen ser complementarios. La herramienta de migración de Force.com, integrada en el IDE de Force.com para Eclipse, hace que la implementación sea tan fácil como puede (lo cual no es muy) y le da una buena idea de lo que pretende implementar. Por otro lado, hemos visto a Ant hacer algunas cosas que el IDE no pudo. Entonces, probablemente valga la pena aprender ambos.

El proceso al que nos estamos inclinando es mantener todos nuestros proyectos en SVN, y usar la estructura SVN como definición del proyecto (Eclipse trabajará con esto y lo respetará). Y utilizamos Eclipse y, a veces, Ant para la migración. Sin aparente necesidad de paquetes en cualquier lugar.

Por cierto, una cosa más a tener en cuenta: no todos los componentes son migrables. Algunas cosas se deben reconfigurar a mano en el entorno objetivo. Un ejemplo serían los flujos de trabajo basados ​​en el tiempo. Las colas y los grupos también necesitan comportarse, crearse, creo. Del mismo modo, la API de metadatos no puede procesar directamente las eliminaciones de los campos, por lo que si borraste un campo de tu fuente, debes eliminarlo a mano en el destino. También hay otros casos.

la esperanza de que sea útil -

- Steve carril

+0

Gracias por su respuesta. Terminamos usando la herramienta de migración basada en Eclipse. También miró a Ant, pero por ahora Eclipse lo hará. Descubrir que a veces falla debido a las dependencias pero no dice lo que son es molesto. – danswain

+0

Si bien el empaquetado es doloroso, es necesario cuando se desarrolla para AppExchange. En particular, si planea apoyar a clientes con edición profesional y/o grupal. Sin embalaje, no hay forma de crear objetos personalizados, ejecutar código apex, etc. en estas ediciones. Además, el uso de paquetes administrados le permite segmentar su código de otros desarrolladores. Mientras escribía el código Apex no administrado, ha habido ocasiones en que tuve que escribir pruebas de unidades para desarrolladores anteriores a fin de cumplir con los requisitos de cobertura del código. – dana

2

A partir de la primavera '09, las plantillas de combinación de correspondencia no se admiten en los metadatos, pero los tipos de registro son. Encontrará tipos de registros como un elemento XML en el archivo para el objeto al que pertenecen. Todo lo demás en su lista es compatible con una pequeña excepción. Los valores de lista de selección para campos estándar no se pueden editar en Spring '09. Estén atentos para recibir noticias sobre los anuncios de las funciones de verano de 2009.

Actualización: picklists Uniformes sobre objetos estándar ahora se expone metadatos (a partir de V16 API): http://www.salesforce.com/us/developer/docs/api_meta/Content/meta_picklist.htm

De lo contrario, la respuesta de Steve Lane es bastante exacto. La ventaja de usar paquetes no administrados (lo que Steve llama paquetes no instalados) es que cuando agrega metadatos a un paquete, los metadatos de los que depende se agregarán automáticamente. Por lo tanto, es más fácil obtener un conjunto completo de metadatos que contienen todas sus dependencias. Si mueve repetidamente los metadatos de una organización (recinto) a otra (producción), el enfoque de Steve es probablemente el mejor camino a seguir y, sin duda, el más común en la actualidad. Con frecuencia utilizo paquetes de "desarrolladores" no administrados para mover algo que he desarrollado en una organización a otra organización no relacionada. Para mi propósito, me gusta tener el paquete definido en la organización en lugar de un proyecto/SVN de Eclipse.Pero eso probablemente no tiene sentido si está haciendo un desarrollo de equipo en muchos orígenes dev/sandbox y ya está usando SVN.

Jesper

+0

¿Cómo despliega su paquete no administrado? Me pregunto si hay una forma de implementar un paquete sin tener que volver a seleccionar/enumerar todos los componentes ya que tiene que ver con Eclipse o Ant ... – Marc

0

A partir de los documentos:

Un paquete debe ser gestionado para que sea publicado públicamente en AppExchange, y para que admite actualizaciones. Una organización puede crear un único paquete administrado que puede ser descargado e instalado por muchas organizaciones diferentes. Se diferencian de los paquetes no administrados en que algunos componentes están bloqueados, lo que permite que el paquete administrado se actualice más adelante. Los paquetes no administrados no incluyen componentes bloqueados y no se pueden actualizar. Además, los paquetes administrados ofuscan ciertos componentes (como Apex) en las organizaciones suscriptoras, a fin de proteger la propiedad intelectual del desarrollador.

La ventaja del paquete administrado es que le permite realizar versiones y distribuir fácilmente cosas en múltiples organizaciones de SFDC.

2

Otra opción es utilizar Change Sets si desea mover metadatos de un entorno limitado a producción.

Actualmente hay unos limitaciones en cuanto se pueden utilizar conjuntos de cambios:

Envío de un conjunto de cambios entre dos organizaciones requiere una conexión despliegue . Actualmente, los conjuntos de cambios solo se pueden enviar entre organizaciones que están afiliadas a una organización de producción, por ejemplo , una organización de producción y un sandbox, o dos sandboxes creados desde la misma organización.

0

Todavía estoy luchando con esto yo mismo. Ni el IDE de la herramienta de migración han resuelto los principales problemas que enfrentamos, que son los siguientes:

  1. paquetes instalados no se pueden implementar en un desarrollador Org. Tienes que instalarlos uno por uno en la Org Dev.

    Si un paquete no se puede instalado en el organigrama (por ejemplo, debido a que requiere una contraseña, como Marketo Sales Insight, o porque ya no se utiliza, como Salesforce for Google Adwords) y nuestra aplicación tiene dependencias en él (como referencias a campos en objetos que pertenecen al paquete ), entonces no podremos implementar la aplicación.

    Solución: si un paquete no se puede instalar de forma manual en un DEv Org cada desarrollador tendrá su propia caja de arena desarrollador. Se pueden solicitar Sandboxes de desarrollador adicionales desde Salesforce. (El cliente tiene que estar dispuesto a pagar por ellos, aunque ...)

  2. Cuando la caja de arena se actualiza desde la producción y refrescar nuestra proyecto local (que está conectado a SVN) desde el servidor de todos archivos adicionales/código que estaba en en el antiguo recinto de seguridad, pero no es en producción se va a mover al nuevo Sandbox.

    Solución: todos cambios realizados en la producción deben ser replicados en el recinto de seguridad y los Org desarrollador. (un tipo de dolor, pero está bien ...)

Cuestiones relacionadas