PDA

Ver la Versión Completa : Aplicar CONDENSE a toda una tabla interna


andresf02
19/08/10, 12:20:09
Buenos Dias.

Tengo una tabla interna con informacion de varios tipos (enteros, string, flotantes, etc) la cual tengo que descargar a un archivo .txt separado por tabulaciones el cual se va a cargar a una plataforma web.

Eso ya lo tengo hecho y se genera el archivo correctamente separado por tabulaciones, pero al generar el archivo con el programa abap, este respeta el tamaño de cada uno de los campos de la tabla interna donde esta la informacion, es decir, para el caso de los nombres de los clientes que es un CHAR40, por ejemplo si el cliente se llama "IPSA LTDA." esta cadena ocupa 10 caracteres de los 40 que soporta el CHAR40, pero en el archivo .txt quedaria de la siguiente manera:

*10 caracteres ocupados por el nombre
*30 caracteres en blanco (no usados)
*Tabulacion



Lo que necesito es si existe alguna forma de aplicar un CONDENSE (sin usar el NO-GASP) a toda la tabla interna ya completa, o debo aplicar condense a cada campo que voy llenado dentro del LOOP. O almenos poder aplicar condense al Work Area antes de hacerle el APPEND a la tabla interna.


Gracias!

ballan
19/08/10, 14:45:15
si descargas el fichero en online con la funcion GUI_DOWNLOAD se que hay un parametro que se llama TRUNC_TRAILING_BLANKS o algo parecido que te quita los espacios

Si lo haces en fondo puedes aplicar el condense a la cadena que utilizas en el transfer dataset

andresf02
19/08/10, 16:15:30
Gracias por la respuesta Ballan.

Probe tu solucion con los parametros

TRUNC_TRAILING_BLANKS_eol = 'X'
TRUNC_TRAILING_BLANKS_eol = ''
TRUNC_TRAILING_BLANKS = 'X'
TRUNC_TRAILING_BLANKS = ''

Pero el resultado no fue el esperado, en el archivo se continuan conservando los espacios en blanco segun la capacidad del campo. Por ejemplo CHA40, en el archivo quedan los 40 espacios asi no se utilizen todos.

ballan
19/08/10, 16:54:55
Pues me parece extraño, puedes poner el codigo para que veamos como esta declarada la tabla que usas en la gui_download y tambien como haces la llamada a la funcion?

andresf02
19/08/10, 18:34:08
El codigo es el siguiente:


CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
* BIN_FILESIZE =
FILENAME = nombre_file
FILETYPE = 'ASC'
trunc_trailing_blanks_eol = ''
TABLES
* DATA_TAB = t_dfile.
DATA_TAB = ti_plano.


y el formato como salen los datos en el archivo es:

TIPO_MERCADO TIPO_CLIENTE TIPO_TRANSACCION
1 3 1
1 3 1
1 3 1
1 3 1
2 3 2

andresf02
19/08/10, 21:02:26
He pasado los campos de la tabla interna, como una sola cadena a otra tabla interna con un campo string de tamaño 800 y asi logré eliminar estos espacion en blanco en el archivo

Pero resulta que en el archivo, justo antes del TABULADO, me queda 1 solo espacio en blanco para todos los datos sin importar el tamaño de los campos.

Queda asi:

[VALOR][Espacio en Blanco][Tabulacion][valor siguiente campo]......

Nota: No puedo aplicar el NO-GAPS porque hay campo donde aparecen los nombres de los clientes y se debe respetar los espaciones entre los nombres.