Funciones Xpath Exists Remove Distinct values Index of
De
<keywords content="keywords">exists, exist,</keywords>
Contenido |
Funciones XPath
Los siguientes ejemplo usarán la siguiente sintaxis. En el modelo de datos la Entidad de Proceso es: ProcessEntity.
Esta entidad puede ser relacionada con otras entidades hasta alcanzar una relación de uno a muchos.
<ProcessEntityAttribute.….AttributeN.FactName[Filter]>
- ProcessEntityAttribute.….AttributeN: el XPath que empieza con la Entidad de Proceso, hasta alcanzar la entidad de uno a muchos.
- FactName: Nombre de la relación de uno a muchos. Esta entidad tiene una colección de registros.
- Filter: Condición a ser alcanzada en la colección.
- AttributeName: Nombre del atributo en la entidad "muchos", la cual debe ser un atributo numérico.
Exists
Esta función devuelve Verdadero (true) cuando la colección tiene al menos un registro.
<exists(ProcessEntityAttribute,…,AttributeN.FACTNAME)>
Ejemplo: Verifiquemos si hay Documentos o no en la Solicitud <exists(Request.Request_DocumentReqi)> |
Para verificar si hay registros que cumplen una condición, sin usar variables en la condición.
<exists(ProcessEntityAttribute,….AttributeN.FACTNAME[Filter])>
Ejemplo: Verifiquemos si hay algún documento pendiente de recibir, o no.<exists(idRequest.Request_DocumentReq[!bReceived)> . Recuerde que el campo Received es Booleano. Para saber si el campo es falso, use la expresión: !bReceived. |
Para verificar si hay registros que cumplen una condición o no, usando variables dentro del filtro debe usar.
Me.getXPath(“exists(ProcessEntityAttribute,…,idAttributeN.FACTNAME[FilterVble])”) FilterVble: Condición a ser satisfecha usando variables.
Ejemplo: Verifiquemos si hay Documentos con la fecha actual. Me.getXPath("exists(idRequest.Request_DocumentReq[bDate = "+DateTime.Now+"])") |
Ejemplo: En el proceso Solicitud de Crédito, cuando el cliente presenta codeudores, el flujo del proceso debe entrar en el Subproceso de Evaluación de Personas donde la información de cada codeudor es verificada, incluyendo verificación de listas negras. |
Remove
Esta función es usada para borrar un registro que pertenece a una relación.
<remove(ProcessEntityAttribute1,….idAttributeN.FactName, position)>;
Position: Número que indica la posición del registro que usted quiere borrar. Este no recibe variables o atributos, únicamente valores numéricos.
Ejemplo: Borre la primera entrada de los Documentos Solicitados. <Remove(Request.Request_DocumentReq,0)> |
Borre una entrada indicando la posición con una variable
Me.getXPath(“remove(ProcessEntityAttribute1,….AttributeN.FactName, “ + vble + )”);
vble: Variable que contiene el número de la posición de la entrada que usted quiere borrar.
Ejemplo: Borrar la última entrada de los Documentos solicitados. var last = <count((Request.Request_DocumentReq)> -1; Me.getXPath(“Remove(Request.Request_DocumentReq,”+ last+”)”) |
Distinct Values
Esta función nos permite obtener una colección de valores de un atributo, sin valores repetidos. Usted ha de indicar el atributo para el cual los valores no serán repetidos.
<distinct-values(ProcessEntityAttribute1,…,AttributeN.FactName.AttributeName)>
AttributeName: Nombre del atributo para el cual los valores no serán repetidos.
Ejemplo: Obtenga los valores que tienen un término distinto <distinct-values(Request.Request_ LoanReq.iTerm)> |
¿Cómo obtener una colección sin registros repetidos de las registros que cumplen una condición, sin usar variables en el filtro?
<distinct-values(ProcessEntityAttribute1,…,AttributeN.FactNamae[Filter].AttributeName)>
AttributeName: Nombre del atributo para el cual los valores no serán repetidos.
Ejemplo: Obtenga los diferentes tipos de Solicitudes de Créditos, que han sido Aprobados. Suponga que la entidad Status no es Administrable y que el idStatus para los Aprobados es 1. <distinctvalues(Request.Request_LoanReq [idStatus.id=1].LoanType.NameLoanType)> |
¿Cómo obtener una colección sin registros repetidos, de los registros que cumplen una condición, usando variables en el filtro?
Me.getXPath(“distinct-values(ProcessEntityAttribute1,…,AttributeN.FactName[FilterVble].AttributeName)”)
AttributeName: Nombre del atributo para el cual los valores no serán repetidos.
Ejemplo: Obtener los valores de los Créditos cuyo valor es mayor al valor preaprobado del cliente. var Pre-approvedValue = <Request.cPre-approvedValue>; Me.getXPath(“distinct-values(Request.Request_LoanReq[cValueRequested > “ + Pre-approvedValue + “].cValueRequested”)> |
Index of
Cuando se usa esta función, se obtiene una colección de posiciones de los registros, especificando el valor que un atributo en la colección va a tomar.
Esta función devuelve una colección de posiciones
<index-of(ProcessEntityAttribute1,…,AttributeN.FactName.AttributeName, Value)>;
Value: Valor tomado por el atributo especificado en la expresión XPath. Es un valor fijo, no puede ser un valor variable.
Ejemplo: Obtenga las posiciones de las Solicitudes de Crédito cuyo Term es 24 : <index-of(Request.Request_LoanReq.iTerm,24)>; |
Para obtener las posiciones de los registros que cumplen una condición, usando valores variables
Me.getXPath(“index-of(ProcessEntityAttribute1,…,AttributeN.FactName.AttributeName, “+ ValueVble +)”);
ValueVble: Valor tomado por el atributo especificado en la expresión XPath, el cual puede ser una variable.
Ejemplo: Obtenga las posiciones de los créditos cuyo valor es igual al valor pre-aprobado. var Value = <Request.cPre-approvedValue>; Me.getXPath(“index-of(Request.Request_LoanReq.cValueRequested,“+ Value + ”)”); |
<comments />