Partager via


Langage de formule dans la gestion des états électroniques

Les états électroniques (ER) offrent une puissante expérience de transformation des données. Le langage utilisé pour exprimer les manipulations de données requises dans le concepteur de formule ER ressemble au langage de formule dans Microsoft Excel.

Syntaxe de base

Les expressions de génération d’états électroniques peuvent contenir le tout ou partie des éléments suivants :

Constantes

Lorsque vous concevez des expressions, vous pouvez utiliser les constantes de texte et numériques, c’est-à-dire les valeurs qui ne sont pas calculées. Par exemple, l’expression VALUE ("100") + 20 utilise la constante 20 et la constante de chaîne « 100 » et renvoie la valeur numérique 120.

Le concepteur de formule de génération d’états électroniques prend en charge les séquences d’échappement. Par conséquent, vous pouvez spécifier une chaîne d’expression qui doit être traitée différemment. Par exemple, l’expression "Leo Tolstoy ""War and Peace"" Volume 1" renvoie la chaîne de texte Léon Tolstoï « Guerre et paix » Tome 1.

Opérateurs

Le tableau suivant indique les opérateurs arithmétiques que vous pouvez utiliser pour effectuer des opérations mathématiques de base, telles que l’addition, la soustraction, la multiplication et la division.

Opérateur Signifie Exemple
+ Addition 1+2
- Soustraction, négation 5-2, -1
* Multiplication 7\*8
/ Service 9/3

Le tableau suivant décrit les opérateurs de comparaison pris en charge. Vous pouvez utiliser ces opérateurs pour comparer deux valeurs.

Opérateur Signifie Exemple :
= Equal X=Y
> Greater than X>Y
< Less than X<Y
>= Supérieur ou égal à X>=Y
<= Inférieur ou égal à X<=Y
<> Différent de X<>Y

En outre, vous pouvez utiliser une esperluette (&) comme opérateur de concaténation de texte. De cette manière, vous pouvez lier ou concaténer une ou plusieurs chaînes de texte en un bloc de texte unique.

Opérateur Signifie Exemple
& Concaténer "Nothing to print:" & " " & "no records found"

Priorité des opérateurs

L’ordre dans lequel les parties d’une expression de composant sont évaluées est important. Par exemple, le résultat de l’expression 1 + 4 / 2 varie selon que l’addition ou la division est effectuée en premier. Vous pouvez utiliser des parenthèses pour définir explicitement la manière dont une expression est évaluée. Par exemple, pour indiquer que l’addition doit être exécutée en premier, vous pouvez modifier l’expression précédente comme suit : (1 + 4) / 2. Si vous n’indiquez pas explicitement l’ordre des opérations à effectuer dans une expression, l’ordre est basé sur la priorité par défaut attribuée aux opérateurs pris en charge. Le tableau suivant indique la priorité affectée à chaque opérateur. Les opérateurs qui ont la priorité la plus élevée (par exemple, 7) sont évalués avant les opérateurs ayant une priorité inférieure (par exemple, 1).

Priorité Opérateurs Syntaxe
7 Regroupement ( … )
6 Accès des membres … . …
5 Appel de fonction … ( … )
4 Multiplicateur … * …
… / …
3 Supplémentaire … + …
… - …
2 Comparaison … < …
… <= …
… => …
… > …
… = …
… <> …
1 Séparation … , …

Si une expression comprend plusieurs opérateurs consécutifs qui ont la même priorité, ces opérations sont évaluées de gauche à droite. Par exemple, l’expression 1 + 6 / 2 \* 3 > 5 renvoie la valeur true. Il est recommandé d’utiliser des parenthèses pour indiquer explicitement l’ordre des opérations dans les expressions, afin de faciliter la lecture et la mise à jour des expressions.

Références

Toutes les sources de données du composant de génération d’états électroniques actuel qui sont disponibles lors de la création d’une expression peuvent servir de références nommées. Le composant ER actuel peut être un mappage de modèle ou un format. Par exemple, le mappage de modèle ER actuel contient la source de données ReportingDate, qui renvoie une valeur du type de données dateheure. Pour formater correctement cette valeur dans le document de génération, vous pouvez référencer la source de données dans l’expression comme suit : DATETIMEFORMAT (ReportingDate, "dd-MM-yyyy").

Tous les caractères du nom d’une source de données de référencement qui ne représentent pas une lettre de l’alphabet doivent être précédés d’un guillemet simple (’). Si le nom d’une source de données de référencement contient au moins un symbole qui ne représente pas une lettre de l’alphabet, le nom doit être placé entre guillemets simples (’). Par exemple, ces symboles non alphabétiques peuvent être les signes de ponctuation ou tous les autres symboles écrits. Voici quelques exemples :

  • La source de données Date & heure d’aujourd’hui doit être utilisée dans une expression de génération d’états électroniques comme suit : 'Today''s date & time'.
  • La méthode name() de la source de données Clients doit être référencée dans l’expression de génération d’états électroniques comme suit : Customers.'name()'.

Si les méthodes des sources de données de l’application ont des paramètres, la syntaxe suivante est utilisée pour appeler ces méthodes :

  • Si la méthode isLanguageRTL de la source de données System comporte un paramètre EN-US du type de données Chaîne, cette méthode doit être mentionnée dans une expression ER comme System.isLanguageRTL("EN-US").
  • Les guillemets ne sont pas obligatoires lorsqu’un nom de méthode ne contient que des symboles alphanumériques. Toutefois, ils sont obligatoires pour une méthode de table si le nom inclut des parenthèses.

Lorsque la source de données System est ajoutée à une mise en correspondance ER qui fait référence à la classe d’application Global de l’application, l’expression System.isLanguageRTL("EN-US ") retourne la valeur booléenne, FALSE. L’expression modifiée System.isLanguageRTL("AR") renvoie la valeur BooléenneTRUE.

Vous pouvez limiter la façon dont les valeurs sont transférées aux paramètres de ce type de méthode :

  • Seules les constantes peuvent être transférées aux méthodes de ce type. Les valeurs des constantes sont définies au moment de la conception.
  • Seuls les types de données primitifs (de base) sont pris en charge pour les paramètres de ce type. Les types de données primitifs inclut Entier, Réel, Booléen et Chaîne.

Chemins d’accès

Lorsqu’une expression fait référence à une source de données structurée, vous pouvez utiliser la définition de chemin d’accès pour sélectionner un élément primitif spécifique de cette source de données. Un point (.) est utilisé pour séparer les éléments distincts d’une source de données structurée. Par exemple, le mappage de modèles de génération d’états électroniques actuel contient la source de données InvoiceTransactions qui renvoie une liste des enregistrements. La structure d’enregistrement InvoiceTransactions contient les champs AmountDebit et AmountCredit qui renvoient tous les deux des valeurs numériques. Par conséquent, vous pouvez concevoir l’expression suivante pour calculer le montant facturé : InvoiceTransactions.AmountDebit - InvoiceTransactions.AmountCredit. La construction InvoiceTransactions.AmountDebit dans cette expression est le chemin d’accès utilisé pour accéder au champ AmountDebit de la source de données InvoiceTransactions du type Liste des enregistrements.

Chemin d’accès relatif

Si le chemin d’une source de données structurée commence par un signe arobase (@), il s’agit d’un chemin relatif. Le signe arobase est affiché à la place de la partie restante du chemin absolu de l’arborescence hiérarchique utilisée. L’illustration suivante présente un exemple. Ici, le chemin absolu Ledger.'accountingCurrency()' indique que la valeur de la devise comptable de la source de données Comptabilité est entrée dans le champ AccountingCurrency du modèle de données.

Exemple de chemin d’accès absolu sur la page du concepteur de mappage de modèles ER.

L’exemple de l’illustration suivante montre comment un chemin relatif est utilisé. Le chemin relatif @.AccountNum indique que le champ AccountNum de la source de données Déclaration d’échanges de biens (qui apparaît un niveau au-dessus du champ AccountNum dans l’arborescence hiérarchique du modèle de données) est utilisé pour saisir le numéro de compte client ou fournisseur dans le champ AccountNum du modèle de données.

Exemple de chemin d’accès relatif sur la page du concepteur de mappage de modèles ER.

La partie restante du chemin absolu est également indiquée dans l’Éditeur de formule ER.

Partie restante du chemin d’accès absolu sur la page du concepteur de formule ER.

Pour plus d’informations, consultez Utiliser un chemin d’accès relatif dans les liaisons de données des modèles et des formats ER.

Fonctions

Les fonctions intégrées ER peuvent être utilisées dans les expressions ER. Toutes les sources de données du contexte d’expression (c.-à-d. le mappage de modèles ou format de génération d’états électroniques actuel) peuvent être utilisées en tant que paramètres des fonctions d’appel en accord avec la liste des arguments des fonctions d’appel. Les constantes peuvent également être utilisées comme paramètres des fonctions d’appel. Par exemple, le mappage de modèles de génération d’états électroniques actuel contient la source de données InvoiceTransactions qui renvoie une liste des enregistrements. La structure d’enregistrement InvoiceTransactions contient les champs AmountDebit et AmountCredit qui renvoient tous les deux des valeurs numériques. Par conséquent, pour calculer le montant facturé, vous pouvez concevoir l’expression suivante qui utilise la fonction d’arrondi de génération d’états électroniques intégrée : ROUND (InvoiceTransactions.AmountDebit - InvoiceTransactions.AmountCredit, 2).

Lorsque vous concevez des mappages de modèles ER et des états ER, vous pouvez utiliser les fonctions ER dans les catégories suivantes :

Extension de la liste des fonctions

La génération d’état électroniques prend en charge une capacité d’extension de la liste des fonctions utilisées dans les expressions de génération d’états électroniques. Pour cela, certaines opérations d’ingénierie sont requises. Pour obtenir des informations détaillées, consultez Étendre la liste des fonctions de génération d’états électroniques (ER).

Expressions composées

Vous pouvez créer des expressions composées qui utilisent des fonctions de différentes catégories, à condition que les types de données correspondent. Lorsque vous utilisez des fonctions ensemble, faites correspondre le type de données de la sortie d’une fonction au type de données d’entrée requis par une autre fonction. Par exemple, pour éviter une éventuelle erreur « liste-vide » dans la liaison d’un champ à un élément de format ER, combinez les fonctions de la catégorie Liste à une fonction de la catégorie Logique comme le montre l’exemple suivant. Ici, la formule utilise la fonction IF pour tester si la liste IntrastatTotals est vide avant de renvoyer la valeur de l’agrégation requise à partir de cette liste. Si la liste IntrastatTotals est vide, la formule retourne 0 (zéro).

IF(ISEMPTY(IntrastatTotals), 0.0, IntrastatTotals.aggregated.'$AmountMSTRounded') 

Solutions multiples

Souvent, vous pouvez obtenir le même résultat de transformation de données de plusieurs manières, en utilisant des fonctions de différentes catégories ou différentes fonctions de la même catégorie. Par exemple, l’expression précédente peut également être configurée à l’aide de la fonction COUNT de la catégorie Liste.

IF(COUNT (IntrastatTotals)=0, 0.0, IntrastatTotals.aggregated.'$AmountMSTRounded') 

Ressources supplémentaires

Vue d’ensemble des États électroniques

Concepteur de formule dans la gestion des états électroniques

Étendre la liste des fonctions de gestion des états électroniques

Types de données primitifs pris en charge

Types de données composites pris en charge