Mitra Global Services

Navimania – Convertir imagen en base64

Hola! Aquí estoy una semana más 🙂

Hoy os traigo un descubrimiento reciente que hemos hecho nuestro compañero Javi Marfil (programador en Mitra) y yo.

Teníamos el requerimiento de enviar la imagen de un producto por WebServices. Como sabemos en Business Central ese campo ahora es de tipo Media y no funciona igual que un blob, además por WebServices no se pueden enviar imágenes tal cual, es preciso transformarlas.

Pues esto es lo que os voy a enseñar hoy.

Vamos manos a la obra 😎

Lo primero que haremos es crear una Codeunit.

Una vez creada vamos a añadir las variables:

Aquí me detengo un poco a explicar estas variables.

La primera es una tabla donde Business Central guarda cada uno de los Blobs que hay dentro de un Media.

La segunda es la Codeunit de transformación de Base64 que hemos decidido que es el método mas sencillo para enviar la imagen.

Las otras dos ya las conocemos por lo que vamos a proseguir.

Continuamos, buscamos la imagen dentro de la tabla “Tenant Media”:

Esto lo hacemos con el Media de la tabla Item, que como sabemos, solo tiene un Blob dentro, indicando el primero en el array interno que tiene el Media.

Ahora calculamos el “Content” que es el campo Blob de la tabla “Tenant Media”:

Creamos el InsStream desde el Blob:

Y por último, convertimos en Base64 y exportamos ese texto para cuando se llame a la función.

Es un ejemplo muy sencillo, pero muy útil.

Como siempre este ejemplo entero lo tenéis colgado en GitHub en el link.

Esperamos que esta explicación os resulte de utilidad y os emplazamos a nuestra próxima publicación.

CAT