ABAP : La commande ADD expliquée simplement avec des exemples

Catégorie
Publié
Auteur
Johannes

L’instruction ADD est l’une des instructions arithmétiques fondamentales en ABAP, spécialement destinée à l’addition de valeurs numériques.

Note importante : Bien que ADD fonctionne encore, cette instruction est considérée comme largement obsolète en ABAP moderne. Pour les additions, on utilise aujourd’hui presque exclusivement l’opérateur d’addition (+) dans les affectations ou autres expressions (resultat = nombre1 + nombre2.). C’est plus court, plus flexible et plus lisible. Comprendre ADD reste cependant utile pour comprendre du code ancien.

Syntaxe

Les formes les plus pertinentes de l’instruction ADD sont :

1. Ajouter une valeur à une variable (le résultat écrase la variable)

ADD <operande1> TO <variable>.
  • Le résultat de <variable> + <operande1> est à nouveau stocké dans <variable>.
  • <operande1> peut être une variable ou un littéral. <variable> doit être une variable. Les deux doivent être numériques.

2. Additionner deux valeurs et stocker le résultat dans une variable séparée

ADD <operande1> TO <operande2> GIVING <variable_resultat>.
  • Le résultat de <operande1> + <operande2> est stocké dans <variable_resultat>.
  • <operande1> et <operande2> peuvent être des variables ou des littéraux. Leurs valeurs restent inchangées (s’il s’agit de variables). <variable_resultat> doit être une variable. Tous doivent être numériques.

Il existe aussi l’instruction très rarement utilisée et également obsolète ADD-CORRESPONDING <structure1> TO <structure2>, qui additionne les composants numériques de même nom de deux structures. Celle-ci devrait être évitée.

Fonctionnement

  • Les opérandes doivent être des types de données numériques (I, P, F) ou des types qui peuvent être implicitement convertis en types numériques (comme N).
  • Le calcul suit les règles ABAP pour la précision numérique (souvent le calcul interne se fait en type P).
  • Avec ADD ... TO <variable>, la valeur originale de <variable> est écrasée.
  • Avec ADD ... GIVING <variable_resultat>, les opérandes sources restent inchangés.

Alternative moderne (Préférée !)

La méthode claire et recommandée pour les additions est l’opérateur + :

" Équivaut à : ADD valeur1 TO variable.
variable = variable + valeur1.
" Ou plus court, si possible (à partir d'ABAP 7.40 SP05) :
variable += valeur1. " Ajoute valeur1 à variable
" Équivaut à : ADD valeur1 TO valeur2 GIVING resultat.
variable_resultat = valeur1 + valeur2.

Exemples

1. ADD ... TO ...

DATA compteur TYPE i VALUE 5.
WRITE: / 'Compteur avant :', compteur. " Sortie : 5
ADD 3 TO compteur.
WRITE: / 'Compteur après :', compteur. " Sortie : 8

2. ADD ... GIVING ...

DATA prix1 TYPE p DECIMALS 2 VALUE '10.50'.
DATA prix2 TYPE p DECIMALS 2 VALUE '20.00'.
DATA prix_total TYPE p DECIMALS 2.
ADD prix1 TO prix2 GIVING prix_total.
WRITE: / 'Prix 1 :', prix1. " Sortie : 10.50 (inchangé)
WRITE: / 'Prix 2 :', prix2. " Sortie : 20.00 (inchangé)
WRITE: / 'Total :', prix_total. " Sortie : 30.50

3. Alternative moderne avec +

DATA count TYPE i VALUE 100.
DATA somme TYPE i.
DATA summand1 TYPE i VALUE 50.
DATA summand2 TYPE i VALUE 75.
count = count + 10. " count est maintenant 110
somme = summand1 + summand2. " somme est maintenant 125
WRITE: / 'Nouveau count :', count.
WRITE: / 'Nouvelle somme :', somme.

En résumé :

L’instruction ADD effectue des additions, mais est obsolète en ABAP moderne. Utilisez plutôt l’opérateur + dans les affectations pour un code plus clair et contemporain. La connaissance de ADD vous aide cependant à lire et comprendre du code ABAP ancien.