Elemento For

<< Click to Display Table of Contents >>

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

Elemento For

Resumen

El elemento For ofrece la posibilidad de incluir la lógica de un ciclo ejecutado un número de veces. El valor inicial de la variable se incremente en un número fijo cada iteración. El ciclo se ejecuta hasta que una condición de salida es cumplida.

 

Es necesario incluir cuatro parámetros dentro del For.

La inicialización del ciclo indica la variable de control utilizada para regular el número de veces que el ciclo es ejecutado.

El valor inicial de la variable de control, esté se fija con una constante. El valor inicial puede ser cualquier número que cumpla sus necesidades, por defecto es cero (0).

El Incremento/Decremento del ciclo, indica la cantidad es que la variable a incrementar/disminuir en cada iteración. La variable se pude modificar en cualquier cantidad. La cantidad por defecto en uno (1).

La condición del ciclo es evaluada al final de cada iteración. El ciclo continúa iterando mientras la condición sea verdadera. Si la condición No se cumple (es falso), el ciclo termina y la regla continúa con el siguiente elemento del diagrama de actividad.

 

Business Rules Elements35

 

¿Qué se debe hacer en Bizagi?

1. Cree una expresión de Script.

2. Declare una variable para guardar los elementos de la colección.

3. Cree un elemento For e incluya la lógica del ciclo.

4. Defina las operaciones o cálculos que se deben realizar dentro del ciclo.

5. Guarde la regla.

 

Ejemplo

Suponga que trabaja en un banco donde realiza el análisis inicial del solicitante para verificar si era elegible para otorgarle los productos financieros solicitados.

Si el solicitante pasa la primera evaluación, el banco solicitará diferentes documentos al cliente como soporte de la información presentada. Existe una entidad paramétrica, Documentos del Solicitante, que contiene una lista de todos los documentos que el banco necesita solicitar de acuerdo a los productos solicitados. Por lo que es necesario examinar la lista y extraer solo los documentos que aplican para cada caso. Los documentos serán relacionados con la tabla del Caso.

 

El siguiente es el Modelo de Datos del ejemplo, las tablas paramétricas se muestran en color verde y las maestras en azul.

 

Business Rules Elements36

 

 

1. Cree una regla Al Entrar de la actividad donde se mostrará la lista de documentos.

 

2. Declare las variables que se van a utilizar.

FilterDocsXApplicant (object): El filtro para encontrar los documentos dentro de tabla paramétrica que aplican al caso.

DocsXApplicant (object): La variable de iteración que guarda los documentos seleccionados de la tabla paramétrica. Esta variable será filtrada utilizando FilterDocsXApplicant.

Count (int): La variable contador. Está comienza en cero e incrementa en uno en cada iteración.

IdDocument (int): Variable que guarda el identificador único del documento. El identificador es el punto de acceso al registro actual en la colección DocsXApplicant.

ApplicantDocument (object): La variable resultado que guarda los documentos seleccionados que posteriormente se adicionaran uno a uno en la colección del caso.

 

Business Rules Elements37

 

 

3. Adicione un elemento de expresión para obtener los registros de la entidad paramétrica Documentos por solicitante que apliquen para el caso.

 

Business Rules Elements39

 

//Guarde el filtro en una variable, de acuerdo con el rol del aplicante y la fuente de ingresos

FilterDocsXApplicant = "idApplicantRole = " + <idApplicant.idApplicantRole.id>

+ " and IncomeSource = " + <idApplicant.IncomeSource.id>;

//Almacene los registros de la entidad paramétrica que cumplan con el filtro en la variable

DocsXApplicant = CEntityManager.GetEntity("DocumentXApplicant").GetEntityList("",null,FilterDocsXApplicant,"");

 

4. Incluya el elemento For.

Seleccione la variable contador e inicie en cero, esto indicará el punto de inicio para guardar el primer registro. Es decir, el ciclo empieza en el primer registro de la variable DocsxApplicant.

La variable se incrementará en uno para incluir cada registro de DocsXApplicant en ApplicantDocument.

 

Cree una condición: el ciclo se ejecutará hasta que la variable DocsXApplicant tenga registros a incluir dentro de la colección.

 

Count < DocsXApplicant.Length

 

Business Rules Elements35

 

5. Agregue un elemento de asignación para incluir los registros a la colección de documentos.

 

// Guarda el identificador del documento del registro actual de la colección DocsXApplicant (variable de iteración).

IdDocument = DocsXApplicant[Count].Attributes["idDocument"].Value;

// Agrega un elemento (nuevo registro) en la entidad Documentos del aplicante (relación uno a muchos)

ApplicantDocument = Me.newCollectionItem("idApplicant.Documents");

//Asigna el identificador del documento al nuevo registro.

ApplicantDocument.setXPath("idDocument",IdDocument);

//Asigna el atributo requerido (Verdadero o Falso) del nuevo registros

ApplicantDocument.setXPath("Required",DocsXApplicant[Count].Attributes["Required"].Value);

 

 

Business Rules Elements38

 

Note que la variable ApplicantDocument se utiliza para copiar los valores desde la entidad paramétrica Document per Applicant a la entidad Applicant Document.

La expresión agrega cada registro de manera individual, iterando la entidad paramétrica.

 

Variable.setXPath("atributo en la colección", valor a setear);