Cómo añadir o quitar los ceros iniciales de una variable

En ABAP, trabajar con campos alfanuméricos que representan números con ceros a la izquierda (como ‘000000123’) es muy común. Necesitas poner ceros para guardar datos correctamente (ej. en una tabla) y quitarlos para mostrarlos al usuario (ej. ‘123’).

Aquí tienes las dos formas de hacerlo: la clásica (funciones de conversión) y la moderna (template de string)

1. Quitar ceros a la izquierda (mostrar sin ceros)

Nueva sintaxisALPHA = OUT

DATA(lv_input) = '000000123'.
DATA(lv_output) = |{ lv_input ALPHA = OUT }|.

" lv_output = '123'

Función clásicaCONVERSION_EXIT_ALPHA_OUTPUT

DATA(lv_input) = '000000123'.
DATA(lv_output) = lv_input.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = lv_input
IMPORTING
output = lv_output.

" lv_output = '123'

2. Poner ceros a la izquierda (formato interno)

Nueva sintaxisALPHA = IN

DATA(lv_input) = '123'.
DATA(lv_output) = |{ lv_input ALPHA = IN }|.

" lv_output = '000000123'

Función clásicaCONVERSION_EXIT_ALPHA_INPUT

DATA(lv_input) = '123'.
DATA(lv_output) = lv_input.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_input
IMPORTING
output = lv_output.

" lv_output = '000000123'

En sistemas modernos (ABAP 7.40+), la recomendación general es usar ALPHA = IN/OUT en lugar de CONVERSION_EXIT_ALPHA_*, salvo que trabajes con código legacy o versiones antiguas. La nueva sintaxis es más limpia, más legible y más mantenible.