martes, marzo 11, 2014

Envio de PDF o cualquier imagen en un Servicio WEB.


De la aplicación donde publico el WS en el metodo este lo que hago es crear el pdf y luego al SDT de salida que tiene un atributo blob le asigno el pdf

Qué versión de Genexus ni generador trabajas pero creo que en todos los casos tienes que codificar en 64 bits para poder enviarlo por el ws. Yo trabajo con Gx9, generador Java, y en mi caso no contaba con funciones específicas para esa conversión, tuve que usar una clase java externa. Pero creo que a partir de la versión X ya existen funciones específicas para ello. Investiga por ahí.

He estado investigando pero no me doy cuenta com hacerlo por lo que veo hay q utilizar las funciones tobase64String y frombase64string yo tengo mi SDT que es de este estilo sdtsalida.blob

Tengo que convertirlo a base64 y luego para consumirlo tengo q hacerle un frombase64string el tema que del lado de donde lo consumo el sdt q me crea en
ves de tener un blob tengo un character(9999) y no se ccomo seguir.

A partir de ese string es que debes reconstruir tu estructura del lado del cliente. Aplica la función FromBase64String y obtendrás la estructura.

Te cuento mas o menos como hago del lado donde publico lo q hago es esto:
    &blob=(ruta del pdf)'C:\Documents and Settings\prueba.pdf'
    &sdtsalida.blob=&blob.ToBase64String()
    &blob tipo blob
    &sdtsalida sdt de salida

y de donde lo consumo :
    &salida=ws.Execute()
    &pdf.FromBase64String(&salida.blob)
    &pdf tipo blob

pero se me cae &pdf.FromBase64String(&salida.blob)
    Capaz q estoy entendiendo mal .
    Después otra duda es ni bien tenga el archivo cargado en una variable de tipo blob como hago para mostrarla en una ventana ??? mi idea es crearme
    un procedimiento q me lo abra en una ventana del browser.

Ya pude enviarlo ...
    Estaba haciéndolo mal estaba intentando mandar un blob y al final cambie y mande un longvarchar entonces del lado donde publico hago un tobase64 y del otro un frombase64

   

No hay comentarios: