Éste artículo es una traducción del original publicado aquí
Este post está inspirado por un popular artículo de mi ex compañero Humberto Lezama acerca del cuándo se pueden usar plugin, workflow para poder implementar lógicas personalizadas en Microsoft Dynamics CRM 2011. Deberé de expander esta matriz para agregar criterio adicionales y mayor detalles acerca de cómo cada plugin vs workflow manejan diferentes tipos de requerimientos. Adicionalmente, tengo que agregar los nuevos eventos. Los “diálogos” como una nueva alternativa para su uso.
| Criterio | Usar Plugin | Usar Workflow | Usar Diálogos |
| Se necesita ejecutar lógica personalizada síncronamente. | Soportan la ejecución síncrona. | Siempre se ejecutan síncronamente. | |
| La lógica necesita ser ejecutada en modo Offline | Soportan la ejecución Offline | ||
| Necesita privilegios elevados (impersonation) | En los pasos del plugin, se puede seleccionar con que usuario se ejecuta el proceso. | En algunos casos se puede controlar la ejecución del workflow con un usuario, al que se le debería de asignar el workflow | |
| Se necesita en la ejecución de otros eventos tales como crear, asignar, actualizar y set state | Pueden ser registrados en cualquier de esos eventos. Ver la lista de mensajes del SDK | ||
| Para que se complete el proceso lógico, este puede tardar un lapso largo de tiempo.. | No tienen limite de tiempo. Estos solo pueden esta en espera o ejecucarse en fechas posteriores. Los plugin tienen fechas limites ya que se completan en un par de minutos | ||
| Ejecución asíncrona | Soporta la ejecución asíncrona. | Soportan la ejecución asíncrona. | |
| Los usuarios finales pueden modificar el proceso lógico | Este proceso puede ser modificado usando el diseñador de Flujos del CRM. Este diseñador no requiere al administrador IT, ni recompilar e implementar las ddl de los plugin. | ||
| Los su flujos pueden ser desencadenados |
| Soportan la ejecución de sub flujos. | |
| Se deberá de leer parámetros de configuración para su ejecución | Se puede definir la configuración al definir los pasos de los plugin. Esos parámetros pueden ser enviados al constructor del plugin donde fácilmente son actualizados | No puedes leer parámetros de configuración, sin embargo ellos puedes recibir información desde la interacción de los usuarios. | |
| La ejecución en demanda | Puedes ser ejecutados en demanda | ||
| Poder hacer roll back transacción en caso de error | Pueden registrar transacciones. Permiten el roll back en la operaciones principales si los plugin fallan. | ||
| Los plugin/workflow no es posible implementarlos por el diseñador | Son escritos en Net y estos soportan cualquier acción que pueda ser mostrada en el SDK de Dynamics CRM | Se puede extender los workflow/diálogos para crear actividades personalizadas solo con escribir en NET y llamando a métodos del CRM SDK. Sin embargo estos no son soportados en CRM OnLine | |
| La interacción con el usuario es requerida para la ejecución de la lógica personalizada | Los procesos pueden ejecutarse con la petición de datos a los usuarios finales. | ||
| Los procesos personalizados puede ser ejecutados antes de la operación principal | Pueden ser registrados para ser ejecutados Pre operaciones. | ||
| Unir la data desde la entidad Pre Imagen | Se puede registrar imagines en los plugin | Las pre-imágenes son permitidas pero solo en los workflow customizados. No son soportados OnLine | |
| Unir la data desde la entidad Pre Imagen | Se puede registrar post imágenes | Las post imágenes están permitidas desde el diseñador | |
| Se necesita que este dentro de una solución | Estas soluciones están soportadas. | ||
| Usar variables para almacenar data temporalmente | Usa variables compartidas para el almacenamiento de datos. Estas variables pueden ser pasadas a otros plugin del proyecto. | El uso de las variables compartidas pueden pasarse de un paso a otro. | Soportan variables de tipo String, Enteros y Float. Que podrían ser enviados de una paso a otro. Para estos tipo de variables compartidas pueden usarse desde los workflow. |








0 comentarios