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 sintaxis → ALPHA = OUT
DATA(lv_input) = '000000123'.
DATA(lv_output) = |{ lv_input ALPHA = OUT }|.
" lv_output = '123'
Función clásica → CONVERSION_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 sintaxis → ALPHA = IN
DATA(lv_input) = '123'.
DATA(lv_output) = |{ lv_input ALPHA = IN }|.
" lv_output = '000000123'
Función clásica → CONVERSION_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.




