Cómo conectar Excel con Business Central usando una cuenta de usuario
Una forma bastante sencilla de hacerlo es conectarnos directamente desde Excel mediante Power Query y utilizar una cuenta de usuario de Business Central para autenticarnos.
En muchas ocasiones necesitamos trabajar en Excel con información de Business Central: movimientos contables, clientes, proveedores, productos o cualquier otro dato que tengamos disponible en el ERP.
En este artículo veremos cómo hacer esta conexión utilizando una cuenta del propio entorno de BC, y en otro artículo veremos otra alternativa utilizando Client ID + Client Secret, que resulta especialmente útil cuando queremos evitar que la conexión dependa de una cuenta de usuario concreta.
Publicar la información desde Business Central
Lo primero que necesitamos es disponer de un servicio web con la información que queremos consultar. Para ello, podemos buscar o crear en Business Central la página de Servicios web desde aquí:

La dirección tendrá una estructura similar a esta:
https://api.businesscentral.dynamics.com/v2.0/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Production/ODataV4/Company('Mi%20Empresa')/Movimientos_Contabilidad
Lo más sencillo es copiar directamente la URL que aparece en Servicios web de BC.
La cuenta debe ser una cuenta del cliente
Este punto es importante, especialmente si trabajamos como consultores o partners de Business Central.
Las cuentas de asociado que utilizamos habitualmente los consultores para entrar en los entornos de nuestros clientes ya no nos sirven para realizar este tipo de conexión desde Excel. Por tanto, necesitaremos una cuenta del tenant del cliente y un usuario de Business Central con los permisos correspondientes.
Esto también es importante desde el punto de vista de seguridad: el usuario únicamente podrá consultar mediante OData aquella información a la que tenga acceso en Business Central.
Crear una consulta en blanco desde Excel
Una vez tenemos la URL del servicio, abrimos Excel y vamos a:

Abrir el Editor avanzado
Dentro de Power Query pulsamos sobre Editor avanzado:

Y usamos algo parecido a:
let
Origen = OData.Feed(
"https://api.businesscentral.dynamics.com/v2.0/{tenantId}/{entorno}/ODataV4/Company('{empresa}')/{nombreServicio}",
null,
[Implementation="2.0"]
)
in
Origen
Simplemente tendremos que sustituir la URL del ejemplo por la URL OData V4 que hemos copiado previamente desde Business Central.
El resultado será parecido al siguiente:

Al confirmar la consulta, Excel intentará conectarse con Business Central.
Iniciar sesión con la cuenta del usuario
La primera vez que hagamos la conexión, Power Query nos pedirá cómo queremos autenticarnos.
Debemos seleccionar Cuenta organizativa.

Pulsamos en Iniciar sesión e introducimos la cuenta del cliente que tenga acceso a Business Central.
Una vez iniciada la sesión, Power Query podrá recuperar los datos del servicio OData.
A partir de aquí podemos trabajar con la información como con cualquier otra consulta de Power Query: eliminar columnas, cambiar tipos de datos, combinar consultas o cargar el resultado directamente en Excel.
Filtrar los datos directamente desde la URL
También podemos añadir filtros directamente en la URL del servicio.
Por ejemplo, filtrar por un código determinado:
...?$filter=Country_Region_Code eq 'ES'
También podemos combinar varios filtros:
...?$filter=Country_Region_Code eq 'ES' and Blocked eq false
Podemos utilizar filtros sobre los campos que tengamos disponibles en el servicio web que estamos consultando. Es decir, el campo debe estar publicado dentro de la página o consulta que estamos exponiendo mediante OData.
Siempre que podamos, es mejor filtrar en la URL
Este punto puede marcar bastante diferencia cuando trabajamos con tablas grandes.
Imaginemos que queremos consultar movimientos de contabilidad y tenemos varios millones de registros. Podríamos traer toda la información a Power Query y después aplicar un filtro:
Movimientos >= 2026
Pero en ese caso podemos estar solicitando a Business Central una cantidad enorme de información que realmente no necesitamos. Si aplicamos el filtro directamente sobre la URL, Business Central ya devolverá únicamente los registros que cumplen esa condición.
Por ejemplo:
...?$filter=Posting_Date ge 2026-01-01
De esta forma reducimos la cantidad de datos que debe devolver Business Central y también el trabajo que debe realizar Power Query.
En general, si sabemos de antemano qué registros necesitamos, es preferible aplicar el filtro directamente en la URL.
Una idea para seguir pensando.
Explorar otras lecturas →