Hoy quería comentarles un problema que tuve hace un tiempo con con los Wokflows en Microsoft CRM 3.0.
Es una practica común abrir el Workflow Manager (Administrador de flujos de trabajo) para crear alguna regla de Workflow y hacerlo con el administrador de CRM... y acá empezó mi problema.
El problema básicamente era que tenía una regla sobre la entidad de cuenta creada con una cuenta de usuario con el rol de administrador de CRM. La regla era algo muy sencillo, "Al crear una cuenta enviar un e-mail a la misma dándole la bienvenida como cliente".
Por supuesto active la regla y al crear una cuenta... nada. No se disparaba la regla. Probé reiniciando el servicio de Workflow.. y nada tampoco.
En el visor de eventos encontraba el siguiente error:
Condition {7565170E-646D-DC11-9B9A-001320950F24} failed in step {7265170E-646D-DC11-9B9A-001320950F24} of process instance {6A65170E-646D-DC11-9B9A-001320950F24}. Please view the paused rule in the Microsoft.Crm.Workflow.Monitor for more information about the failure.
Y en el Monitor de flujos de trabajo??.. ni la regla aparecía, mas allá que el error logueado en el visor de eventos indicaba que para obtener mas información lo verifique allí.
Después de varias idas y vueltas encontré el problema. El usuario con el que creé la regla estaba en modo de acceso restringido. Esto era así por que el usuario cumplía el rol de administrador de CRM y no de usuario de la aplicación, y no tenia sentido utilizar una licencia con ese usuario.
La explicación del por que no funciona se basa en que las reglas automáticas (no manuales) se impersonan, es decir, se ejecutan bajo los permisos del usuario que creó la regla.
En este caso como el usuario estaba en modo de acceso restringido no podía realizar las acciones que pretendía la regla de Workflow realizar.
Aprovecho la oportunidad para comentarles algunas otras cosas a tener en cuenta sobre el usuario que crea las reglas de Workflow son:
Otro dato importante a tener en cuenta es que al reasignar registros del propietario del Workflow, este no se reasigna.
Como conclusión, verifiquen antes de crear una regla de Workflow, con que cuenta de usuario lo van a realizar!!.
Saludos