用户手册
帮助中心/用户手册/接 Dynamics 365 Business Central:拉订单与客户进来,查库存

接 Dynamics 365 Business Central:拉订单与客户进来,查库存

最后更新 2026-11-01

在 Microsoft Entra 注册应用,再在 Business Central 里建对应的应用记录,把 Tenant ID、Client ID 和 Client Secret 填进 Integration,测试、配 Mapping、激活——销售订单与客户流进来。

Dynamics 365 Business Central 连接器把您 Business Central 公司里的销售订单和客户拉进 OMS,并读取 Business Central 产品上的库存数量,让您在承诺发货前先核对库存。本连接不会把库存调整写回 Business Central——库存修正请直接在 Business Central 里做。

Business Central 接入步骤:先把两边都配好——Entra 与 Business Central——再测试、配 Mapping、激活。

前置条件#

  • 一个您在用的 Microsoft Dynamics 365 Business Central 环境——生产环境,或第一次测试先用 Sandbox 这类沙箱环境。
  • 有权在您租户的 Microsoft Entra 里注册应用(Microsoft Entra 管理中心 / Azure 门户)。
  • 有权在 Business Central 内部创建 Microsoft Entra 应用记录并给它分配权限集。只在 Entra 里注册应用只算配好一半——Business Central 这一侧同样必须配。

拿凭证#

  1. 在 Microsoft Entra 里打开 App registrations,进入您的应用(或新注册一个)。在概览页复制 Directory (tenant) ID——这就是 tenant_id;再复制 Application (client) ID——这就是 client_id。
  2. 给该应用授予调用 Business Central API 所需的 Business Central API 权限。
  3. 仍在应用页里,进 Certificates & secrets → New client secret,创建一个 secret 并立即复制它的值——这就是 client_secret,值只显示一次。
  4. 接下来配 Business Central 这一半:登录 Business Central,为同一个应用创建一条 Microsoft Entra 应用记录,并给它分配一个能读公司、销售订单、客户和产品的权限集。没有这条记录,连接测试会报 403(见常见问题)。
Client Secret 的值只显示一次。离开 Certificates & secrets 页面前先妥善保存——丢了就新建一个 secret 并更新连接。

填进 Integration#

  1. 打开 Integration → 连接器市场 → Dynamics 365 Business Central → 新建连接。
  2. tenant_id——必填:粘贴 Microsoft Entra 应用页里的 Directory (tenant) ID。它是 GUID 格式:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。
  3. environment——可选:您的 Business Central 环境名,与 Business Central 里显示的完全一致。留空时连接使用 production;用沙箱时填它的名字,如 Sandbox。
  4. company——可选:本连接要读取的 Business Central 内部公司名。留空时,连接使用 Business Central 返回的第一家公司。
  5. client_id——必填:粘贴同一个 Microsoft Entra 应用页里的 Application (client) ID。它按密钥存储,永不回显。
  6. client_secret——必填:粘贴您从 Certificates & secrets 复制的 Client Secret 值。它加密存储,永不回显。

测试连接#

点测试连接。测试先检查 tenant_id、client_id、client_secret 是否都已填写——缺任何一个就直接停下并报出缺失项(MISSING_TENANT_ID 或 MISSING_CLIENT_SECRET),不会发出任何请求。随后它用您的客户端凭证去 login.microsoftonline.com 换取令牌,再拿令牌按您填的租户和环境,从 api.businesscentral.dynamics.com 的 Business Central 读取公司列表(最多 5 家)。

测试通过时会显示找到的第一家公司名称,以及共返回了几家公司——请核对这家公司正是您要拉订单的那家。如果 Business Central 约 12 秒内没有响应,测试会超时结束,因此超时通常意味着环境名填错了,或 Business Central 当时无法访问。

配 Mapping / 选模板#

选 Business Central 标准模板。它把销售订单号、带产品编号与数量的订单行、以及订单上的客户映射成标准订单。激活前先用一个真实销售订单跑一遍映射预览,核对两件事:订单来源公司是您要的那家;订单行上的每个 Business Central 产品编号都配到了您这边的产品。如果您有多家公司,先在连接上填好 company 字段,预览才会读对公司。

Business Central 往返:销售订单与客户进来,产品库存被读取用于库存核对。库存调整留在 Business Central 里做。

激活#

激活后,Integration 按您设的频率,从本连接指向的公司拉取新的销售订单和客户,并在需要核对库存时从 Business Central 读取产品库存。库存调整不会回传到 Business Central——库存修正请继续在 Business Central 里做,那里始终是库存的事实记录。先在 运行监控 / 日志里盯几单,确认无误再放手跑。

常见问题#

测试报 403——MISSING_SCOPE

凭证已被接受,但该应用在 Business Central 内部没有权限集。这是本连接器最常见的失败:应用在 Microsoft Entra 里注册好了,却没人在 Business Central 内部为它建 Microsoft Entra 应用记录,于是 Business Central 允许它登录、但拒绝它读取任何数据。

登录 Business Central,如还没有就为该应用创建一条 Microsoft Entra 应用记录,给它分配一个能读公司、销售订单、客户和产品的权限集,然后重新测试。

测试报 INVALID_CREDENTIALS

换令牌这一步本身被拒了:Microsoft Entra 不接受您填的 tenant_id 下的这组 client_id 与 client_secret。常见原因是 client_secret 已过期或复制不完整、client_id 是另一个应用的、或 tenant_id 是另一个租户的,与应用所属租户不一致。

回 Microsoft Entra → App registrations → 您的应用,从同一个应用页重新复制 Directory (tenant) ID 和 Application (client) ID。如果 secret 可能已过期,在 Certificates & secrets 下新建一个 client secret,把新值粘贴到 client_secret,再重新测试。

测试在读取公司时报 INVALID_TOKEN

令牌已经签发,说明凭证本身没问题——但测试去读公司列表时,Business Central 拒绝了这个令牌。问题出在 Microsoft Entra 一侧的应用权限:该应用缺少它需要的 Business Central API 权限,或该权限从未在您的租户里被授予。

在 Microsoft Entra 里打开该应用,检查它的 API 权限:补上连接器需要的 Business Central API 权限并为租户授予,然后重新测试。如果仍失败,再按上方 403 那条确认 Business Central 一侧——两边都到位才行。

我们有多家公司——连接会用哪一家?

取决于 company 字段。如果您把 company 留空,连接会使用 Business Central 返回的第一家公司——它可能不是您实际卖货的那家。连接测试会告诉您是哪一家:测试通过时会显示它找到的第一家公司名称。

要把连接固定到某一家公司,就把 company 字段填成该公司在 Business Central 里显示的准确名称,保存后重新测试——测试结果现在应显示这家公司。每多拉一家公司,就另建一个连接。