Opérateurs

opérateurs arithmétiques

opérateurs de concaténation

opérateurs logiques et de comparaison.

À propos des opérateurs

Dans les expressions du LMD, vous pouvez utiliser les opérateurs suivants :

  • Opérateurs arithmétiques
  • Opérateurs de concaténation
  • Opérateurs logiques et de comparaison

Ces opérateurs sont évalués dans un ordre de priorité spécifique.

Remarque : Cette rubrique ne décrit pas comment les opérateurs traitent la valeur null.

Opérateurs arithmétiques

Utilisez les opérateurs arithmétiques pour effectuer des calculs. Les opérandes que vous utilisez (ainsi que les champs cible) doivent appartenir à la classe de données <Integer> (N,S, ou P) et à la classe <Decimal Number> (N, S ou P).

Le tableau suivant résume les opérateurs arithmétiques disponibles :

Opérateur Signifie

+

Le signe + ajoute deux opérandes.

-

Le signe - retranche un opérande d'un autre.

*

L'astérisque multiplie deux opérandes.

/

Le caractère <slash> effectue la division d'un opérande par un autre.

Si vous divisez:

  • un champ <Integer> par un autre, le traitement tronque toutes les décimales du résultat. Si le résultat est inférieur à 1, alors 0 sera renvoyé.
  • un champ <Decimal>, le traitement arrondit le résultat à l'entier le plus proche.

//

Le double <slash> divise un opérande par un autre et arrondit le résultat à l'entier le plus proche.

Vous pouvez mettre le signe moins (-) au début d'une expression arithmétique pour entrer une expression négative dans le champ résultat. Si le champ cible est N (numérique non signé), le résultat de l'opération sera égal à sa valeur absolue.

Le tableau suivant illustre l'usage des opérateurs arithmétiques grâce à quelques exemples : 

Champ cible

Garnissage

MT_TTC

MT_HT (1 + TXPAYS)

MT_ASS I

 

IF TX_ASS <> 0 THEN MT_ASS1 + MT_ASS2 + MT_ASS3 +MT_ASS4 + MT_ASS5 ELSE $ACCTAB (ASSURANCE; CATPRET)

NBRNUM

(NB1 + NB4) * (NB5 - NB2) / (100 + NB5)

NB

NBA + NBB - NBC

AMOUNT

 IF CODEXT = "1" THEN - MT_CRE1 ELSE MT_CRE1

Opérateur de concaténation

Pour concaténer deux expressions, utilisez le caractère <ampersand> (&). Puisque le Rule Engine AccountingIntegrator Enabler peut effectuer des conversions implicites versla Classe de Données <String>, vous pouvez utiliser certains caractères qui ne sont pas des chaînes de caractères avec l'opérateur de concaténation. Vous pouvez concaténer n'importe laquelle des classes de données suivantes (remarquez que la classe de données <Decimal Number> n'est pas dans la liste) :

  • Date
  • <Integer>
  • <String>

Par exemple, vous pouvez concaténer une <String> avec une Date.

Remarque : le champ cible doit contenir un type de données alphanumérique.

Le tableau suivant illustre l'usage de la concaténation par quelques exemples :

Champ cible Garnissage

ALPHAOEVT1

 

"AA1BB2CC5"&INEVTFIELD1ALPHAOVT1 est le résultat de la concaténation de la constante alphanumérique AA1BB2CC5 et de la valeur du champ INEVTFIELD1

ZONEINEVT3

"LABEL1" & FIELD5 & $ACCTAB(TABLEREF;FIELD5)ZONEINEVT3 est le résultat de la concaténation de la constante alphanumérique LABEL1, de la valeur du champ FIELD5 et de la valeur de l'entrée de la TABLE TABLEREF correspondant à la valeur de la clé contenue dans le champ FIELD5.

Les contraintes de concaténation des nombres décimaux sont les suivantes :

  • "178237483.822342" ne peut pas être affecté à un champ alphanumérique.
  • 178237483.822342 ne peut pas être affecté à un champ alphanumérique.

Opérateurs logiques et de comparaison

Dans les instructions If_Then_Else, vous utilisez :

Dans les expressions des conditions de génération, vous utilisez aussi des expressions logiques qui doivent renvoyer la valeur <true> ou <false>. Vous pouvez utiliser ces conditions de génération dans les cas suivants :

Comparer deux expressions

Les Classes de données des expressions que vous comparez sont des <Integers>.

Le tableau suivant résume les opérateurs que vous pouvez utiliser pour comparer les valeurs renvoyées par deux expressions :

Opérateur Le résultat de la comparaison est <true> si :

>

la valeur à gauche de cet opérateur est plus grande que la valeur à droite

<

la valeur à gauche de cet opérateur est plus petite que la valeur à droite

=

les valeurs de chaque côté de cet opérateur sont égales.

<>

les valeurs de chaque côté de cet opérateur ne sont pas égales entre elles.

>=

la valeur à gauche de cet opérateur est plus grande que ou égale à la valeur à droite

<=

la valeur à gauche de cet opérateur est plus petite que ou égale à la valeur à droite

Combiner les valeurs de retour d'expressions de comparaison

Lorsque vous utilisez les opérateurs logiques AND et OR , vous devez délimiter chacune des expressions par des parenthèses, et placer un blanc de chaque côté de l'opérateur, comme illustré dans l'exemple suivant :

  • opérateur AND : (EXPRESSION1) AND (EXPRESSION2)
  • opérateur OR : (EXPRESSION1) OR (EXPRESSION2)

Le tableau suivant résume les opérateurs que vous pouvez utiliser pour combiner les valeurs de retour de deux expressions :

Opérateur Signifie

AND

Effectue la multiplication logique :

  • <true> si les deux expressions sont <true>
  • <false> si une ou les deux expressions sont <false>.

OR

Effectue l'addition logique :

  • <true> si une ou les deux expressions sont <true>
  • <false> si les deux expressions sont <false>.

Le tableau suivant illustre l'usage des expressions de comparaison grâce à quelques exemples :

Champ cible Garnissage

ZONEINEVT

 

IF (CPT <> 963521) THEN ZONEINEVT&"956AAA" ELSE "963"&ZONEINEVT&"XXX"

RESULTOEVT

IF ((NOCPTE3 = 777) OR (CODOP < 125)) THEN (MT1 + MT2) / 2ELSE (MT2 + MT5 + MT6) / 3

Ordre de priorité

Dans un garnissage, les priorités entre les diverses fonctions sont représentées par des séparateurs, des parenthèses et des espaces qui spécifient l'ordre dans lequel les fonctions doivent être traitées. Le Rule EngineAccountingIntegrator Enabler effectue son traitement de gauche à droite, selon :

  • la succession des parenthèses
  • suivi par la priorité arithmétique des opérateurs, comme résumé dans le tableau suivant
Ordre de priorité (1= la plus haute) Opérateur/caractère

1

+,- (signe plus et moins pour les Integers>)

2

( ) (parenthèses)

3

*,/

4

&

5

AND

6

OR

7

+, - (opérateurs d'addition et soustraction)

8

=, <>

9

<,<=,>,>=

Retour

Related Links