Spiga

Seguridad en las reglas de Workflow en Microsoft CRM 3.0

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:

  • Si el usuario que propietario de la regla pertenece a la unidad de negocios principal, la regla se aplica a la unidad de negocios principal y todas las unidades de negocios que dependen de ella.
  • Se desprende del hito anterior, que para crear reglas que sean disparadas para una unidad de negocio en particular y todas sus "hijas", el Workflow se debe crear con un usuario de dicha unidad de negocios.
  • La cuenta de usuario que crea la regla debe tener privilegios de acceso a nivel de organización sobre Procesos e Instancias de procesos.
  • La cuenta de usuario que crea la regla debe tener privilegios para realizar las acciones que en el Workflow se realizan.
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

0 comentarios: