Toda la información de producto en wiki.bizagi.com aplica para Bizagi BPM Suite 9.1.X.
Para las nuevas versiones de Bizagi BPM Suite (10.X y superior) visite la Guía de Usuario.
 

Ejemplo get y set XPath

De

<keywords content="keywords">get(i), setXPath, getXPath, parametro</keywords> 

Contenido

Introducción a getXPath y setXPath

Usted puede navegar el modelo de datos para btener valor y setear valores a los atributos usiando XPath con las siguientes funciones:  (el Xpath siempre debe ir entre comilla doble):

Me.getXPath("XPath")

Me.setXPath("XPath",value)

Usted puede usar los braquets de diamante también indistintamente, mencionados en el artículo Usando XPath.


Las siguientes expresiones son equivalentes:

ExampleVariable = <Request.Clients.Age>

ExampleVariable = Me.getXPath("Request.Clients.Age")


<Request.Clients.Age> = ExampleVariable

Me.setXPath("Request.Clients.Age",ExampleVariable)


Cuando las colecciones deben ser filtradas usando variables en el filtro es NECESARIO usar setXPath y getXPath. En ese tipo de filtros no es posible usar el XPath entre braquets de diamante  '< >' .


La siguiente es la forma como se debe escribir un XPath filtrado con variable.

Me.getXPath("BusinessEntity.Fact[AttributeName= "+ variable +"]")


Para más información de filtros en colecciones por favor referirse a FIltros


Ejemplo

En un proceso de crédito, hay un control para chequear que todos los clientes de 45 o más años, les sea preguntado por seguros adicionales. El get(i).setXPath es usado para evaluar que todos los clientes ingresaron en la solicitud y marcar a aquellos que requieren seguro.


Este es el proceso:



Los clientes son ingresados en la actividad Request por el usuario y en la actividad Pre-Approval el usuario de la Administración de Riesgos tiene que identificar fácilmente cuáles clientes necesitan seguro adicional.

Así es como la información luciría en la primera actividad.



Este es el resultado que debería estar en la segunda actividad.



Para lograr este resultado es importante identificar en el Modelo de Datos en dónde la información requerida es encontrada.


Note que una solicitud puede tener más de un cliente y un cliente puede estar en más de una solicitud (relación de muchos a muchos).Además, una entidad no asociada llamada Paramétrica está creada para hacer referencia la edad (en este caso 45). Esto es fácilmente modificable desde la Aplicación Web en cualquier momento.


La Expresión (regla) para lograr esta tarea es como se muestra a continuación:



Estas son las variables que fueron declaradas al principio de la regla.



La primera expresión "Get Valid Group" debe ser expresada de la siguiente manera:



En la primera parte de la regla, el valor de la edad que requiere seguro es encontrado en la tabla sin asociación llamada Paramétrica. Es una buena práctica usar una entidad Paramétrica (Parameter) para guardar los valores que pueden cambiar con el tiempo y eso afecta las Expresiones. Eso permite que cambios sean hechos fácilmente desde la Aplicación Web. La tabla Paramétrica luce como:



Nota:  Una columna llamada Code es creada como referencia porque el id no debe ser usado para este tipo de situación.


En la segunda parte de la expresión previa Get Valid Group, todos los clientes que tiene 45 años y más son guardados para ser registrados, uno por uno, mediante la expresión FOR.



Finalmente, para marcar cada uno de los clientes que tienen 45 años o más, la expresión Set Field usa la expresión get(i).setXPath así:


Esta regla es guardada y asociada en el proceso como una Acción Al Salir (On Exit) de la primera actividad


Almacenar registros de una coleccion en un campo

Usted puede almacenar varios elementos contenidos en una grilla en un simple atributo, como texto separado por comas, utilizando una expresión.

Suponga que usted tiene un proceso denominado ProcesoA  La entidad de proceso se llama EntidadA y tiene una relación uno a muchos con la Entidad B.Dicha relacion recibe el nombre de CollecciónB. La EntidadB tiene un atributo denominado AtributoObjetivo, el cual es de tipo texto. Adicinalmente la EntidadA tiene un atributo denominado AtributoC donde se almacena la información.

La expresión tiene la siguiente estructura:

var List = <EntidadA.ColeccionB.AtributoObjetivo>;
<EntidadA.AtributoC> =Convert.toString(List);

Suponga que usted tiene una base de datos de clientes y cada cliente tiene un conjunto de contactos relacionados. Usted necesita invitar algunas compañías a una reunión, por lo que usted necesita obtener la lista de personas invitadas en un campo tipo texto extendido. Usted puede utilizar la siguiente expresión:

var Lista = <ProcesodePreparacióndelaReunion.CompañiasInvitadas.Contactos>; 
<ProcesodePreparacióndelaReunion.CampodeTextoExtendido> =Convert.ToString(Lista);

La grilla de compañias invitadas y la lista resultante de contactos muestran tal como en la siguiente imagen:


Temas Relacionados

<comments />