Ir al contenido
Programación ABAP

CONVERSION_EXIT_ALPHA_INPUT

Rellena con ceros a la izquierda un valor numérico, hasta la longitud de su campo.

Módulo de funciónVarios
Transacción
SE37
Grupo
Varios
Actualizado
21 de octubre de 2026

Alternativa moderna. Desde ABAP 7.02 puedes hacerlo sin llamar a la función, con la opción ALPHA = IN de las plantillas de texto (ver el ejemplo moderno).

Para qué sirve

CONVERSION_EXIT_ALPHA_INPUT convierte un valor del formato externo (el que ve el usuario) al formato interno de SAP: si el valor solo contiene dígitos, lo alinea a la derecha y rellena con ceros a la izquierda hasta la longitud del campo de destino. Por ejemplo, 4711 en un campo de 10 posiciones pasa a 0000004711.

Si el valor contiene letras, no lo modifica. Es la «rutina de conversión ALPHA» que tienen asociados muchos dominios, como los de número de cliente (KUNNR), material (MATNR) o documento (VBELN).

Hace falta, por ejemplo, antes de un SELECT con un valor que llega de un fichero o de otro sistema: en la base de datos el valor está guardado con ceros y, sin la conversión, la consulta no encuentra nada. La función inversa, que quita los ceros, es CONVERSION_EXIT_ALPHA_OUTPUT.

Parámetros

Importing

Lo que recibe la función. En CALL FUNCTION se pasan tras EXPORTING.

ParámetroTipoDescripción
INPUTObligatorioCLIKEValor en formato externo, por ejemplo '4711'.

Exporting

Lo que devuelve. En CALL FUNCTION se recogen tras IMPORTING.

ParámetroTipoDescripción
OUTPUTCLIKEValor en formato interno. Su longitud la marca el campo que recibe el resultado.

Ejemplo

ABAP
DATA lv_cliente TYPE kunnr.            " CHAR 10

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    input  = '4711'
  IMPORTING
    output = lv_cliente.
" lv_cliente = '0000004711'

SELECT SINGLE name1 FROM kna1
  WHERE kunnr = @lv_cliente
  INTO @DATA(lv_nombre).

Hoy lo harías así: ALPHA = IN

Ahora
DATA lv_cliente TYPE kunnr.

" Plantilla de texto con ALPHA = IN: mismo resultado sin llamar a la función
lv_cliente = |{ '4711' ALPHA = IN }|.
" lv_cliente = '0000004711'

" Y al revés, para mostrarlo sin ceros
DATA(lv_texto) = |{ lv_cliente ALPHA = OUT }|.   " '4711'

Errores y excepciones habituales

  • El resultado no tiene ceros: el campo que recibe OUTPUT es de tipo STRING o más corto de lo esperado. La longitud del relleno la da el campo de destino: usa un campo con el tipo correcto, como KUNNR o MATNR.
  • No convierte valores con letras: es el comportamiento normal. Si el valor tiene letras (por ejemplo 'A100'), lo deja como está.
  • Materiales de 40 posiciones en S/4HANA: para MATNR la rutina de conversión es MATN1, no ALPHA. Usa CONVERSION_EXIT_MATN1_INPUT para materiales.

Relacionadas

Funciones relacionadas

CONVERSION_EXIT_ALPHA_OUTPUTCONVERSION_EXIT_CUNIT_INPUTCONVERSION_EXIT_PDATE_INPUT

Más en Varios

CLAF_CLASSIFICATION_OF_OBJECTSCLOI_PUT_SIGN_IN_FRONTENQUE_SLEEPENQUEUE_READF4_DXFILENAME_TOPRECURSIONMM_ADDRESS_GETQF05_RANDOM_INTEGERROUNDSAPGUI_PROGRESS_INDICATORSPELL_AMOUNTSXPG_COMMAND_EXECUTETH_DELETE_USER

Transacciones y tablas

SE37SE11KNA1VBAK

En abap.es

¿Dudas con esta función?

Pregunta en el foro de abap.es: la comunidad lleva años resolviendo dudas de ABAP en español.

Preguntar en el foro

Actualizado: 21 de octubre de 2026