Saltar al contenido principal

Almacenamiento de Blobs Genérico​

Introducción​

De forma predeterminada, ExFlow almacena los documentos importados en la base de datos de Business Central. Los documentos son principalmente archivos XML y PDF, pero también pueden tener otros formatos, como DOCX o PNG.

La base de datos crece con la cantidad de facturas que recibe el cliente y, dado que los documentos importados suelen contener imágenes, el almacenamiento utilizado en Business Central Online puede crecer rápidamente. El Almacenamiento de Blobs Genérico traslada estos documentos a un almacenamiento externo, que es más económico, y los recupera automáticamente cuando un usuario los necesita.

Los tipos de almacenamiento compatibles son:

  • Azure Container (Azure Blob Storage)
  • SharePoint (mediante Microsoft Graph)

Para la configuración paso a paso, consulte Configuración de Aplicaciones OAuth 2.0 y Almacenamiento.

General​

Un blob es el contenido de un archivo: una secuencia binaria de datos. El archivo se describe mediante sus metadatos, como el nombre, la fecha de creación y el tipo de contenido, que indican a la aplicación cómo usar el contenido.

Para manejar los blobs de manera eficiente, se abstraen de la aplicación. Cuando ExFlow solicita un blob, obtiene el contenido sin saber dónde estaba almacenado.

La solución utiliza tres capas para aislar la funcionalidad.

Aplicación ExFlow​

La aplicación que lee, escribe, elimina y lista blobs (archivos).

Gestión de Almacenamiento​

Maneja dónde, cuándo y cómo se almacena un blob. El almacenamiento en caché, la transferencia de blobs al almacenamiento y su recuperación se manejan en esta capa.

Implementación de Almacenamiento (Interfaz de Almacenamiento)​

La implementación de un tipo de almacenamiento, como Azure Container o SharePoint. Implementa las funciones más primitivas, como Get y Put.

Almacenamiento de Blobs

Qué se Almacena Externamente​

Solo los Adjuntos de Documentos Entrantes vinculados a facturas de compra y abonos aprobados en ExFlow se trasladan al almacenamiento externo. Los documentos que todavía están en el Diario de Importación o en el Estado de Aprobación permanecen en Business Central, ya que requieren acceso inmediato.

Cuando se registra una factura de compra o un abono aprobado en ExFlow, sus adjuntos se añaden a la cola de la Gestión de Almacenamiento. La siguiente ejecución del trabajo de Gestión de Almacenamiento los transfiere al almacenamiento externo.

Cómo se Transfieren y Almacenan en Caché los Documentos​

El trabajo de Gestión de Almacenamiento (codeunit 12026820 Ex Storage Mgmt. NAS) se crea automáticamente cuando se activa el Almacenamiento de Blobs. Cada ejecución realiza dos acciones:

  1. Transfiere los documentos nuevos al almacenamiento externo. Cuando un documento se ha almacenado correctamente, su contenido se elimina del Adjunto de Documento Entrante en Business Central. La opción Tamaño del Lote limita cuántos documentos se transfieren por ejecución. Establézcala en 0 para transferir todos en una sola ejecución.
  2. Limpia la caché. Un documento que se ha recuperado del almacenamiento permanece en Business Central como copia en caché. Cuando no se ha abierto durante el número de días establecido en Cache en Días, la copia se elimina de nuevo. El documento en sí permanece en el almacenamiento externo. Se recomienda establecer 60 días en el campo ''Cache en Días''.

Restauración Automática​

Los usuarios no necesitan hacer nada para abrir un documento que se ha trasladado al almacenamiento externo. ExFlow recupera automáticamente el documento en Business Central cuando se necesita, por ejemplo, cuando el usuario:

  • Descarga un Adjunto de Documento Entrante o hace clic en su nombre de archivo
  • Usa Ctrl+I en ExFlow para descargar el adjunto principal
  • Descarga varios documentos a la vez
  • Abre la vista previa del PDF en el Historial de Aprobación
  • Visualiza la imagen del documento a través del servicio web de ExFlow (por ejemplo, en el complemento PDF de ExFlow o en ExFlow Web)

El documento restaurado se mantiene entonces en la caché como se describe arriba.

Nomenclatura de Blobs​

Cada documento almacenado recibe un nombre fijo formado por el SystemId del registro, el número de tabla y el número de campo, por ejemplo:

bd7bd0ec-6671-4626-8f14-e95a7c3a5f15_133_8

La opción Estructura del Nombre del Blob controla la estructura de carpetas en el almacenamiento:

Estructura del Nombre del BlobAlmacenado como
Split String 2 Char 3 Levels (predeterminado, recomendado)bd/7b/d0/bd7bd0ec-6671-4626-8f14-e95a7c3a5f15_133_8
As-Isbd7bd0ec-6671-4626-8f14-e95a7c3a5f15_133_8

Dividir el nombre en carpetas mantiene bajo el número de archivos por carpeta. La Estructura del Nombre del Blob no se puede cambiar mientras el Almacenamiento de Blobs esté activo.

Configuración de Almacenamiento de Blobs​

Ir a: Configuración de ExFlow --> Acciones --> Funciones --> Gestión de Almacenamiento de Blobs (--> Configuración de Almacenamiento)

La Configuración de Almacenamiento de ExFlow es genérica. Contiene Código, Descripción, Fuente de Blob (el tipo de almacenamiento) y si la configuración está Habilitada. Una configuración de almacenamiento debe estar habilitada antes de poder utilizarse.

Puede haber más de una configuración de almacenamiento por Fuente de Blob.

Configuración de Almacenamiento

En el ejemplo, la Fuente de Blob elegida es "Azure Container".

Haga clic en Configurar Almacenamiento para abrir la página de configuración del tipo de almacenamiento seleccionado, donde se introducen los datos de conexión. Cada implementación almacena sus propios parámetros, en su propia tabla o en el almacenamiento aislado. Por ejemplo, la Shared Access Key de Azure Container se guarda en el almacenamiento aislado.

La Gestión de Almacenamiento no sabe cómo se almacenan físicamente los archivos. Una llamada a Get o Put se comporta de la misma manera tanto si el almacenamiento es Azure Container como SharePoint.

Configuración de la Gestión de Almacenamiento​

Los campos de la página Configuración de Gestión de Almacenamiento de ExFlow se describen en Configuración de Almacenamiento en Blob para SharePoint.

AccionesDescripción
Configuración de AlmacenamientoConfigure una o más configuraciones de almacenamiento.
Habilitar/Deshabilitar Almacenamiento en BlobActive o desactive el Almacenamiento de Blobs. Equivale al campo Activo.
Detalles del AlmacenamientoMuestra las entradas en caché y las referencias cruzadas entre los registros y los documentos almacenados.
Sincronizar AlmacenamientoEjecuta el mismo proceso que el trabajo de Gestión de Almacenamiento: transfiere los documentos nuevos al almacenamiento y limpia la caché.
Añadir Manualmente Todos los Documentos Registrados a la CachéAñade los adjuntos de todas las facturas y abonos registrados de ExFlow a la cola, para que se transfieran en la siguiente sincronización.
Restaurar Manualmente Todos los Entrantes Registrados desde la CachéRecupera todos los documentos almacenados en Business Central.

Activar el Almacenamiento de Blobs​

  • Código de Almacenamiento de Doc. Entrante debe estar rellenado antes de poder activar el Almacenamiento de Blobs.
  • Si ya existen facturas o abonos de ExFlow registrados, ExFlow pregunta si se deben añadir. Elija Sí para que se transfieran en la siguiente sincronización.
  • Se crea el trabajo recurrente de Gestión de Almacenamiento.
  • Mientras el Almacenamiento de Blobs esté activo, Código de Almacenamiento de Doc. Entrante y Estructura del Nombre del Blob no se pueden cambiar.

Desactivar el Almacenamiento de Blobs​

Cuando se desactiva el Almacenamiento de Blobs, ExFlow pregunta si se deben restaurar todos los documentos almacenados. Al confirmar, cada documento se recupera en los Adjuntos de Documentos Entrantes en Business Central y se eliminan todas las referencias de almacenamiento. De este modo, es posible dejar de usar el almacenamiento externo sin perder ningún documento.

Detalles de Almacenamiento de ExFlow​

Ir a: Configuración de Gestión de Almacenamiento de ExFlow --> Acciones --> Detalles del Almacenamiento

La página muestra dos listas:

ListaDescripción
Entradas en CachéDocumentos que se encuentran actualmente en Business Central: documentos pendientes de transferencia y documentos recuperados del almacenamiento. Muestra cuándo se almacenó cada entrada y cuándo se accedió a ella por última vez.
Referencias CruzadasTodos los documentos gestionados por el Almacenamiento de Blobs, identificados por N.º de Tabla, N.º de Campo y System Id, con la referencia de almacenamiento (nombre del blob) y la fecha en que se almacenaron externamente.

Almacenamiento de Blobs General (BSApi)​

Si se establece Código de Almacenamiento en Blob General, los socios y desarrolladores pueden utilizar la API de Almacenamiento de Blobs (codeunit BSApi) para leer y escribir sus propios archivos en el almacenamiento, con sus propios nombres y estructura de carpetas. Este código de almacenamiento puede ser el mismo que el utilizado para los documentos entrantes.

La interfaz que implementa cada tipo de almacenamiento (Ex IBlob Storage v1) contiene:

FunciónDescripción
ListListar los blobs de una ruta
GetLeer un blob como texto o como flujo
PutGuardar un blob a partir de texto o de un flujo
DeleteEliminar un blob
ExistComprobar si un blob existe
Setup, DeleteSetupAbrir o eliminar la configuración propia del tipo de almacenamiento
Initialize, ClearInternalPreparar la implementación para una configuración de almacenamiento específica
GetDescriptionDescripción que se muestra en las páginas de configuración
EnableHabilitar o deshabilitar el almacenamiento
TestProbar la conexión