* Función que saca los ceros a la izquierda de una variable
CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT’
EXPORTING
INPUT = VG_VARIABLE
IMPORTING
OUTPUT = VG_VARIABLE.
* Función que completa con ceros a la izquierda de una variable
CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’
EXPORTING
INPUT = VG_VARIABLE
IMPORTING
OUTPUT = VG_VARIABLE.
Hola, necesito una funcion para agregar ceros a izquierda a un char y otra para quitar ceros a izquierda a un char (MATNR). Espero me puedan ayudar, muchas gracias =) .
Hola Matias!
Cuando necesites hacer uno de estos procedimientos, primero valida la rutina de conversión de dicho campo, en este caso si entras a la tabla MATNR y navegas hasta su dominio, podrás encontrar su rutina de conversión en la pestaña Definición (MATN1). Si das doble clic a ese nombre, el sistema te mostrará los módulos de funciones que te permiten realizar dichos procedimientos, ya sea quitando o agregando ceros.
Saludos!!!
Perdón me confundí, la tabla es MARA, y en el campo MATNR se revisa la rutina de conversión.
Saludos!
Que tal, yo no conozco ninguna función. Pero podés tratar tu problema con sentencias. Por ejemplo para agregar ceros, una forma puede ser usando la sentencia STRLEN (devuelve la longitud de un campo). Una vez que sabés la longitud vas a saber cuantos ceros agregar en base al máximo de caracteres.
Y después para sacar ceros podrías utilizar la sentencia OVERLAY para sobreescribir los ceros por espacios en blanco y luego hacer un CONDENSE.
Hay varias formas de solucionarlo, espero que algo de esto te sirva…
Saludos!
pues hay dos funciones que son de lo más básicas que sirven para esto:
conversion_exit_alpha_input para poner y
conversion_exit_alpha_output para quitar.
Exacto! … esas son las 2 funciones para agregar y quitar los ceros.
Saludos,
Daniel.
ami la fincion de poner ceros no me funciona, alguien sabe alguna otra funcion.
Prueba con:
SHIFT p_var LEFT DELETING LEADING ‘0’.
Saludos.
Hola, esta es para quitar , pero para poner los ceros sin usar conversion_exit_alpha_input ? sabran de alguna
Hola!
Podés usar la FM conversion_exit_alpha_input
O bien la sentencias UNPACK u OVERLAY
O esta otra alternativa:
id_aux = |{ id_aux ALIGN = RIGHT WIDTH = 5 PAD = ‘0’ }|.
Esa sentencia añade a la izq de la variable tantos ceros como sean necesarios para completar un tamaño de 5.
Puede usarse para añadirlos al otro lado cambiando RIGHT por LEFT.
Hola, búscando por internet sobre el problema que tengo he llegado hasta aquí 😛 .
Haber si se os ocurre alguna solución:
Estoy llenando la estructura SOLIX, con valores Hexadecimales.
Esta estructura esta formada por componentes tipo LINE de 255 carecteres.
Si mi texto en hexadecimal ocupa 250 carácteres, SAP me completa con 0’s hasta llegar a 255.
Hasta aquí todo correcto, el problema es que esta estructura la tengo como parámetro de entreda de la función de envio de mail ‘SO_NEW_DOCUMENT_ATT_SEND_API1’, y según a que tipo de dirección mail envie esto me llega bien, medio bien o mal, me explico:
– A una cuenta Webmail me llega todo OK.
– A una cuenta Hotmail me llega el texto seguido de tantos ‘;�’ como caracteres falten para llegar a 255.
– A una cuenta Outlook Web Acces me llega solo una linea, en cuanto reconoce la cadena ‘;�’ , me corta el resto del mail.
Alguna idea?¿
gracias.
Un saludo
Es posible utilizar la función «conversion_exit_alpha_input» de manera masiva ??
Gabriel,
Lamentablemente esta función no funciona de manera masiva.
Saludos cordiales,
Daniel.
Creas una tabla con N cantidad de números que quieras completar con ceros, recorres la tabla y dentro del ciclo mandas llamar a la función.
Pasa el CHAR a un NATURAL, sacale los ceros con esas 2 Funciones que nombraron, y luego vuelve a pasarlo a un CHAR:
«Write to «
excelente aporte, gracias. Me funcionó de maravilla
sus comentarios son muyacertados gracias
Buenas, existe una nueva sentencia con la que poder rellenar con cualquier caracter, a izq o dcha de una variable, pudiendo especificar cuántos caracteres de relleno se quieren colocar.
id_aux = |{ id_aux ALIGN = RIGHT WIDTH = 5 PAD = ‘0’ }|.
Esa sentencia añade a la izq de la variable tantos ceros como sean necesarios para completar un tamaño de 5.
Puede usarse para añadirlos al otro lado cambiando RIGHT por LEFT.
¡Saludos!
Muy buen dato!!! Supongo que es para la versión 7.4, verdad?
Muchas gracias lo voy a probar.
Saludos,
Daniel.
Excelente info, lo usé y funcionó OK.
Excelente!!
Excelente amigo, muchas gracias