La sentencia ADD realiza una suma aritmética en ABAP. Sin embargo, esta sentencia está obsoleta y se recomienda usar el operador + en su lugar.
Sintaxis (obsoleta)
ADD <operando> TO <variable>.Ejemplo clásico
" Obsoleto - NO usarDATA: lv_sum TYPE i VALUE 10.
ADD 5 TO lv_sum. " lv_sum = 15ADD lv_sum TO lv_sum. " lv_sum = 30Alternativa moderna (recomendada)
" Moderno - USAR estoDATA: lv_sum TYPE i VALUE 10.
lv_sum = lv_sum + 5. " lv_sum = 15lv_sum += 5. " lv_sum = 20 (operador compuesto)Comparación
| Obsoleto | Moderno |
|---|---|
ADD 5 TO lv_sum | lv_sum = lv_sum + 5 |
ADD 5 TO lv_sum | lv_sum += 5 |
ADD lv_a TO lv_b | lv_b = lv_b + lv_a |
Operadores aritméticos modernos
" Sumalv_result = lv_a + lv_b.lv_result += lv_a.
" Restalv_result = lv_a - lv_b.lv_result -= lv_a.
" Multiplicaciónlv_result = lv_a * lv_b.lv_result *= lv_a.
" Divisiónlv_result = lv_a / lv_b.lv_result /= lv_a.
" Resto (módulo)lv_result = lv_a MOD lv_b.
" Potencialv_result = lv_a ** 2.Cálculos con expresiones
" Expresión completaDATA(lv_total) = ( lv_price * lv_quantity ) + lv_tax - lv_discount.
" Con funcionesDATA(lv_rounded) = round( val = lv_amount dec = 2 ).DATA(lv_absolute) = abs( lv_negative ).DATA(lv_ceiling) = ceil( lv_decimal ).DATA(lv_floor) = floor( lv_decimal ).Por qué ADD está obsoleto
- Legibilidad:
lv_sum += 5es más claro queADD 5 TO lv_sum - Consistencia: Los operadores son estándar en todos los lenguajes
- ABAP Cloud: La sintaxis moderna es compatible con ABAP Cloud
- ATC Warnings: El ABAP Test Cockpit genera advertencias para ADD
Migración de código legacy
" Código legacyADD lv_amount TO lv_total.ADD 1 TO lv_counter.
" Código migradolv_total += lv_amount.lv_counter += 1." O más conciso para incrementolv_counter = lv_counter + 1.Notas importantes / Mejores prácticas
- No uses ADD en código nuevo.
- Usa los operadores aritméticos estándar (
+,-,*,/). - Los operadores compuestos (
+=,-=, etc.) son más concisos. - Considera usar REDUCE para sumas de tablas.
- Consulta ABAP Cleaner para migración automática.