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 (commeN). - 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 : 82. 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.503. 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 110somme = 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.