Acceder al iésimo registro de una colección

<< Clic para mostrar Tabla de Contenidos >>

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

Acceder al iésimo registro de una colección

En algunas situaciones es necesario obtener o manipular la información de un registro específico en una colección.

Para ello no es necesario iterar sobre toda la colección y detenerse cuando se encuentre el registro deseado. Al conocer la posición del registro de la colección, se puede acceder fácilmente a él a través de una expresión.

 

La sintaxis que se utiliza para acceder a esta información es la siguiente:

 

Para obtener información

 

Collection.get(index of the record). getXPath("Attribute")

Para asignar un valor

 

Collection.get(index of the record). setXPath("Attribute",value)

 

note_pin

Tenga en cuenta que los índices del los registros dentro de la colección, siempre inicia en 0.

 

Supongamos que una empresa utiliza Bizagi para sortear diferentes premios entre sus clientes. Un servicio externo genera un número aleatorio que representa la posición del cliente, dentro de la colección de clientes. Como el número de clientes puede ser muy grande, el nombre del ganador se almacena en un atributo de tipo de string. Una vez obtenida esta información, el cliente se identifica como ganador en la base de datos, con el fin de que excluirlo en futuros sorteos.

 

El siguiente es el modelo de datos asociado al proceso:

 

AccessSpecificRecord1

 

 

Para obtener la información del ganador, desde la colección del clientes, siga los pasos descritos a continuación:

 

1. Vaya a la actividad en la que se realiza el sorteo y cree una expresión a la entrada. A continuación, cree un módulo de expresión.

 

AccessSpecificRecord2

 

2. El número aleatorio generado por el servicio externo se almacena en el atributo WinnerIndex. Escriba la siguiente expresión para obtener el nombre del ganador de la colección de los clientes. Este se almacena en el atributo WinnerName.

 

AccessSpecificRecord3

 

//Obtenga el indicie del ganador dentro de la colección de clientes

WinnerIndex=<Raffle.WinnerIndex>

 

//Obtenga la colección de clientes

Clients=Me.getXPath("Raffle.Clients");

 

//Obtenga el nombre del ganador utilizando el indice del cliente dentro de la colección de clientes

<Raffle.WinnerName>=Clients.get(WinnerIndex).getXPath("Name");

 

 

3. Ahora, para identificar al cliente como un ganador use la siguiente línea. Esto asignará al atributo Winner del ganador, el valor true.

 

AccessSpecificRecord4

 

//Actualice la información del ganador utilizando el indice del cliente dentro de la colección de clientes

Clients.get(WinnerIndex).setXPath("Winner",true);

 

4. Finalmente vaya al Portal de Trabajo para probar la expresión.

 

 

AccessSpecificRecord5