Completar o quitar ceros a la izquierda de una variable

17 10 2007

* 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.


Technorati tags:


Acciones

Information

22 responses

23 01 2008
matias

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 =) .

14 04 2016
galeras7

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!!!

14 04 2016
galeras7

Perdón me confundí, la tabla es MARA, y en el campo MATNR se revisa la rutina de conversión.

Saludos!

24 01 2008
Daniel Panaro

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!

6 08 2009
Legoles_

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.

7 08 2009
Daniel Panaro

Exacto! … esas son las 2 funciones para agregar y quitar los ceros.
Saludos,
Daniel.

3 02 2011
multiaventura venta del moro

ami la fincion de poner ceros no me funciona, alguien sabe alguna otra funcion.

7 04 2011
Reiho

Prueba con:

SHIFT p_var LEFT DELETING LEADING ‘0’.

Saludos.

28 01 2022
alfred

Hola, esta es para quitar , pero para poner los ceros sin usar conversion_exit_alpha_input ? sabran de alguna

31 01 2022
Daniel Panaro

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.

26 04 2011
Marc

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 ‘;&#0’ como caracteres falten para llegar a 255.
– A una cuenta Outlook Web Acces me llega solo una linea, en cuanto reconoce la cadena ‘;&#0’ , me corta el resto del mail.

Alguna idea?¿

gracias.
Un saludo

6 03 2012
Gabriel

Es posible utilizar la función «conversion_exit_alpha_input» de manera masiva ??

7 03 2012
Daniel Panaro

Gabriel,
Lamentablemente esta función no funciona de manera masiva.

Saludos cordiales,
Daniel.

14 04 2022
MOU

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.

7 08 2015
Lautaro

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 «

16 05 2018
Luis

excelente aporte, gracias. Me funcionó de maravilla

7 12 2018
josselin tiverio

sus comentarios son muyacertados gracias

22 08 2019
LZ

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!

22 08 2019
Daniel Panaro

Muy buen dato!!! Supongo que es para la versión 7.4, verdad?
Muchas gracias lo voy a probar.
Saludos,
Daniel.

17 06 2020
Anónimo

Excelente info, lo usé y funcionó OK.

17 08 2021
Anónimo

Excelente!!

17 08 2021
Anónimo

Excelente amigo, muchas gracias

Deja un comentario