Os voy a hacer un spoiler antes de empezar, workflows casi siempre.
Después de crear muchos plugins y muchos workflows la balanza se va inclinando cada vez mas a hacer workflows y limitar la creación de plugins.
Hay un caso claro en el que hay que tirar por la vía del plugin sin opcion, y es cuando necesitamos comparar los datos de la entidad antes de la ejecución del cambio con los de después. En ese caso es imprescindible tener una pre-image y una post-image, y eso solo nos lo permiten los plugins. Para todo lo demás….
¿Y por que?
- Crear un workflow en tiempo real en Power Apps, es muy sencillo, se hace mediante un asistente y desde dentro de la propia interfaz de Power Apps (siempre desde una solución, no os olvidéis). Para codificar un plugin necesitamos Visual Studio, firmar la dll, y registrarla con PluginRegistration tool. Por suerte, tanto la dll como los pasos registrados se pueden migrar a otros entorno mediante soluciones.
- En un workflow podemos hacer los cambios necesarios para corregir cualquier error y volver a lanzarlo para el registro que necesitemos solo estableciendo que se pueda lanzar de manera manual. Para un plugin, aunque también se puede hacer, es un poco mas complejo.
- Cualquier funcionalidad compleja que podamos crear en un plugin podemos crearla en un workflow, si no de manera estándar, con el desarrollo de una workflow activity.
- Depurar un plugin se hace complicado, pero si metemos una workflow activity en nuestro workflow, también, con lo que en ese caso no es una ventaja. Pero en caso de no usar código y solo los pasos estándar de los workflows, podemos dejar registrados por dónde ha ido pasando nuestro workflow, dónde ha dado error, etc… hacemos una depuración totalmente visual.
- Si necesitamos algún parámetro de configuración para la ejecución de nuestro workflow, podemos usar una acción, en la que establezcamos los valores y los devolvamos al workflow. Esa acción no la actualizamos en futuras subidas a producción puesto que la configuraremos en producción se el valor es diferente al de los entornos previos.
- Una limitación aparente en los workflows es el acceso a entidades relacionadas con nuestro registro con más de un salto, sobre esto ya publique un post.
Los workflows podrían parecer una forma básica de automatismos, pero en realidad son más potentes de lo que aparentan. Se pueden hacer grandes cosas sin necesidad de programar. Y si hace falta tenéis toda la funcionalidad ya desarrollada por Demian Raschkovan en sus workflow-tools.