Analyseur d'expression

Le produit permet de définir des expressions de nature mathématique ou logique/booléenne. Ces expressions peuvent inclure des variables et des fonctions.

Elles peuvent par exemple être utilisées dans le paramètre de colonne de l'explorateur de données. Ce paramètre prend en charge la définition d'une formule. Les applications intégrables peuvent également prendre en charge les formules ou expressions faisant appel à cet analyseur. Par exemple, plusieurs applications comportent un type d'objet "règle" (règle de calcul, règle de formulaire ou règle de calcul de consommation), utilisé pour la validation ou le calcul, qui peut prendre en charge l'application d'une formule.

Les tableaux ci-dessous présentent ce qui est pris en charge dans les expressions utilisant cet analyseur.

Catégorie Pris en charge dans l'expression Description
Types de données Nombre
Chaîne
Booléen
Liste
Littéraux Nombres
Chaînes entre apostrophes ou entre guillemets.
Remarque :
L'échappement pour les caractères spéciaux n'est pas pris en charge actuellement.
Valeurs booléennes : true et false.
Opérations + Plus
Moins
/ Division
* Multiplication
^ ou ** Puissance
% Modulo
Opérations logiques = Egal à
> Supérieur à
>= Supérieur ou égal à
< Inférieur à
<= Inférieur ou égal à
!= ou <> Différent de

Le tableau ci-dessous présente les fonctions prises en charge. A noter que plusieurs d'entre elles sont applicables à une liste de valeurs. Les fonctions sont indiquées ici en minuscules, mais la syntaxe du paramètre de colonne de l'explorateur de données indique qu'il doit y être fait référence entièrement en majuscules. Le système convertit les formules des colonnes de l'explorateur de données en minuscules avant de les évaluer.

Fonction Paramètre Résultat Commentaires
size( ) Elément de liste Nombre d'éléments dans la liste.
isEmpty( ) Elément de liste Renvoie true si la liste est vide.
sum( ) Elément de liste de type numérique Renvoie la somme des nombres de la liste.
avg( ) Elément de liste de type numérique Renvoie la moyenne des nombres de la liste.
Un ou plusieurs nombres séparés par des virgules Renvoie la moyenne des arguments numériques.
max( ) Elément de liste Renvoie la plus grande valeur de la liste.
Un ou plusieurs éléments comparables Renvoie la plus grande valeur des arguments numériques.
min( ) Elément de liste Renvoie la plus petite valeur de la liste.
Un ou plusieurs éléments comparables Renvoie la plus petite valeur des arguments numériques.
abs( ) Nombre Renvoie la valeur absolue.
ceiling( ) Nombre Arrondit le nombre à l'entier supérieur.
exp10( ) Nombre Elève 10 à la puissance indiquée par le nombre.
acos( ) Nombre Renvoie l'arc cosinus du nombre en radians. Le résultat perd en précision car il utilise les fonctions en virgule flottante double précision du système.
asin( ) Nombre Renvoie l'arc sinus du nombre en radians. Le résultat perd en précision car il utilise les fonctions en virgule flottante double précision du système.
atan( ) Nombre Renvoie l'arc tangente du nombre en radians. Le résultat perd en précision car il utilise les fonctions en virgule flottante double précision du système.
cos( ) Radian Renvoie le cosinus de l'arc indiqué en entrée en radians. Le résultat perd en précision car il utilise les fonctions en virgule flottante double précision du système.
exp( ) Nombre Elève e à la puissance indiquée par le nombre. Le résultat perd en précision car il utilise les fonctions en virgule flottante double précision du système.
log10( ) Nombre Calcule le logarithme de base 10 du nombre. Le résultat perd en précision car il utilise les fonctions en virgule flottante double précision du système.
log( ) Nombre Calcule le logarithme naturel (de base e) du nombre. Le résultat perd en précision car il utilise les fonctions en virgule flottante double précision du système.
sin( ) Radian Renvoie le sinus de l'arc indiqué en entrée en radians. Le résultat perd en précision car il utilise les fonctions en virgule flottante double précision du système.
sqrt( ) Nombre Renvoie la racine carrée du nombre. Le résultat perd en précision car il utilise les fonctions en virgule flottante double précision du système.
tan( ) Radian Renvoie la tangente de l'arc indiqué en entrée en radians. Le résultat perd en précision car il utilise les fonctions en virgule flottante double précision du système.
floor( ) Nombre Arrondit le nombre à l'entier inférieur.
round( ) Nombre Utilise une échelle par défaut de 0. Applique le mode d'arrondi par défaut "round half up" (arrondi des valeurs médianes au plus près vers l'infini positif).
Nombre, Echelle Applique le mode d'arrondi par défaut "round half up" (arrondi des valeurs médianes au plus près vers l'infini positif).
Nombre, Echelle, Mode Le mode doit être l'un des suivants :
  • “ROUND_​CEILING”

  • “ROUND_​DOWN”

  • “ROUND_​FLOOR”

  • “ROUND_​HALF_​DOWN”

  • “ROUND_​HALF_​UP”

  • “ROUND_​HALF_​EVEN”

  • “ROUND_​UP”

  • “ROUND_​UNNECESSARY”

negate( ) Nombre Renvoie la valeur négative du nombre. Utilisable uniquement dans l'explorateur de données.

Les fonctions ci-dessous sont des fonctions spéciales prises en charge dans l'application pour les listes de valeurs. La syntaxe est toujours fonction [ indexVariable in listName | expression using indexVariable ], où indexVariable est la variable choisie par l'auteur de la formule pour représenter chaque entrée de la liste et qui doit être référencée dans l'expression utilisée pour évaluer chaque entrée.

Remarque :
La syntaxe prise en charge pour une utilisation donnée de la formule dans un domaine fonctionnel est régie par celui-ci. Par exemple, dans Oracle Public Sector Revenue Management, les formules sont prises en charge dans la règle de formulaire "validation d'élément conditionnelle". Dans cette règle, toutes les variables, y compris les listes, sont déclarées à l'aide de lettres que les formules utilisent. Dans ce scénario, les lettres de variables déclarées seraient utilisées dans les fonctions ci-dessous en lieu et place de "listName". D'autres domaines fonctionnels faisant appel à cet analyseur d'expression peuvent prendre en charge une syntaxe différente pour faire référence à des éléments ou des listes.
Fonction Description Exemples
any [ ] Cette fonction renvoie la valeur true si l'expression est vérifiée pour au moins l'une des entrées de la liste. L'exemple ci-dessous renvoie la valeur true si au moins une entrée de la liste Balance est supérieure à 0.
any [ i in list/Balance | i > 0 ]
all [ ] Cette fonction renvoie la valeur true si l'expression est vérifiée pour toutes les entrées de la liste. L'exemple ci-dessous renvoie la valeur true si tous les numéros de téléphone sont renseignés.
all [ i in list/phoneNumber | i != ' ' ]
collect [ ] Cette fonction renvoie une nouvelle liste d'éléments créée à partir de la liste référencée, où chaque valeur de la nouvelle liste est le résultat de l'expression appliquée à chaque valeur d'origine. L'exemple ci-dessous renvoie une nouvelle liste où chaque montant a été multiplié par le taux de taxe.
collect [ i in list/amount | i * taxRate ]
select [ ] Cette fonction renvoie une nouvelle liste composée des valeurs de la liste d'origine pour lesquelles l'expression booléenne est vérifiée. L'exemple ci-dessous renvoie une nouvelle liste contenant uniquement les montants qui sont négatifs.
select [ i in list/amount | i < 0 ]
reject [ ] Cette fonction renvoie une nouvelle liste composée des valeurs de la liste d'origine pour lesquelles l'expression booléenne n'est pas vérifiée. L'exemple ci-dessous renvoie une nouvelle liste contenant uniquement les montants qui ne sont pas négatifs.
reject [ i in list/amount | i < 0 ]