Analizador de expresiones

El producto soporta la definición de expresiones que pueden ser de origen matemático o lógico/booleano. La expresión puede incluir variables y funciones.

El parámetro de columna del explorador de datos es un ejemplo de dónde se puede usar. Ese parámetro soporta la definición de una fórmula. Las aplicaciones integrables pueden soportar una fórmula o expresión que use también este analizador. Por ejemplo, varias aplicaciones incluyen un tipo de objeto de "regla" (regla de cálculo, regla de formulario o regla de consumo) que se usa para validación o cálculo que puede soportar la aplicación de una fórmula.

En las tablas siguientes se resalta lo que se soporta en las expresiones que usan este analizador.

Categoría Soportado en la expresión Descripción
Tipos de datos Número
Cadena
Booleano
Lista
Literales Números
Cadenas entre comillas simples o dobles.
Nota: actualmente no se soportan los caracteres especiales de "escape".
Valores booleanos: verdadero y falso.
Operaciones + Más
Menos
/ División
* Multiplicación
^ o ** Potencia
% Módulo
Operaciones lógicas = Igual a
> Mayor que
>= Mayor que o igual a
< Menor que
<= Menor que o igual a
!= o <> Distinto de

En esta tabla se identifican las funciones que se soportan. Tenga en cuenta que se pueden aplicar varias de las funciones a una lista de valores. Tenga en cuenta que aunque las funciones se indiquen en minúsculas, la sintaxis del parámetro de columna en el explorador de datos indica la referencia a las funciones en letras mayúsculas. El sistema convierte la fórmula de la columna del explorador de datos a minúsculas antes de evaluarla.

Función Parámetro Resultados Comentarios
size( ) Elemento de lista Número de elementos en la lista.
isEmpty( ) Elemento de lista Devuelve "verdadero" si la lista está vacía.
sum( ) Elemento de lista del tipo 'número' Devuelve la suma de los números de la lista.
avg( ) Elemento de lista del tipo 'número' Devuelve la media de los números de la lista.
Uno o varios números separados por comas Devuelve la media de los argumentos de número.
max( ) Elemento de lista Devuelve el valor mayor de la lista.
Uno o varios elementos comparables. Devuelve el valor mayor de los argumentos de número.
min( ) Elemento de lista Devuelve el valor menor de la lista.
Uno o varios elementos comparables. Devuelve el valor menor de los argumentos de número.
abs( ) Número Devuelve el valor absoluto.
ceiling( ) Número Redondea el número hacia arriba.
exp10( ) Número Eleva 10 a la potencia de número.
acos( ) Número Devuelve el arcocoseno del número en radianes. El resultado perderá precisión porque usa las funciones basadas la 'doble precisión' (flotante) del sistema.
asin( ) Número Devuelve el arcoseno del número en radianes. El resultado perderá precisión porque usa las funciones basadas la 'doble precisión' (flotante) del sistema.
atan( ) Número Devuelve el arcotangente del número en radianes. El resultado perderá precisión porque usa las funciones basadas la 'doble precisión' (flotante) del sistema.
cos( ) Radián Devuelve el coseno de la entrada de ángulo en radianes. El resultado perderá precisión porque usa las funciones basadas la 'doble precisión' (flotante) del sistema.
exp( ) Número Eleva e a la potencia de número. El resultado perderá precisión porque usa las funciones basadas la 'doble precisión' (flotante) del sistema.
log10( ) Número Toma el log, base 10, del número. El resultado perderá precisión porque usa las funciones basadas la 'doble precisión' (flotante) del sistema.
log( ) Número Toma el log natural (base e) del número. El resultado perderá precisión porque usa las funciones basadas la 'doble precisión' (flotante) del sistema.
sin( ) Radián Devuelve el seno de la entrada de ángulo en radianes. El resultado perderá precisión porque usa las funciones basadas la 'doble precisión' (flotante) del sistema.
sqrt( ) Número Devuelve la raíz cuadrada del número. El resultado perderá precisión porque usa las funciones basadas la 'doble precisión' (flotante) del sistema.
tan( ) Radián Devuelve la tangente de la entrada de ángulo en radianes. El resultado perderá precisión porque usa las funciones basadas la 'doble precisión' (flotante) del sistema.
floor( ) Número Redondea el número hacia abajo.
round( ) Número Asume una escala de 0. Se aplica el modo de redondeo por defecto de “redondear de mitad hacia arriba”.
Número, escala Se aplica el modo de redondeo por defecto de “redondear de mitad hacia arriba”.
Número, escala, modo El modo se debe definir en uno de los siguientes:
  • “ROUND_​CEILING”

  • “ROUND_​DOWN”

  • “ROUND_​FLOOR”

  • “ROUND_​HALF_​DOWN”

  • “ROUND_​HALF_​UP”

  • “ROUND_​HALF_​EVEN”

  • “ROUND_​UP”

  • “ROUND_​UNNECESSARY”

negate( ) Número Devuelve el valor negativo del número. Solo está disponible en el explorador de datos.

Las funciones especiales siguientes se soportan en la aplicación para una lista de valores. En cada caso, la sintaxis es function [ indexVariable en listName | expression using indexVariable ], donde el autor de la fórmula elige la indexVariable para representar cada entrada de la lista y la expresión usada para evaluar cada entrada debe hacer referencia a esa variable.

Nota: la sintaxis soportada para un determinado uso de la fórmula en un área funcional viene determinada por ese área funcional concreto. Por ejemplo, en Oracle Public Sector Revenue Management, se soporta una fórmula en la regla de formulario de "validación de elemento condicional". En esa regla, se declaran todas las variables que incluyen listas en la regla de formulario y, a su vez, las fórmulas usan estas letras. En ese escenario, la función siguiente haría referencia a la letra de variable declarada como el "listName". Otro área funcional específica que use este analizador de expresiones puede soportar distintas sintaxis para hacer referencia a elementos o listas.
Función Descripción Ejemplos
any [ ] Esta función devuelve el valor verdadero si alguna de las entradas de la lista cumple con la expresión. Lo siguiente devuelve verdadero si cualquier entrada en la lista de saldos es mayor que 0.
any [ i in list/Balance | i > 0 ]
all [ ] Esta función devuelve el valor verdadero si todas las entradas de la lista cumplen con la expresión. Lo siguiente devuelve verdadero si se rellenan todos los números de teléfono.
all [ i in list/phoneNumber | i != ' ' ]
collect [ ] Esta función devuelve una lista nueva de elementos desde la lista a la que se hace referencia donde el valor de cada entrada de la lista nueva es el resultado de la expresión aplicada a cada valor original. Lo siguiente devuelve una lista nueva con el tipo impositivo aplicado a cada importe.
collect [ i in list/amount | i * taxRate ]
select [ ] Esta función devuelve una lista de todos los valores de la lista original que cumplen con la expresión booleana. Lo siguiente devuelve una lista nuevo solo con los importes que sean números negativos.
select [ i in list/amount | i < 0 ]
reject [ ] Esta función devuelve una lista de todos los valores de la lista original que no cumplen con la expresión booleana. Lo siguiente devuelve una lista nuevo solo con los importes que no sean números negativos.
reject [ i in list/amount | i < 0 ]