MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 05/11/09, 13:02:59
lucia_12 lucia_12 is offline
Member
 
Fecha de Ingreso: jun 2009
Mensajes: 45
Convertir fichero en base 64

Hola!

Estoy creando una RFC que recibe un fichero en base64 y lo tiene que convertir a XML o PDF (dependiendo de la opción que reciba).

He encontrado esta función SSFC_BASE64_DECODE, pero no sé como indicarle que quiero que me lo convierta a XML o a PDF. Tampoco sé si es está función la que debería usar.

¿Me podéis ayudar?

Gracias!!
Responder Con Cita
  #2  
Viejo 05/11/09, 17:11:50
ic_man_777 ic_man_777 is offline
Member
 
Fecha de Ingreso: oct 2007
Localización: Mexico
Mensajes: 97
Xml

Bueno, creo que ahí tienes 2 problemas, uno que al parecer ya has resuelto, que es decodificar el archivo que estaba en base64... ahora tu problema es convertirlo a XML o PDF.

he aquí unos links para convertir una tabla interna (que supongo que ahí tendrás lo que subiste de tu archivo) a XML:




espero te pueda ser util.
Responder Con Cita
  #3  
Viejo 06/11/09, 09:39:36
lucia_12 lucia_12 is offline
Member
 
Fecha de Ingreso: jun 2009
Mensajes: 45
Gracias, pero ya los vi y no funcionan.

¿Alguien sabe alguna solución más?
Me interesa preferiblemente el caso de pasar a PDF.

Gracias
Responder Con Cita
  #4  
Viejo 10/11/09, 10:50:17
lucia_12 lucia_12 is offline
Member
 
Fecha de Ingreso: jun 2009
Mensajes: 45
Podrían decirme si es posible pasar a PDF un archivo en formato binario base64 o en formato binario? Si es así, me podrían indicar cómo?

Llevo varios días con esto y no encuentro nada que me sirva

Muchas gracias.
Responder Con Cita
  #5  
Viejo 10/11/09, 14:30:54
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Prueba a hacer lo siguiente

Convierte el string que te llega en base 64 a un string binario utilizando cualquiera de los metodos que te han indicado anteriormente, con las funciones decode/encode o bien con la clase cl_abap_conv_in_ce

Ese string binario tendras que meterlo dentro de una tabla por lo que tendras que hacer un algoritmo o bien mirar si te sirve la funcion CONVERT_STRING_TO_TABLE u otra similar, la tabla destino deberia almacenar los datos en binario tambien, creo que tendrias que definirla mas o menos asi:

DATA: begin of tabla occurs 0,

linea(1024) type x,

end of tabla.

Una vez que tengas tu STREAM BINARIO en una tabla podras descargarlo con la funcion GUI_DOWNLOAD si es en online y haciendo open dataset for output in binary mode si lo estuvieras haciendo en fondo

Mas o menos seria algo asi

*ONLINE
GUI_DOWNLOAD
FILENAME = ruta donde depositar el fichero terminando en .pdf
FILETYPE = 'BIN'.
DATA_TAB = tabla que contiene el string

*FONDO
open dataset dst for output in binary mode.

loop at tabla into linea.

transfer linea to dst. "Aqui a lo mejor podrias hacer un transfer string to dst *y te ahorrarias tener que convertir el string a tabla

endloop.

close dataset.

Prueba y nos cuentas

Úlima edición por ballan fecha: 10/11/09 a las 14:34:03.
Responder Con Cita
  #6  
Viejo 10/11/09, 16:32:00
lucia_12 lucia_12 is offline
Member
 
Fecha de Ingreso: jun 2009
Mensajes: 45
Hola ballan!

Ante todo, gracias por contestar.

He probado lo que me has dicho, y me crea un pdf pero no me deja abrirlo.

El código que he creado es el siguiente:

DATA: fic_binario TYPE xstring.
DATA: string_binario TYPE string.

DATA: BEGIN OF lines occurs 100,
tdline(132).
DATA: END OF lines.


"Se convierte el fichero de binario64 a binario

CALL FUNCTION 'SSFC_BASE64_DECODE'
EXPORTING
B64DATA = fichero_64
IMPORTING
BINDATA = fic_binario.


string_binario = fic_binario.

"Se pasa a tabla interna

CALL FUNCTION 'CONVERT_STRING_TO_TABLE'
EXPORTING
I_STRING = string_binario
I_TABLINE_LENGTH = 132
TABLES
ET_TABLE = lines.



CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'C:\Documents and Settings\usr\Escritorio\Fic1.pdf'
FILETYPE = 'BIN'

TABLES
DATA_TAB = lines .


No sé si puede ser por la longitud de cada línea de la tabla.
También he probado a insertar en la tabla el string sin utilizar la función 'CONVERT_STRING_TO_TABLE' y a utilizar open dataset, pero esto último es para crear archivos en el servidor y yo lo quiero en local.

¿Alguna idea de por qué me está fallando?

Gracias!!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 21:26:31.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web