<< Clic para mostrar Tabla de Contenidos >> 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)
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:
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.
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.
//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");
Usted también puede obtener el id del registro en el que está iterando
//Obtenga el nombre del ganador utilizando el id
<Raffle.WinnerName>=Clients.get(WinnerIndex).getXPath("Id");
//Obtenga el nombre del ganador utilizando la llave primaria
<Raffle.WinnerName>=Clients.get(WinnerIndex).getXPath("idClients");
La llave primaria se construye concatenando la palabra "id" con el nombre de la entidad(por ejemplo, idClients) |
3. Ahora, para identificar al cliente como un ganador use la siguiente línea. Esto asignará al atributo Winner del ganador, el valor true.
//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.
Para tener un mejor desempeño, cuando se manipulen datos dentro de un ciclo, extraiga en una variable la entidad de proceso y después, utilice la variable dentro del ciclo.
Ejemplo:
var max = 1500; ... |
Last Updated 1/26/2022 4:09:00 PM