CREAR TUS PROPIAS RUTINAS DE CONVERSIÓN
Mi primer post es uno que ya publiqué en mi casi difunto miniblog en alejote.com
Mediante ABAP se puede cambiar el formato de una variable mediante muchas formas. Una de ellas es USING EDIT MASK '==CONV' siendo CONV el código de la rutina de conversión a aplicar de 5 caracteres como máximo. Estas son las mismas rutinas que se utilizan en los dominios, por ejemplo en el dominio KUNNR (nº de cliente) la rutina es ALPHA, rutina que llena de ceros el valor de la variable. Con doble click sobre la rutina ALPHA se puede ver que dirige entre otras a dos funciones CONVERSION_EXIT_ALPHA_INPUT y CONVERSION_EXIT_ALPHA_OUTPUT. Estas son las funciones que usa para mostrar las variables de una u otra forma. Cuando usamos USING EDIT MASK '==CONV' se llama a la función CONVERSION_EXIT_CONV_OUTPUT pasándole como parámetros la variable a la que queremos cambiar el formato. Hay una barbaridad de rutinas de conversión nada documentadas. Puedes buscar en la SE37 por CONVERSION_EXIT_*_*PUT.
Bueno, ¿y qué pasa si no encuentro la rutina de conversión que estaba buscando? Pues te puedes crear una. Para ello simplemente te creas una función llamada CONVERSION_EXIT_ZXXXX_OUTPUT con XXXX los 4 caracteres que quieras y los parámetros de entrada y salida como los de cualquier función de conversión del estándar. Lo de la Z no es imprescindible pero me da que es necesario para no perderla en actualizaciones de SAP. Después puedes llamar a tu rutina con USING EDIT MASK '==ZXXXX'.
Por ejemplo aquí tienes un convierte-fechas:
*"*"Interfase local
*" IMPORTING
*" REFERENCE(INPUT) TYPE CLIKE
*" EXPORTING
*" REFERENCE(OUTPUT) TYPE CLIKE
*"-------------------------------------------------------------------
output = input.
IF STRLEN( input ) = 8.
CONCATENATE input+6
input+4(2)
input(4)
INTO output.
ENDIF.
ENDFUNCTION.
3 warnings:
Bienvenido a este humilde grupo de damnificados por SAP!!
Gracias, ya ves que he empezado con ganas y ya he publicado otra entrada.
Gracias por el tip, me sirvio mucho! un saludo!
Publicar un comentario en la entrada