NunezERP
← Volver a los artículos

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.

Publicado el

Inicia sesión para exportar este artículo

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í:

Servicios web en Business Central

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:

Crear una consulta en blanco desde Excel

Abrir el Editor avanzado

Dentro de Power Query pulsamos sobre Editor avanzado:

Editor avanzado de Power Query

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:

Consulta OData en Power Query

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.

Autenticación mediante una 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 →