Analizador de Expresiones

El producto proporciona soporte para definir expresiones que pueden ser matemáticas o lógicas/buleanas. Las expresiones pueden incluir variables y funciones.

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

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

Categoría Soportado en Expresión Descripción
Tipos de datos Número
Cadena
Valores buleanos
Lista
Valores literales Números
Cadenas entre comillas simples o dobles.
Nota: Actualmente no se soporta el "escape" de caracteres especiales.
Valores buleanos: verdadero y falso.
Operaciones + Suma
Resta
/ División
* Multiplicación
^ o ** Potencia
% Módulo
Operaciones lógicas = Igual que
> Mayor que
>= Mayor o igual que
< Menor que
<= Menor o igual que
!= o <> No igual que

En esta tabla, se identifican las funciones que se soportan. Tenga en cuenta que varias de las funciones se aplican a una lista de valores. Tenga en cuenta que, a pesar de que las funciones se enumeran en minúscula, la sintaxis de parámetro de columna en el explorador de datos indica la referencia a las funciones completamente en mayúsculas. El sistema pasa la fórmula de la columna del explorador de datos a minúsculas antes de que se haga la evaluación.

Función Parámetro Resultados Comentarios
size( ) Elemento de lista Número de elementos de la lista.
isEmpty( ) Elemento de lista Devuelve "verdadero" si la lista está vacía.
sum( ) Elemento de lista de tipo "número" Devuelve la suma de los números de la lista.
avg( ) Elemento de lista de tipo "número" Devuelve el promedio de los números de la lista.
Uno o más número separados por comas Devuelve el promedio de los argumentos numéricos.
max( ) Elemento de lista Devuelve el mayor valor de la lista.
Uno o más elementos comparables. Devuelve el mayor valor de los argumentos numéricos.
min( ) Elemento de lista Devuelve el menor valor de la lista.
Uno o más elementos comparables. Devuelve el menor valor de los argumentos numéricos.
abs( ) Número Devuelve el valor absoluto.
ceiling( ) Número Redondea el número hacia arriba.
exp10( ) Número Eleva el número 10 a la potencia numérica.
acos( ) Número Devuelve el arcocoseno del número en radianes. El resultado pierde precisión, ya que usa las funciones del sistema basadas en flotante doble.
asin( ) Número Devuelve el arcoseno del número en radianes. El resultado pierde precisión, ya que usa las funciones del sistema basadas en flotante doble.
atan( ) Número Devuelve el arcotangente del número en radianes. El resultado pierde precisión, ya que usa las funciones del sistema basadas en flotante doble.
cos( ) Radián Devuelve el coseno de la entrada del ángulo en radianes. El resultado pierde precisión, ya que usa las funciones del sistema basadas en flotante doble.
exp( ) Número Eleva el número e a la potencia numérica. El resultado pierde precisión, ya que usa las funciones del sistema basadas en flotante doble.
log10( ) Número Calcula el logaritmo del número con base 10. El resultado pierde precisión, ya que usa las funciones del sistema basadas en flotante doble.
log( ) Número Calcula el logaritmo natural (base e) del número. El resultado pierde precisión, ya que usa las funciones del sistema basadas en flotante doble.
sin( ) Radián Devuelve el seno de la entrada del ángulo en radianes. El resultado pierde precisión, ya que usa las funciones del sistema basadas en flotante doble.
sqrt( ) Número Devuelve la raíz cuadrada del número. El resultado pierde precisión, ya que usa las funciones del sistema basadas en flotante doble.
tan( ) Radián Devuelve la tangente de la entrada del ángulo en radianes. El resultado pierde precisión, ya que usa las funciones del sistema basadas en flotante doble.
floor( ) Número Redondea el número hacia abajo.
round( ) Número Supone una escala de 0. Se aplica el modo de redondeo por defecto de "redondear la mitad hacia arriba".
Número, Escala Se aplica el modo de redondeo por defecto de "redondear la mitad hacia arriba".
Número, Escala, Modo El modo debe establecerse 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. Disponible solo en el explorador de datos.

A continuación se mencionan funciones especiales que la aplicación soporta para una lista de valores. En cada caso, la sintaxis es function [ indexVariable in listName | expression using indexVariable ], donde quien escribe la fórmula debe elegir el valor de indexVariable para representar cada registro en la lista, y las expresiones usadas para evaluar cada registro deben hacer referencia a dicha variable.

Nota: La sintaxis soportada para un uso determinado de la fórmula en un área funcional depende de cada área funcional en particular. 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 de formulario, todas las variables que incluyen listas se declaran en la regla de formulario usando letras y, por ende, las fórmulas usan esas letras. En ese escenario, las funciones que se mencionan a continuación harían referencia a la letra de variable declarada como "listName". Otra área funcional específica que use este analizador de expresiones puede soportar una sintaxis diferente para hacer referencia a elementos o listas.
Función Descripción Ejemplos
any [ ] Esta función devuelve el valor verdadero si cualquiera de los registros de la lista satisface la expresión. La siguiente fórmula devuelve el valor verdadero si cualquiera de los registros de la lista Balance es mayor que 0.
any [ i in list/Balance | i > 0 ]
all [ ] Esta función devuelve el valor verdadero si todos los registros de la lista satisfacen la expresión. La siguiente fórmula devuelve el valor verdadero si se completan todos los números de teléfono.
all [ i in list/phoneNumber | i != ' ' ]
collect [ ] Esta función devuelve una nueva lista de elementos de la lista de referencia donde el valor de cada registro de la nueva lista es el resultado de la expresión aplicada a cada valor original. La siguiente fórmula devuelve una nueva lista con la tasa impositiva aplicada a cada importe.
collect [ i in list/amount | i * taxRate ]
select [ ] Esta función devuelve una lista con todos los valores de la lista original que satisfacen la expresión buleana. La siguiente fórmula devuelve una nueva lista que incluye solo los importes negativos.
select [ i in list/amount | i < 0 ]
reject [ ] Esta función devuelve una lista con todos los valores de la lista original que no satisfacen la expresión buleana. La siguiente fórmula devuelve una nueva lista que incluye solo los importes que no son negativos.
reject [ i in list/amount | i < 0 ]