Asignaciones usando expresiones

<< Click to Display Table of Contents >>

Navigation:  Bizagi Studio > Asistente de Procesos > Participantes >

Asignaciones usando expresiones

Las Expresiones en las reglas de asignación suelen ser necesarias cuando se debe evaluar condiciones complejas y seleccionar usuarios que cumplan con las condiciones que se encuentran en dicha expresión.

 

Para usar expresiones en una asignación, se debe seleccionar la propiedad de User Id  y la opción de Expresión.

 

La expresión creada debe devolver un arreglo de identificadores de los usuarios que cumplan con las condiciones necesarias. La asignación se evaluará sobre los ids de los usuarios retornados.

 

Ejemplo

En un proceso de contratación de personal un solicitante ingresa la información de un nuevo cargo, incluyendo descripción del trabajo, salario, etc.

Las siguientes actividades que incluyen la creación de requisitos y recoger documentos pueden ser realizados por cualquier usuario cuyo jefe es el solicitante del proceso.

Por lo tanto tenemos que utilizar una expresión que encuentre todos los usuarios que comparten el solicitante como jefe.

 

Supongamos que en la primera actividad se guarda el id del Solicitante en un atributo: <Onboarding.Requester>

 

1 . En la definición de ejecutantes, en el quinto paso del Asistente de Proceso, haga clic en la actividad a definir.

 

2 . Seleccione User Id como la propiedad de la asignación y seleccione Expresión como condición. Haga clic en Seleccionar Expresión.

 

 

Task Allocation18

 

3. Marque la opción Basado en el resultado de una expresión.

 

Task Allocation 40

 

4. Seleccione la opción Nuevo.

 

Task Allocation 41

 

5. Cree la siguiente expresión.

 

Task Allocation 42

 

 

 

// Cree un arreglo

var Users = new ArrayList();

// Guarde en una variable el solicitante

var Requester = <Onboarding.Requester.Id>;

// Obtenga todos los usuarios cuyo jefe sea el solicitante

var SearchUsers = CEntityManager.GetEntity("WFUser").GetEntityList("","","idBossUser = "+ Requester,"");

// Cuente los usuarios que cumplen con la condición

var HowManyUsers = SearchUsers.Length;

if(HowManyUsers > 0)

{

// Agregue cada usuario al arreglo

 for (var i=0; i < HowManyUsers; i++)

 {        

         var idUser = SearchUsers[i].SurrogateKeyValue;

         Users.Add(idUser);

 }

}

Users;

 

6. De un nombre a la expresión.

Debe tener un aspecto como este.

 

Task Allocation 39