Configuración de Aplicaciones OAuth 2.0 y Almacenamiento
Esta página describe cómo permitir que ExFlow almacene los archivos adjuntos de los documentos entrantes en SharePoint (o en un Contenedor Blob de Azure) en lugar de en la base de datos de Business Central.
Para obtener soporte sobre lo siguiente, contacte al departamento de TI interno o a un socio de confianza de Business Central.
Resumen de la configuración
- Registre una aplicación en Microsoft Entra y concédale acceso a SharePoint.
- Cree una Aplicación OAuth 2.0 en ExFlow que utilice la aplicación de Entra para obtener un token de acceso.
- Prepare una carpeta de SharePoint y cree una Configuración de Almacenamiento en ExFlow que apunte a ella.
- Active el Almacenamiento en Blob para que ExFlow comience a mover los documentos.
Para un Contenedor Blob de Azure, los pasos 1 y 2 no son necesarios. Consulte Configuración de Almacenamiento en Blob para Contenedor Azure.
Valores que se deben copiar de Microsoft Entra
Tenga a mano estos valores, se necesitan en el paso 2:
| Valor | Utilizado en el campo de ExFlow |
|---|---|
| ID de aplicación (cliente) | ID de Aplicación / Cliente |
| Secreto de cliente (valor) | Secreto de Cliente |
| Punto final de token de OAuth 2.0 (v2) | URL de Token de Acceso |
| Punto final de autorización de OAuth 2.0 (v2) | URL de Autorización |
| Punto final de la API de Microsoft Graph | Ámbito (como https://graph.microsoft.com/.default) |
Crear Aplicación o Principal de Servicio en MS Entra (o Azure)
En el centro de administración de Microsoft Entra, vaya a Registros de aplicaciones y seleccione Nuevo registro. Ingrese un nombre de su elección, seleccione Cuentas en cualquier directorio organizativo y luego seleccione Registrar.

Después del registro, copie el ID de aplicación (cliente).

Vaya a Permisos de API y seleccione Agregar un permiso.

Seleccione Microsoft Graph y Permisos de aplicación.
Busque "site" y añada el permiso Sites.ReadWrite.All.

Seleccione Agregar un permiso de nuevo, luego SharePoint y Permisos de aplicación.
Seleccione y añada ambos permisos: Sites.ReadWrite.All y Sites.Manage.All.

Seleccione Conceder consentimiento de administrador para estos permisos:

Los permisos deberían verse así:

Vaya a Certificados y secretos.

Cree un nuevo secreto de cliente:

Copie el Valor del secreto de inmediato y guárdelo de forma segura. Solo se muestra una vez. Si el secreto se pierde o caduca, cree un nuevo secreto e ingréselo en la Aplicación OAuth 2.0 en ExFlow.

Vuelva a la lista de registros de aplicaciones y seleccione Puntos de conexión. Copie el Punto final de autorización de OAuth 2.0 (v2), el Punto final de token de OAuth 2.0 (v2) y el Punto final de la API de Microsoft Graph.

La configuración en Microsoft Entra ha finalizado.
Configurar una Aplicación OAuth2 en ExFlow
Vaya a: Configuración de ExFlow --> Acciones --> Funciones --> Aplicaciones OAuth2
Seleccione Nuevo para crear una nueva Aplicación OAuth 2.0.


Complete los campos de la siguiente manera:
| General | |
|---|---|
| Código | Un código corto de su elección que identifica esta aplicación, por ejemplo SHAREPOINT. |
| Descripción | Una descripción de la aplicación. |
| ID de Aplicación / Cliente | Pegue el ID de aplicación (cliente) de Microsoft Entra. |
| Secreto de Cliente | Pegue el valor del secreto de cliente de Microsoft Entra. El valor se almacena de forma segura y se muestra como asteriscos. |
| Tipo de Concesión | Seleccione Credenciales de Cliente. Este es el tipo de concesión que se debe utilizar para el almacenamiento en SharePoint. (Código de Autorización y Credenciales de Contraseña también están disponibles. Credenciales de Contraseña muestra los campos adicionales Nombre de Usuario y Contraseña.) |
| URL de Redirección | Déjelo vacío. Solo se utiliza con el tipo de concesión Código de Autorización. |
| Ámbito | Ingrese https://graph.microsoft.com/.default (el punto final de la API de Microsoft Graph seguido de .default). |
| Puntos finales | |
|---|---|
| URL de Autorización | Pegue el punto final de autorización de OAuth 2.0 (v2). Solo se utiliza con el tipo de concesión Código de Autorización, pero se puede completar de todos modos. |
| URL de Token de Acceso | Pegue el punto final de token de OAuth 2.0 (v2). Obligatorio. |
| Parámetros de URL de Autorización | Déjelo vacío. Solo se utiliza con el tipo de concesión Código de Autorización. |
Ambas URL deben comenzar con https://.

Pruebe la configuración seleccionando Solicitar Token de Acceso. Con Credenciales de Cliente, no se solicita inicio de sesión. Si todo es correcto, se muestra el mensaje "Token de Acceso actualizado con éxito." y el Estado en la lista de Aplicaciones OAuth 2.0 se establece en Conectado. Si algo está mal, se muestra el error de Microsoft y el Estado se establece en Error.
| Acciones | |
|---|---|
| Solicitar Token de Acceso | Obtiene un nuevo token de acceso utilizando la configuración de la ficha. Utilice esta acción para probar la configuración. |
| Actualizar Token de Acceso | Actualiza el token de acceso mediante un token de actualización. No se utiliza con Credenciales de Cliente, ya que no se emite ningún token de actualización. ExFlow solicita automáticamente un nuevo token cuando el anterior caduca. |
Configuración de SharePoint
En SharePoint, vaya a Contenido del sitio y cree una nueva Biblioteca de documentos. Luego cree una carpeta en la nueva biblioteca de documentos. ExFlow almacena los documentos en esta carpeta.
Abra la carpeta recién creada y copie la URL completa del campo de dirección del navegador. La URL es necesaria en la Configuración de Almacenamiento a continuación.
Nota: Asegúrese de copiar la URL después de abrir la carpeta. El nombre de la carpeta se lee de la parte ?id=... de esa URL. Si solo se copia la URL de la biblioteca de documentos, la carpeta debe ingresarse manualmente.
Configuración de Almacenamiento
Vaya a: Configuración de ExFlow --> Acciones --> Funciones --> Gestión de Almacenamiento en Blob (la página Configuración de Gestión de Almacenamiento de ExFlow).
Seleccione Configuración de Almacenamiento y luego Nuevo.

Ingrese un Código y una Descripción. Para Fuente de Blob, seleccione SharePoint.
Luego seleccione Configurar Almacenamiento para abrir la Configuración de SharePoint.

Pegue la URL copiada de SharePoint en el campo URL de SharePoint. Al salir del campo, los valores de Host, Sitio, Biblioteca de Documentos y Carpeta se completan automáticamente. Si falta algún valor (normalmente Carpeta), ingréselo manualmente.

Nota: Si la URL de SharePoint se cambia más adelante, se requiere una confirmación. Todos los valores de SharePoint se borran y se vuelven a leer de la nueva URL, y la conexión debe probarse de nuevo.
En Código de Aplicación OAuth2, seleccione la Aplicación OAuth 2.0 creada anteriormente y seleccione Conectar para probar la conexión.
Si todo está bien, el Estado de Conexión de SharePoint se establece en Conectado, y se completan ID de Sitio, ID de Unidad e ID de Lista.
Si la conexión falla, se muestra el error de SharePoint, por ejemplo:
| Mensaje | Causa más probable |
|---|---|
| Not Found | El nombre del sitio o de la biblioteca de documentos es incorrecto. |
| Unauthorized o Forbidden | Faltan los permisos de API o no se ha concedido el consentimiento de administrador en Microsoft Entra. |
| Estado de Conexión de SharePoint | |
|---|---|
| Desconectado | La conexión aún no se ha probado. |
| Revalidar | Se ha cambiado una configuración desde la última prueba. Seleccione Conectar de nuevo. |
| Conectado | La conexión se ha probado correctamente. |
Cierre la página Configuración de SharePoint. En la página Configuración de Almacenamiento de ExFlow, seleccione Habilitar / Deshabilitar para que Habilitado quede activado. Esto solo es posible cuando el Estado de Conexión de SharePoint es Conectado.

Cierre la Configuración de Almacenamiento de ExFlow y vuelva a Configuración de Gestión de Almacenamiento de ExFlow.
Activar el Almacenamiento en Blob
En Configuraci ón de Gestión de Almacenamiento de ExFlow, seleccione la nueva configuración de almacenamiento en Código de Almacenamiento de Doc. Entrante.

Revise la Estructura del Nombre del Blob antes de continuar. Se recomienda el valor predeterminado, Split String 2 Char 3 Levels. La Estructura del Nombre del Blob y el Código de Almacenamiento de Doc. Entrante no se pueden cambiar mientras el Almacenamiento en Blob esté activo.
Active Activo o seleccione Habilitar/ Deshabilitar Almacenamiento en Blob.

Si hay facturas o abonos registrados en ExFlow, ExFlow pregunta si se deben añadir al almacenamiento en blob. Seleccione Sí para continuar. Seleccionar No cancela la activación.
Cuando se activa el Almacenamiento en Blob, ExFlow crea la entrada de cola de trabajos ExFlow Blob Storage Job - Recurring (categoría EXFLOW). Se ejecuta cada 60 minutos entre las 08:00 y las 17:00 y mueve los documentos al almacenamiento. Lea más en Cola de Trabajos.
Para verificar el estado de las facturas registradas en el almacenamiento en blob, seleccione Acciones --> Detalles del Almacenamiento.
Para mover los documentos al almacenamiento de inmediato en lugar de esperar a la cola de trabajos, seleccione Sincronizar Almacenamiento.

Actualice la carpeta de SharePoint en el navegador. Las nuevas carpetas creadas por ExFlow deberían ser visibles ahora.

Desactivar el Almacenamiento en Blob: Si Activo se desactiva de nuevo, se requiere una confirmación. Todos los documentos almacenados en el almacenamiento en blob se restauran entonces en la base de datos de Business Central, y se borran la caché de almacenamiento y las referencias cruzadas. Esto puede tardar algún tiempo si hay muchos documentos.
Configuración de Almacenamiento en Blob para Contenedor Azure
La configuración para un Contenedor Blob de Azure es similar a la de SharePoint, pero no utiliza una Aplicación OAuth 2.0.
Vaya a: Configuración de ExFlow --> Acciones --> Funciones --> Gestión de Almacenamiento en Blob, seleccione Configuración de Almacenamiento y cree una nueva configuración con Fuente de Blob establecida en Contenedor Azure. Luego seleccione Configurar Almacenamiento para configurar los ajustes del Contenedor Blob de Azure.
| Configuración de Contenedor Azure | |
|---|---|
| Cuenta de Almacenamiento | Nombre de la Cuenta de Almacenamiento de Azure. Debe tener entre 3 y 24 caracteres. |
| Nombre del Contenedor | Nombre del contenedor en la Cuenta de Almacenamiento. Debe tener entre 3 y 63 caracteres. |
| Clave de Acceso Compartido | La clave de acceso que se encuentra en Claves de acceso de la Cuenta de Almacenamiento de Azure en Azure Portal. La clave se guarda en el almacenamiento aislado y se muestra como ********** una vez guardada. Borre el campo para eliminar la clave. |
| Probar | Comprueba que la configuración es válida y que el contenedor existe. Si todo está bien, se muestra el mensaje "Azure Blob Container settings OK". |
Si la prueba falla, se muestra uno de estos mensajes:
| Mensaje | Causa más probable |
|---|---|
| Azure Shared Account Key missing | Clave de Acceso Compartido está vacía. |
| Unable to fetch list of containers, please review settings | Cuenta de Almacenamiento o Clave de Acceso Compartido es incorrecta. |
| Container does not exist, please review settings | Nombre del Contenedor es incorrecto, o el contenedor no se ha creado en Azure. |
Cuando la prueba sea correcta, vuelva a Configuración de Almacenamiento de ExFlow, seleccione Habilitar / Deshabilitar para que Habilitado quede activado y continúe de la misma manera que para SharePoint: seleccione la configuración en Código de Almacenamiento de Doc. Entrante y active el Almacenamiento en Blob.
Para obtener más detalles sobre el trabajo con Contenedores Blob de Azure, visite Microsoft Learn Introducción a Azure Blob Storage.
Referencia: Configuración de Gestión de Almacenamiento de ExFlow
| Acciones | |
|---|---|
| Configuración de Almacenamiento | Configure una o más configuraciones de almacenamiento (SharePoint o Contenedor Azure). |
| Habilitar/ Deshabilitar Almacenamiento en Blob | Active o desactive el almacenamiento en blob. Igual que el campo Activo. |
| Detalles del Almacenamiento | Muestra las entradas en caché y las entradas de referencias cruzadas. |
| Sincronizar Almacenamiento | Ejecuta de inmediato la misma transferencia que la cola de trabajos. |
| Añadir Manualmente Todos los Documentos Registrados a la Caché | Añade a la caché de almacenamiento todos los documentos entrantes vinculados a documentos registrados de ExFlow. |
| Restaurar Manualmente Todos los Entrantes Registrados desde la Caché | Restaura desde el almacenamiento a la base de datos todos los documentos entrantes vinculados a documentos registrados de ExFlow. |
| General | |
|---|---|
| Cache en Días | Especifica cuántos días permanece el contenido en caché en Business Central. Después del número de días especificado, el contenido se elimina del almacenamiento local. Se recomienda establecer 60 días. |
| Tamaño del Lote | Establezca 0 para transferir todos los documentos en un solo lote durante la sincronización. Establezca un valor superior a 0 para transferir solo esa cantidad de documentos por sincronización. Se aplica tanto a la cola de trabajos como a Sincronizar Almacenamiento. |
| Estructura del Nombre del Blob | Especifica la convención de nombres utilizada para la ruta a los blobs. Split String 2 Char 3 Levels (predeterminado y recomendado) divide el nombre en una ruta como ab/cd/ef/abcdefgh. As-Is utiliza el nombre sin dividirlo. No se puede cambiar mientras el Almacenamiento en Blob esté activo. |
| Activo | Habilita el Almacenamiento en Blob. Requiere que Código de Almacenamiento de Doc. Entrante esté completado. |
| Códigos de Almacenamiento | |
|---|---|
| Código de Almacenamiento de Doc. Entrante | La configuración de almacenamiento utilizada para los archivos adjuntos de documentos entrantes de los documentos registrados de ExFlow. Los nombres de archivo, la estructura de carpetas y la recuperación son gestionados por ExFlow. No se puede cambiar mientras el Almacenamiento en Blob esté activo. |
| Código de Almacenamiento en Blob General | La configuración de almacenamiento utilizada por la API general de Almacenamiento en Blob. Solo es necesaria para extensiones de socios/desarrolladores, consulte a continuación. |
Para socios y desarrolladores: Cuando Código de Almacenamiento en Blob General está configurado con una configuración de almacenamiento (puede ser la misma que para Código de Almacenamiento de Doc. Entrante), se puede utilizar la API de archivos de la codeunit BSApi (API de Almacenamiento en Blob). Funciona como un sistema de archivos en el que se pueden escribir y leer archivos, y el desarrollador controla los nombres y la estructura. El Almacenamiento en Blob para archivos adjuntos de documentos entrantes utiliza internamente la misma BSApi.