Simplificando la Manipulación de Imágenes en Business Central: Una Funcionalidad Imprescindible

Descubre cómo una funcionalidad en Business Central te permite transformar imágenes de manera eficiente para su uso en WebServices.

¡Hola a todos y bienvenidos nuevamente a NaviWorld! En esta ocasión, quiero compartir con vosotros una funcionalidad increíblemente útil. Nos encontramos con un desafío común: la necesidad de enviar imágenes de productos a través de un WebService en Business Central. Como sabéis, este campo ahora se almacena como Media, lo que conlleva algunos ajustes en la forma de manejar las imágenes. Además, al trabajar con WebServices, no podemos simplemente enviar imágenes directamente; necesitan ser transformadas de cierta manera.

Pero no os preocupéis, ¡estoy aquí para compartir esta valiosa funcionalidad con vosotros! Hoy os mostraré cómo aprovechar al máximo esta característica.

Vamos manos a la obra 😎

Para empezar, creamos una codeunit llamada «ConvertImage». En esta codeunit, definimos una función y algunas variables necesarias para nuestro proceso.

procedure ConvertItemPictureToBase64(Item: Record Item): Text
var
    TenantMedia: Record "Tenant Media";
    Base64Convert: Codeunit "Base64 Convert";
    ImageBase64: Text;
    ImgInStream: InStream;
begin
    TenantMedia.Get(Rec.Picture.Item(1));
    TenantMedia.CalcFields(Content);
    TenantMedia.Content.CreateInStream(ImgInStream);
    ImageBase64 := Base64Convert.ToBase64(ImgInStream);
    exit(ImageBase64);
end;

Ahora, hablemos un poco sobre esta funcionalidad. Lo primero que hacemos es buscar la imagen dentro de la tabla «Tenant Media», donde Business Central guarda cada uno de los blobs que hay dentro de un Media. Utilizamos el Media de la tabla Item para obtener la imagen, y dado que sabemos que solo tiene un Blob dentro, tomamos el primero en el array interno que tiene el Media.

Luego, calculamos el campo «Content», que es el campo Blob de la tabla «Tenant Media». Creamos un InsStream desde el Blob y finalmente convertimos la imagen en Base64 para poder enviarla a través del WebService.

Esta característica no solo es útil, sino que también simplifica enormemente el proceso de manipulación de imágenes en Business Central.

¿Queréis saber más sobre cómo aprovechar al máximo esta funcionalidad? ¡No dudéis en consultar o revisar el código completo en mi repositorio en GitHub!

¡Espero que esta funcionalidad os sea de gran ayuda y facilite vuestro trabajo en Business Central!

¡Hasta la próxima entrega en NaviWorld!

Comparte tu aprecio

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *