Obtener propiedades de usuario

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Bizagi Studio > Asistente de Procesos > Reglas de Negocio > Ejemplos de reglas de negocio >

Obtener propiedades de usuario

Bizagi provee un conjunto de información denominada Propiedades de Usuario que es relevante para cada usuario individualmente. Esta información incluye nombre de usuario, dirección de correo electrónico, dominio, roles, posiciones, usuario delegado, entre otros.

 

Usted puede crear propiedades de usuario adicionales para sus usuarios tales como fecha de nacimiento, número de afiliación a seguridad social, estado civil, o cualquier otra requerida por su Procesos, que no esté incluida entre la información por defecto de Bizagi.

 

Las propiedades de usuario pueden ser de tipos de datos simples o pueden estar relacionados con entidades paramétricas o del sistema a través de tipos de relación uno a muchos o muchos a muchos. Usted puede acceder a esta información desde expresiones para utilizarla como información del Proceso. Generalmente es posible navegar a estas propiedades por medio de XPath, cuando no es posible se deben usar otros métodos, tal como. Aquí hay algunos ejemplos mostrando cómo obtener estas propiedades con XPath y por medio de otro método.

 

Obtener una propiedad de usuario de tipo de dato simple

Obtener una propiedad de usuario relacionada a una entidad a través de un tipo de relación uno a muchos

Obtener una propiedad de usuario relacionada a una entidad a través de un tipo de relación muchos a muchos

Filtrar una propiedad de usuario sin XPath

 

Ejemplo

En el siguiente ejemplo, suponga que se tienen las siguientes propiedades: Identification Number, Office, Skills, entre otras. Donde Identification Number (Número identificación) es de tipo dato simple, Office (oficina) es una relación uno a muchos y Skills (Habilidades) es una propiedad por defecto con una relación muchos a muchos.

Estas propiedades se pueden ver en el siguiente diagrama:

 

UserProperties01

 

 

 

Obtener propiedades de usuario de tipo de dato simple

Suponga que su empresa tiene un proceso para Solicitud de Viajes (Travel Request), donde el número de identificación del solicitante se necesita para reservar sus vuelos.

 

UserProperties03

 

Esta es una propiedad de tipo simple que se puede obtener usando XPath, de la siguiente forma:

 

UserProperties02

 

La expresión anterior es la siguiente:

RequesterIdNumber = <TravelRequest.Applicant.IdentificationNumber>;

 

 

Obtener propiedades de usuario relacionadas a una entidad a través de relaciones de tipo uno a muchos

Suponga que su empresa tiene un proceso para Quejas y Reclamos (Claims and Complaints), y se necesita obtener la oficina (Office) donde la persona (Person) asociada a la queja trabaja.

 

UserProperties04

 

La oficina (Office) es una propiedad de tipo relación de uno a muchos, se puede obtener por medio de XPath así:

 

UserProperties05

 

La expresión anterior es la siguiente:

Office = <ClaimandComplaintRequest.Person.idOffice>;

 

 

Obtener propiedades de usuario relacionadas a una entidad a través de relaciones de tipo muchos a muchos

Suponga que su empresa tiene un proceso para Quejas y Reclamos (Claims and Complaints), y se necesita obtener las habilidades (Skills) (propiedad por defecto) de la persona (Person) asociada a la queja.

 

UserProperties04

 

Las habilidades (Skill) son una propiedad con una relación muchos a muchos, en este caso es necesario navegar hasta el objeta para obtener cada valor, así;

 

UserProperties06

 

La expresión anterior es la siguiente:

var PersonSkills = CHelper.GetValueAsCollection(Me.Context.getXPath("ClaimandComplaintRequest.Person.Skills"));

for(var i=0; i<PersonSkills.Count; i++){

 var skill = Me.newCollectionItem("ClaimandComplaintRequest.PersonSkills");

 skill.setXPath("SkillName", PersonSkills[i].getXPath("skillDisplayName"));

}

 

Las habilidades se mostrarían de la siguiente manera:

 

UserProperties07

 

 

Filtrar una propiedad de usuario sin XPath

Suponga que se necesita obtener la lista de Subordinados (Subordinate) para un Empleado (Employee) seleccionado para el proceso Vacation Leave Request de la compañía con el propósito de informarles los días en los que su jefe estaría de vacaciones.

 

UserProperties10

 

Para lograrlo, es indispensable obtener la lista de usuarios con idBossUser igual al usuario seleccionado por medio del método entity-list. Es necesario hacer uso de este método, pues se necesita filtrar todos los usuarios registrados para encontrar aquellos que cumplan la condición del idBossUser. Si nuestra entidad maestra tuviera una colección del tipo WFUSER para los subordinados, este filtro sería por medio de XPath.

 

UserProperties08

 

La expresión anterior es la siguiente::

var bossId = <VacationLeaveRequest.Employee.idUser>;
var userList = Me.getXPath("entity-list('WFUSER','idBossUser = " + bossId + "')");
for (var i = 0 ; i < userList.Count ; i ++){
  var subOrdinate = Me.newCollectionItem("VacationLeaveRequest.Subordinate");
  subOrdinate.setXPath("Name",userList[i].getXPath("fullName"));
  subOrdinate.setXPath("Email",userList[i].getXPath("contactEmail"));
}

 

La lista de subordinados se mostrará de esta manera:

 

UserProperties09