Analisador de Expressões

O produto tem suporte para a definição de expressões que podem ser de natureza matemática ou lógica/booliana. A expressão pode incluir variáveis e funções.

O parâmetro da coluna do explorador de dados é um exemplo de onde isso pode ser usado. Esse parâmetro é compatível com a definição de uma fórmula. Os aplicativos integráveis também podem incluir suporte para uma fórmula ou expressão com o uso desse analisador. Por exemplo, vários aplicativos incluem um tipo de objeto de 'regra' (regra de cálculo, regra do formulário ou regra de uso) usado para validação ou cálculo que pode ser compatível com a aplicação de uma fórmula.

As tabelas a seguir destacam o que é compatível com as expressões que usam esse analisador.

Categoria Com Suporte na Expressão Descrição
Tipos de dados Número
String
Booliano
Lista
Literais Números
Strings cercadas por aspas simples ou duplas.
Observação: Atualmente, não há suporte para o 'escape' de caracteres especiais.
Valores boolianos: verdadeiro e falso.
Operações + Mais
Menos
/ Divisão
* Multiplicação
^ ou ** Potência
% Módulo
Operações lógicas = Igual a
> Maior que
>= Maior ou igual a
< Menor que
<= Menor ou igual a
!= ou <> Não é igual a

Esta tabela identifica as funções que são compatíveis. Note que várias delas se aplicam a uma lista de valores. Note também que, embora as funções estejam listadas em letra minúscula, a sintaxe do parâmetro de coluna do explorador de dados indica referenciar as funções em letras maiúsculas. O sistema converte a fórmula da coluna do explorador de dados para letra minúscula antes de avaliar.

Função Parâmetro Resultados Comentários
size( ) Elemento da lista O número de elementos na lista.
isEmpty( ) Elemento da lista Retorna verdadeiro se a lista estiver vazia.
sum( ) Elemento da lista do tipo 'número' Retorna a soma dos números da lista.
avg( ) Elemento da lista do tipo 'número' Retorna a média dos números da lista.
Um ou mais números, separados por vírgulas Retorna a média dos argumentos de número.
max( ) Elemento da lista Retorna o maior valor da lista.
Um ou mais elementos comparáveis. Retorna o maior valor dos argumentos de número.
min( ) Elemento da lista Retorna o menor valor da lista.
Um ou mais elementos comparáveis. Retorna o menor valor dos argumentos de número.
abs( ) Número Retorna o valor absoluto.
ceiling( ) Número Arredonda o número para o teto.
exp10( ) Número Aumenta a potência do número em 10.
acos( ) Número Retorna o arco cosseno do número em radianos. O resultado perderá a precisão, já que usa as funções com base em ponto flutuante do sistema.
asin( ) Número Retorna o arco seno do número em radianos. O resultado perderá a precisão, já que usa as funções com base em ponto flutuante do sistema.
atan( ) Número Retorna o arco tangente do número em radianos. O resultado perderá a precisão, já que usa as funções com base em ponto flutuante do sistema.
cos( ) Radiano Retorna o cosseno da entrada de ângulo em radianos. O resultado perderá a precisão, já que usa as funções com base em ponto flutuante do sistema.
exp( ) Número Aumenta a potência do número em e. O resultado perderá a precisão, já que usa as funções com base em ponto flutuante do sistema.
log10( ) Número Recebe o logaritmo de base 10 do número. O resultado perderá a precisão, já que usa as funções com base em ponto flutuante do sistema.
log( ) Número Recebe o logaritmo natural (de base e) do número. O resultado perderá a precisão, já que usa as funções com base em ponto flutuante do sistema.
sin( ) Radiano Retorna o seno da entrada de ângulo em radianos. O resultado perderá a precisão, já que usa as funções com base em ponto flutuante do sistema.
sqrt( ) Número Retorna a raiz quadrada do número. O resultado perderá a precisão, já que usa as funções com base em ponto flutuante do sistema.
tan( ) Radiano Retorna a tangente da entrada de ângulo em radianos. O resultado perderá a precisão, já que usa as funções com base em ponto flutuante do sistema.
floor( ) Número Arredonda o número para o piso.
round( ) Número Presume uma escala de 0. O modo de arredondamento padrão de "meio para cima" é aplicado.
Número, Escala O modo de arredondamento padrão de "meio para cima" é aplicado.
Número, Escala, Modo O modo precisa ser definido para uma das seguintes opções:
  • “ROUND_​CEILING”

  • “ROUND_​DOWN”

  • “ROUND_​FLOOR”

  • “ROUND_​HALF_​DOWN”

  • “ROUND_​HALF_​UP”

  • “ROUND_​HALF_​EVEN”

  • “ROUND_​UP”

  • “ROUND_​UNNECESSARY”

negate( ) Número Retorna o valor negativo do número. Só está disponível no explorador de dados.

A seguir estão funções especiais compatíveis com o aplicativo para uma lista de valores. Em cada caso, a sintaxe é function [ indexVariable in listName | expressão usando indexVariable ], em que indexVariable é escolhido pelo autor da fórmula para representar cada entrada da lista, e a expressão usada para avaliar cada entrada precisa referenciar essa variável.

Observação: A sintaxe compatível com determinado uso da fórmula em uma área funcional é determinada por aquela área funcional em particular. Por exemplo, no Oracle Public Sector Revenue Management, há suporte para fórmulas na regra do formulário "validação de elemento condicional". Nessa regra do formulário, todas as variáveis, incluindo as listas, são declaradas na regra do formulário com letras, e as fórmulas, por sua vez, usam essas letras. Nesse cenário, as funções abaixo referenciam a letra variável declarada como “listName”. Outras áreas funcionais específicas que usam esse analisador de expressão podem ter suporte a uma sintaxe diferente para referenciar elementos ou listas.
Função Descrição Exemplos
any [ ] Esta função retorna o valor verdadeiro se alguma das entradas da lista satisfaz a expressão. A função a seguir retorna verdadeiro se alguma entrada da lista Saldo for maior que 0.
any [ i in list/Balance | i > 0 ]
all [ ] Esta função retorna o valor verdadeiro se todas as entradas da lista satisfazem a expressão. A função a seguir retorna verdadeiro se todos os números de telefone estiverem preenchidos.
all [ i in list/phoneNumber | i != ' ' ]
collect [ ] Esta função retorna uma nova lista de elementos da lista referenciada, em que o valor de cada entrada da nova lista é o resultado da expressão aplicada a cada valor original. A função a seguir retorna uma lista com a alíquota do imposto aplicada a cada valor.
collect [ i in list/amount | i * taxRate ]
select [ ] Esta função retorna uma lista de todos os valores da lista original que satisfazem a expressão Booliana. A função a seguir retorna uma lista contendo somente os valores que são números negativos.
select [ i in list/amount | i < 0 ]
reject [ ] Esta função retorna uma lista de todos os valores da lista original que não satisfazem a expressão Booliana. A função a seguir retorna uma lista contendo somente os valores que não são números negativos.
reject [ i in list/amount | i < 0 ]