SAP ABAP - Opérateurs

ABAP fournit un riche ensemble d'opérateurs pour manipuler les variables. Tous les opérateurs ABAP sont classés en quatre catégories -

  • Opérateurs arithmétiques
  • Opérateurs de comparaison
  • Opérateurs au niveau du bit
  • Opérateurs de chaîne de caractères

Opérateurs arithmétiques

Les opérateurs arithmétiques sont utilisés dans les expressions mathématiques de la même manière qu'ils sont utilisés dans l'algèbre. La liste suivante décrit les opérateurs arithmétiques. Supposons que la variable entière A contienne 20 et la variable B 40.

S.No. Opérateur arithmétique et description
1

+ (Addition)

Ajoute des valeurs de chaque côté de l'opérateur. Exemple: A + B donnera 60.

2

− (Subtraction)

Soustrait l'opérande de droite de l'opérande de gauche. Exemple: A - B donnera -20.

3

* (Multiplication)

Multiplie les valeurs de chaque côté de l'opérateur. Exemple: A * B donnera 800.

4

/ (Division)

Divise l'opérande de gauche par l'opérande de droite. Exemple: B / A donnera 2.

5

MOD (Modulus)

Divise l'opérande de gauche par l'opérande de droite et renvoie le reste. Exemple: B MOD A donnera 0.

Exemple

REPORT YS_SEP_08. 
DATA: A TYPE I VALUE 150, 
B TYPE I VALUE 50, 
Result TYPE I. 
Result =  A / B. 
WRITE / Result.

Le code ci-dessus produit la sortie suivante -

3

Opérateurs de comparaison

Discutons des différents types d'opérateurs de comparaison pour différents opérandes.

S.No. Opérateur de comparaison et description
1

= (equality test). Alternate form is EQ.

Vérifie si les valeurs de deux opérandes sont égales ou non, si oui, la condition devient vraie. L'exemple (A = B) n'est pas vrai.

2

<> (Inequality test). Alternate form is NE.

Vérifie si les valeurs de deux opérandes sont égales ou non. Si les valeurs ne sont pas égales, la condition devient vraie. Exemple (A <> B) est vrai.

3

> (Greater than test). Alternate form is GT.

Vérifie si la valeur de l'opérande gauche est supérieure à la valeur de l'opérande droit. Si oui, la condition devient vraie. L'exemple (A> B) n'est pas vrai.

4

< (Less than test). Alternate form is LT.

Vérifie si la valeur de l'opérande gauche est inférieure à la valeur de l'opérande droit. Si oui, alors la condition devient vraie. L'exemple (A <B) est vrai.

5

>= (Greater than or equals) Alternate form is GE.

Vérifie si la valeur de l'opérande gauche est supérieure ou égale à la valeur de l'opérande droit. Si oui, alors la condition devient vraie. L'exemple (A> = B) n'est pas vrai.

6

<= (Less than or equals test). Alternate form is LE.

Vérifie si la valeur de l'opérande gauche est inférieure ou égale à la valeur de l'opérande droit. Si oui, alors la condition devient vraie. L'exemple (A <= B) est vrai.

sept

a1 BETWEEN a2 AND a3 (Interval test)

Vérifie si a1 se situe entre a2 et a3 (inclus). Si oui, alors la condition devient vraie. Exemple (A BETWEEN B AND C) est vrai.

8

IS INITIAL

La condition devient vraie si le contenu de la variable n'a pas changé et que sa valeur initiale lui a été attribuée automatiquement. Exemple (A IS INITIAL) n'est pas vrai

9

IS NOT INITIAL

La condition devient vraie si le contenu de la variable a changé. Exemple (A IS NOT INITIAL) est vrai.

Note- Si le type de données ou la longueur des variables ne correspond pas, une conversion automatique est effectuée. L'ajustement automatique du type est effectué pour l'une ou les deux valeurs tout en comparant deux valeurs de types de données différents. Le type de conversion est décidé par le type de données et l'ordre de préférence du type de données.

Voici l'ordre de préférence -

  • Si un champ est de type I, l'autre est converti en type I.

  • Si un champ est de type P, l'autre est converti en type P.

  • Si un champ est de type D, l'autre est converti en type D. Mais les types C et N ne sont pas convertis et ils sont comparés directement. Le cas est similaire avec le type T.

  • Si un champ est de type N et l'autre de type C ou X, les deux champs sont convertis en type P.

  • Si un champ est de type C et l'autre de type X, le type X est converti en type C.

Exemple 1

REPORT YS_SEP_08. 

DATA: A TYPE I VALUE 115,
      B TYPE I VALUE 119.
      IF A LT B.
      WRITE: / 'A is less than B'.
      ENDIF

Le code ci-dessus produit la sortie suivante -

A is less than B

Exemple 2

REPORT YS_SEP_08. 

DATA: A TYPE I.
      IF A IS INITIAL.
      WRITE: / 'A is assigned'.
      ENDIF.

Le code ci-dessus produit la sortie suivante -

A is assigned.

Opérateurs au niveau du bit

ABAP fournit également une série d'opérateurs logiques au niveau du bit qui peuvent être utilisés pour créer des expressions algébriques booléennes. Les opérateurs au niveau du bit peuvent être combinés dans des expressions complexes à l'aide de parenthèses, etc.

S.No. Opérateur et description au niveau du bit
1

BIT-NOT

Opérateur unaire qui retourne tous les bits d'un nombre hexadécimal à la valeur opposée. Par exemple, appliquer cet opérateur à un nombre hexadécimal ayant la valeur de niveau de bit 10101010 (par exemple «AA») donnerait 01010101.

2

BIT-AND

Cet opérateur binaire compare chaque champ bit par bit à l'aide de l'opérateur booléen AND.

3

BIT-XOR

Opérateur binaire qui compare chaque champ bit par bit à l'aide de l'opérateur booléen XOR (OU exclusif).

4

BIT-OR

Opérateur binaire qui compare chaque champ bit par bit à l'aide de l'opérateur booléen OR.

Par exemple, voici la table de vérité qui montre les valeurs générées lors de l'application des opérateurs booléens AND, OR ou XOR par rapport aux deux valeurs de bits contenues dans le champ A et le champ B.

Champ A Champ B ET OU XOR
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

Opérateurs de chaîne de caractères

Voici une liste d'opérateurs de chaîne de caractères -

S.No. Opérateur de chaîne de caractères et description
1

CO (Contains Only)

Vérifie si A est uniquement composé des caractères de B.

2

CN (Not Contains ONLY)

Vérifie si A contient des caractères qui ne sont pas dans B.

3

CA (Contains ANY)

Vérifie si A contient au moins un caractère de B.

4

NA (NOT Contains Any)

Vérifie si A ne contient aucun caractère de B.

5

CS (Contains a String)

Vérifie si A contient la chaîne de caractères B.

6

NS (NOT Contains a String)

Vérifie si A ne contient pas la chaîne de caractères B.

sept

CP (Contains a Pattern)

Il vérifie si A contient le motif de B.

8

NP (NOT Contains a Pattern)

Il vérifie si A ne contient pas le motif de B.

Exemple

REPORT YS_SEP_08. 
DATA: P(10) TYPE C VALUE 'APPLE',
      Q(10) TYPE C VALUE 'CHAIR'.
      IF P CA Q.
	
      WRITE: / 'P contains at least one character of Q'.
      ENDIF.

Le code ci-dessus produit la sortie suivante -

P contains at least one character of Q.