Obtener usuarios basados en componentes de la organización

<< Click to Display Table of Contents >>

Navigation:  Bizagi Studio > Asistente de Procesos > Reglas de Negocio > Ejemplos de reglas de negocio >

Obtener usuarios basados en componentes de la organización

En una organización es una práctica común utilizar la clasificación de un empleado para realizar asignaciones o configurar permisos. Bizagi permite obtener una lista de usuarios clasificados por las categorías: Posición, Rol, Habilidades.

 

Usuarios en una posición especifica.

Es posible obtener una lista de los usuarios que tienen cierta posición dentro de la organización utilizando la función getUsersForPosition.

La función retorna una lista con el identificador de los usuarios que tienen la posición indicada.

La sintaxis de la función es:

 

CHelper.getUsersForPosition(posName)

 

El parámetro es el nombre de la posición.

 

Usuarios con un rol específico.

Es posible obtener una lista de los usuarios que tienen cierto rol dentro de la organización utilizando la función getUsersForRole.

La función retorna una lista con el identificador de los usuarios que tienen el rol indicado.

La sintaxis de la función es:

 

CHelper.getUsersForRole(roleName)

 

El parámetro es el nombre del rol.

 

Usuarios con un rol específico.

Es posible obtener una lista de los usuarios que tienen cierta habilidad dentro de la organización utilizando la función getUsersForSkill.

La función retorna una lista con el identificador de los usuarios que tienen la habilidad indicada.

La sintaxis de la función es:

CHelper.getUsersForSkill(skillName)

 

El parámetro es el nombre de la habilidad.

 

Para obtener la posición, rol o habilidad deseada; navegue en la vista de experto al nodo de atributos de la tabla (orgposition, role o skill) que se encuentra en el nodo Systema de la pestaña de entidades. Tenga en cuenta que la columna deseada se llama posName, roleName o skillName.

Sin embargo, la función getEntityAttrib puede ser usada en la tabla para obtener el nombre dinámicamente usando un filtro.

 

GetUsersfromorganization0

 

Para utilizar alguna de las funciones mencionadas, debe estar en el editor de expresiones, luego, en la opción Funciones seleccionar la categoría Usuarios (funciones generales).

Clic en la función deseada para incluirla dentro del código.

 

GetUsersfromorganization1

 

Ejemplos

Los siguientes ejemplos le mostrarán como utilizar estas funciones.

 

Obtener usuarios con cierta posición

Obtener usuarios con cierto rol

Obtener usuarios con cierta habilidad

 

Ejemplo de como obtener usuarios con cierta posición

Imagine un proceso de Mesa de Ayuda, la persona de soporte recibe los casos, los cuales deben ser asignados a un técnico que este disponible. El caso hace referencia a una colección llamada Técnicos disponibles, la cual contiene los usuarios que tienen la posición Técnico de soporte.

Para llenar la colección es necesario obtener los técnicos calificados de la entidad WFUser, basándose en sus posiciones.

 

CHelper22

 

1. En el cuarto paso del asistente, seleccione Acciones de la Actividad.

Dé clic en la primera tarea del proceso y cree una expresión Al entrar.

 

CHelper14

 

2. Cree dos elementos de expresión un elemento FOR como se muestra a continuación.

En el primer elemento expresión, declare las variables y obtenga la lista de usuarios con la posición específica.

Utilice el módulo FOR para iterar sobre cada registro e la lista.

En el otro elemento expresión, incluya cada registro a la colección AvailableTechnitians.

 

CHelper27

 

3. En el módulo de la primera expresión declare las siguientes variables:

UsersArray: Guarda la lista de usuarios que pertenecen a una posición específica.

IterationIndex: Contador para el ciclo FOR.

TempIdUser: Guarda temporalmente un registro específico de la lista de usuarios.

newRow: Crea un nuevo registro en la relación donde se incluirá el usuario.

 

CHelper16

 

4. Obtenga una lista de usuarios con la posición deseada utilizando la función Get users in Position de la categoría Usuarios.

 

CHelper30

 

//Obtener la lista de usuarios con una posición específica y guardarla en una variable.

UsersArray=CHelper.getUsersForPosition("SupportTechnician");

 

5. Itere la lista utilizando un elemento FOR. El ciclo comienza en Cero (0) y termina en el último índice de la lista.

La sentencia UsersArray.Count regresará el número total de usuarios encontrados (es decir, cuenta los elementos del arreglo).

El ciclo será ejecutado mientras que el índice de la colección sea menor que el número total de elementos del arreglo.

 

CHelper18

 

6. Incluya el siguiente código en el segundo elemento de expresión para obtener el identificador del usuario.

Luego, cree una nueva fila en la colección Available Technicians.

Agregar del id del técnico en la nueva línea.

 

CHelper19

 

//Obtener la identificación del usuario de la iteración actual del arreglo.

TempIdUser=UsersArray(IterationIndex);

//Agregar un nuevo registro a la colección AvailableTechnicians

newRow=Me.newCollectionItem("Ticket.AvailableTechnicians");

//Asigne a la columna Technician el userid obtenido previamente.

newRow.setXPath("Technician",TempIdUser");

 

La colección se mostrará en el Portal de Trabajo de la siguiente forma:

 

 

CHelper29

 

Ejemplo de como obtener usuarios con cierto rol

Imagine un proceso de Mesa de Ayuda, la persona de soporte recibe los casos, los cuales deben ser asignados a un técnico que este disponible. El caso hace referencia a una colección llamada Técnicos disponibles, la cual contiene los usuarios que tienen el rol Técnico IT.

Para llenar la colección es necesario obtener los técnicos calificados de la entidad WFUser, basándose en sus roles.

 

 

CHelper12

 

1. En el cuarto paso del asistente, seleccione Acciones de la Actividad.

Dé clic en la primera tarea del proceso y cree una expresión Al entrar.

 

CHelper14

 

2. Cree dos elementos de expresión un elemento FOR como se muestra a continuación.

En el primer elemento expresión, declare las variables y obtenga la lista de usuarios con el rol específico.

Utilice el módulo FOR para iterar sobre cada registro e la lista.

En el otro elemento expresión, incluya cada registro a la colección AvailableTechnitians.

 

CHelper15

 

3. En el módulo de la primera expresión declare las siguientes variables:

UsersArray: Guarda la lista de usuarios que pertenecen al rol específico.

IterationIndex: Contador para el ciclo FOR.

TempIdUser: Guarda temporalmente un registro específico de la lista de usuarios.

newRow: Crea un nuevo registro en la relación donde se incluirá el usuario.

 

 

CHelper16

 

4. Obtenga una lista de usuarios con el rol deseado utilizando la función Get users in Role de la categoría Usuarios.

 

CHelper17

 

//Obtener la lista de usuarios con un rol específico y guardarla en una variable

UsersArray=CHelper.getUsersForRole("ITTechnician");

 

5. Itere la lista utilizando un elemento FOR. El ciclo comienza en Cero (0) y termina en el último índice de la lista.

La sentencia UsersArray.Count regresará el número total de usuarios encontrados (es decir, cuenta los elementos del arreglo).

El ciclo será ejecutado mientras que el índice de la colección sea menor que el número total de elementos del arreglo.

 

CHelper18

 

6. Incluya el siguiente código en el segundo elemento de expresión para obtener el identificador del usuario.

Luego, cree una nueva fila en la colección Available Technicians.

Agregar del id del técnico en la nueva línea.

 

CHelper19

 

//Obtener la identificación del usuario de la iteración actual del arreglo.

TempIdUser=UsersArray(IterationIndex);

//Agregar un nuevo registro a la colección AvailableTechnicians

newRow=Me.newCollectionItem("Ticket.AvailableTechnicians");

//Asigne a la columna Technician el userid obtenido previamente.

newRow.setXPath("Technician",TempIdUser");

 

Clic en Ok para guardar.

 

La colección se mostrará en el Portal de Trabajo de la siguiente forma:

 

CHelper20

 

 

Ejemplo de como obtener usuarios con cierta habilidad

Imagine un proceso de Mesa de Ayuda, la persona de soporte recibe los casos, los cuales deben ser asignados a un técnico que este disponible. El caso hace referencia a una colección llamada Técnicos disponibles, la cual contiene los usuarios que tienen la habilidad IT y conocimiento de redes.

Para llenar la colección es necesario obtener los técnicos calificados de la entidad WFUser, basándose en sus habilidades.

 

CHelper21

 

1. En el cuarto paso del asistente, seleccione Acciones de la Actividad.

Dé clic en la primera tarea del proceso y cree una expresión Al entrar.

 

CHelper14

 

2. Cree dos elementos de expresión un elemento FOR como se muestra a continuación.

En el primer elemento expresión, declare las variables y obtenga la lista de usuarios con la habilidad específica.

Utilice el módulo FOR para iterar sobre cada registro e la lista.

En el otro elemento expresión, incluya cada registro a la colección AvailableTechnitians.

 

CHelper24

 

3. En el módulo de la primera expresión declare las siguientes variables:

UsersArray: Guarda la lista de usuarios que pertenecen a la habilidad específica.

IterationIndex: Contador para el ciclo FOR.

TempIdUser: Guarda temporalmente un registro específico de la lista de usuarios.

newRow: Crea un nuevo registro en la relación donde se incluirá el usuario.

 

CHelper16

 

4. Obtenga una lista de usuarios con la posición deseada utilizando la función Get users in Skill  de la categoría Usuarios.

 

CHelper25

 

//Obtener el identificador de la Habilidad y guaradarlo en unavariable

var SkillId = CHelper.getEntityAttrib("SKILL","idSkill","skillName='ITandNetworksKnowledge'","");

//Obtener la lista de usuarios con un rol específico y guardarla en una variable

UsersArray=CHelper.getUsersForSkill("ITandNetworksKnowledge");

 

5. Itere la lista utilizando un elemento FOR. El ciclo comienza en Cero (0) y termina en el último índice de la lista.

La sentencia UsersArray.Count regresará el número total de usuarios encontrados (es decir, cuenta los elementos del arreglo).

El ciclo será ejecutado mientras que el índice de la colección sea menor que el número total de elementos del arreglo.

 

CHelper18

 

 

6. Incluya el siguiente código en el segundo elemento de expresión para obtener el identificador del usuario.

Luego, cree una nueva fila en la colección Available Technicians.

Agregar del id del técnico en la nueva línea.

 

CHelper19

 

//Obtener la identificación del usuario de la iteración actual del arreglo.

TempIdUser=UsersArray(IterationIndex);

//Agregar un nuevo registro a la colección AvailableTechnicians

newRow=Me.newCollectionItem("Ticket.AvailableTechnicians");

//Asigne a la columna Technician el userid obtenido previamente.

newRow.setXPath("Technician",TempIdUser");

 

La colección se mostrará en el Portal de Trabajo de la siguiente forma:

 

CHelper26