<< Clic para mostrar Tabla de Contenidos >> Ejemplos de funciones básicas de XPath |
El modelo de datos del siguiente diagrama será utilizado como guía para explicar las funciones básicas XPath. Suponga que usted es un empleado del departamento de crédito de un Banco. Cada préstamo en el proceso de Solicitud de crédito tiene un cliente asociado, el cual puede solicitar uno o más productos.
And: Compara dos booleanos que pueden ser XPath o el resultado de una función XPath. La función devuelve verdadero si las dos condiciones son verdaderas, de lo contrario retorna falso.
Ejemplo: La solicitud necesitará de una autorización si el cliente no es VIP y es viable.
<Request.RequestAuthorization> = <and(is-false(Request.Client.VIP),is-true(Request.Client.Viable))>
Avg: Obtiene el promedio de los elementos de la colección. Solo se puede utilizar en colecciones que retornen valores de atributos numéricos (todos los números, decimales o moneda).
Ejemplo: Obtener el promedio del valor de todos los productos.
var average= <avg(Request.Products.ValueRequested)>;
Count: Cuenta el número de elementos de una colección.
Ejemplo: Retornar el número de productos aprobados en la solicitud.
var ProductNumber = <count(Request.Products[Approved= true])>;
Empty: Regresa verdadero cuando una colección no tiene elementos, falso de lo contrario..
Ejemplo: Validar si existe al menos un producto aprobado.
if (<empty(Request.Products[Approved= true])>) {
CHelper.ThrowValidationError("There are no approved products");
}
Equals: Compara dos argumentos XPath y regresa true si son equivalentes. Los parámetros pueden ser expresiones XPath o funciones XPath.
Ejemplo: La solicitud necesitará de una autorización si el cliente no es VIP y es viable.
<Request.RequestAuthorization> = <and(equals(Request.Client.VIP, false),equals(Request.Client.Viable,true))>
Exist: Retorna verdadero si la colección tiene al menos un elemento, de lo contrario retorna falso.
Ejemplo: Revisar si algún producto falta por legalizar.
if (<exists(Request.Products[LegalizationComplete = false])>) {
CHelper.ThrowValidationError("There are products that have not been checked");
}
Greater than: Compara dos argumentos XPath y retorna verdadero si el primero es mayor que el segundo, retorna falso de lo contrario. Los parámetros pueden ser expresiones XPath o funciones XPath que retornen enteros, decimales, moneda o fechas.
Ejemplo: Se debe realizar una validación cuando los ingresos del cliente son menores al valor solicitado.
if(<greater-than(Request.TotalValueRequested,Request.Client.Income)>) {
CHelper.ThrowValidationError("The value requested exceeds the client's income")
}
Greater than or equals to: Compara dos argumentos XPath y retorna verdadero si el primero es mayor o igual que el segundo, retorna falso de lo contrario. Los parámetros pueden ser expresiones XPath o funciones XPath que retornen enteros, decimales, moneda o fechas
Ejemplo: Si el cliente es mayor de 65 años se debe realizar una validación para incluir un seguro adicional.
if(<greater-equals-than(Request.Client.Age,65)>) {
CHelper.ThrowValidationError("The client needs additional insurance due to the age")
}
Is Empty: Retorna verdadero si el atributo de tipo string es nulo o esta vacío. Retorna falso de lo contrario.
Ejemplo: Si la solicitud necesita una autorización y la descripción de la oferta no ha sido ingresada se debe mostrar un mensaje de validación.
if(<and(is-true(Request.RequestAuthorization), is-empty(Request.OfferDescription))>){
CHelper.ThrowValidationError("The request requires authorization and the description has not been entered");
}
Is False: Evalúa una expresión XPath o el resultado de un función XPath Retorna verdadero si el parámetro es falso, de lo contario retorna falso.
Ejemplo: Si el cliente no es viable, la solicitud no puede continuar.
if(<is-false(Request.Client.Viable)>){
CHelper.ThrowValidationError("The client is not viable. You may not continue");
}
Is not Empty: Retorna verdadero si el atributo de tipo string esta lleno. Retorna falso de lo contrario.
Ejemplo: Si la solicitud no necesita ser autorizada la descripción de la oferta debe estar en blanco.
if(<and(is-false(Request.RequestAuthorization), is-not-empty(Request.OfferDescription))>){
CHelper.ThrowValidationError("The description has to be left blank");
}
Is not Null: Retorna verdadero si algún atributo esta lleno (no es nulo), de lo contrario retorna falso.
Ejemplo: Si la fecha de penalización para el cliente está en blanco, la solicitud necesita ser autorizada.
if(<is-not-null(Request.DatePenalized)>){
<Request.RequestAuthorization>= true;
}
Is Null: Retorna verdadero si un atributo es nulo (no lleno), de lo contrario retorna falso.
Ejemplo: Si el atributo de penalización para el cliente está en blanco, la solicitud no necesita ser autorizada.
if(<is-null(Request.Client.Penalized)>){
<Request.RequestAuthorization>= false;
}
Is True: Evalúa si el resultado de una expresión XPath o el resultado de una función XPath. Regresa verdadero si el parámetro es verdadero, falso de lo contrario.
Ejemplo: La solicitud necesita ser autorizada si el cliente no es VIP o está reportado en alguna lista de negra crédito.
<Request.RequestAuthorization> = <or(is-false(Request.Client.VIP),is-true(Request.Client.ReportedOnCreditBureau))>
Less than: Compara dos argumentos XPath y retorna verdadero si el primero es menor que el segundo, retorna falso de lo contrario. Los parámetros pueden ser expresiones XPath o funciones XPath que retornen enteros, decimales, moneda o fechas.
Ejemplo: Se debe realizar una validación cuando el ingreso del cliente es menor que el valor total aprobado de la solicitud.
if(<less-than(Request.Client.Income, Request.TotalValueRequested)>) {
CHelper.ThrowValidationError("The value requested exceeds the client's income")
}
Less than or equals to: Compara dos argumentos XPath y retorna verdadero si el primero es menor o igual que el segundo, retorna falso de lo contrario. Los parámetros pueden ser expresiones XPath o funciones XPath que retornen enteros, decimales, moneda o fechas.
Ejemplo: Si la fecha solicitada es menor o igual que la fecha de penalización, la solicitud no puede continuar.
if(<less-equals-than(Request.DateRequested,Request.Client.DatePenalized)>) {
CHelper.ThrowValidationError("The request cannot continue")
}
Like: Compara dos parámetros y retorna verdadero si el segundo esta incluido dentro del primero. Los parámetros pueden ser XPath string o string. Cuando se utiliza un texto fijo utilice las comillas sencillas (').
Ejemplo: El nombre de la persona que viaja debe ser el mismo en el vuelo de ida y en el vuelo de regreso.
<Request.SamePerson> = <like(Request.DepartingUserName,Request.ReturningUserName)>
Max: Obtiene el valor máximo de una colección de elementos. El atributo deber ser numérico o moneda.
Ejemplo: Se necesita guardar en una variable el valor más grande de los productos de la solicitud que han sido aprobados.
var maxValue = <max(Request.Products[Approved= true].ValueRequested)>;
Min: Obtiene el valor mínimo de una colección de elementos. El atributo deber ser numérico o moneda.
Ejemplo: Se necesita guardar en una variable el valor más pequeño de los productos de la solicitud que han sido aprobados.
var maxValue = <min(Request.Products[Approved= true].ValueApproved)>;
Not equals: Compara dos argumentos XPath y regresa verdadero si NO son equivalentes. Los parámetros pueden ser expresiones o funciones XPath.
Ejemplo: La solicitud necesita ser aprobada si el cliente no es VIP o no es viable.
<Request.RequestAuthorization> = <and(not-equals(Request.Client.VIP, true),equals(Request.Client.Viable,true))>
Or: Compara dos booleanas que pueden ser una expresión XPath o el resultado de una función XPath. Regresa falso cuando ambos parámetros son falsos, verdadero de lo contrario.
Ejemplo: la solicitud debe ser autorizada si el cliente no es VIP o si ha sido reportado en alguna lista negra de crédito.
<Request.RequestAuthorization> = <or(is-false(Request.Client.VIP),is-true(Request.Client.ReportedOnCreditBureau))>
Sum: Suma el valor de un atributo de una colección. Solo se puede utilizar en colecciones que retornen valores de atributos numéricos (todos los números, decimales o moneda).
Ejemplo: Guardar en una variable la suma de los valores de los productos que fueron aprobados en la solicitud.
var Result= <sum(Request.Products[Approved= true].ValueRequested)>;
Last Updated 1/26/2022 3:55:33 PM