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.

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:
- 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.
- 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 Blob | Almacenado como |
|---|---|
| Split String 2 Char 3 Levels (predeterminado, recomendado) | bd/7b/d0/bd7bd0ec-6671-4626-8f14-e95a7c3a5f15_133_8 |
| As-Is | bd7bd0ec-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.

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.
| Acciones | Descripción |
|---|---|
| Configuración de Almacenamiento | Configure una o más configuraciones de almacenamiento. |
| Habilitar/Deshabilitar Almacenamiento en Blob | Active o desactive el Almacenamiento de Blobs. Equivale al campo Activo. |
| Detalles del Almacenamiento | Muestra las entradas en caché y las referencias cruzadas entre los registros y los documentos almacenados. |
| Sincronizar Almacenamiento | Ejecuta 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:
| Lista | Descripció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 Cruzadas | Todos 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ón | Descripción |
|---|---|
| List | Listar los blobs de una ruta |
| Get | Leer un blob como texto o como flujo |
| Put | Guardar un blob a partir de texto o de un flujo |
| Delete | Eliminar un blob |
| Exist | Comprobar si un blob existe |
| Setup, DeleteSetup | Abrir o eliminar la configuración propia del tipo de almacenamiento |
| Initialize, ClearInternal | Preparar la implementación para una configuración de almacenamiento específica |
| GetDescription | Descripción que se muestra en las páginas de configuración |
| Enable | Habilitar o deshabilitar el almacenamiento |
| Test | Probar la conexión |