Cuando desarrollamos una acción personalizada de flujo de trabajo en Dynamics CRM encontramos que no podemos depurar el código fuente de manera directa, ya que para ello es necesario crear el contexto de ejecución del flujo de trabajo.

Una opción para depurar nuestro código fuente es asociarlo al servicio que se encarga de procesar los flujos de trabajo y lanzando el propio flujo desde CRM.

Para ello tenemos seguir estos pasos:

1. Copia de archivos .dll y .pdb

Una vez compilado nuestro código de la acción de flujo de trabajo hay que copiar el archivo .dll y el archivo .pdb correspondiente, y pegarlos en la ruta “…Microsoft Dynamics CRMServerbinassembly”, existente en el servidor donde se encuentra instalado CRM.

 

2. Registro de la acción personalizada

Para poder ejecutar la acción que hemos creado primero debemos registrar dicha acción en CRM. En este caso se ha utilizado la “Plugin Registration Tool“.

3. Creación del flujo de trabajo en CRM

Una vez registra la acción debemos crear en CRM un flujo de trabajo que utilice nuestra acción.

Tip: en general para facilitar las pruebas configurar el flujo de trabajo para ser ejecutado bajo petición.

 

4. Asociar al proceso

Desde Visual Studio asociamos nuestra acción con el proceso que utilizan los workflows de Dynamics CRM.

En CRM 2013 se ha incluido la posibilidad de ejecutar flujos de trabajo de forma síncrona, además de la habitual asíncrona.

Si el flujo de trabajo está configurado para ejecución síncrona debemos asociar al proceso w3wp.exe mientras que si es asíncrono al Servicio de procesamiento asíncrono de CRM (CrmAsyncService.exe).

 

 

5. Ejecución del flujo de trabajo

Ahora, con nuestro proyecto en modo depuración y asociado al proceso solo tenemos que lanzar el flujo de trabajo desde CRM y veremos como se captura la ejecución en el primer punto de interrupción de nuestro proyecto de visual studio.