接 Microsoft Dynamics 365 Finance & Supply Chain:把销售订单拉进来
在 Microsoft Entra ID 里注册一个应用,再在 Finance & Operations 里登记同一个应用并绑上用户,然后把环境地址和三个凭证字段填进 Integration,测试、核对 Mapping、激活——销售订单就流进来了。
Microsoft Dynamics 365 Finance & Supply Chain 连接器把您 Finance & Operations 环境里的销售订单拉进 OMS,仓库不用再手工重复录单就能履约。这个连接现在做的就是这件事:把销售订单拉进来;它不拉客户、不读库存,也不把库存或其他任何数据推回 Dynamics 365。一个连接对应一个环境——您填的环境地址直接指向那个环境。
前置条件#
- 一个能登录的 Microsoft Dynamics 365 Finance & Supply Chain(Finance & Operations)环境,以及它的环境地址,如 https://myorg.operations.dynamics.com。
- 有 Microsoft Entra ID 的管理员权限、能注册应用——或者有一位 IT 管理员能替您注册,并把租户 ID、Client ID 和 Client Secret 给您。
- 有 Finance & Operations 内部的系统管理权限:应用还必须在 F&O 里登记并绑定一个用户,该用户要有能读销售订单数据的角色。只在 Entra ID 里有凭证还不够。
- Client Secret 一创建就先存到安全的地方:它的值只显示一次,之后再也读不到。
拿凭证#
- 环境地址(Environment URL):用您 Finance & Operations 环境的地址,如 https://myorg.operations.dynamics.com。只复制基础地址——末尾不要带 /data。
- 租户 ID 和 Client ID:在 Microsoft Entra ID 里打开 App registrations(应用注册),注册一个新应用(或打开 IT 管理员已注册的应用),在它的概览页复制 Directory (tenant) ID(目录/租户 ID)和 Application (client) ID(应用程序/客户端 ID)。
- Client Secret:在同一个应用里打开 Certificates & secrets(证书和密码),新建一个 client secret。立刻复制它的值(Value)——值只显示一次,而且这里能用的只有值,旁边显示的 Secret ID 不能用。
- 在 Finance & Operations 里登记这个应用:在 F&O 里进入 System administration → Setup → Microsoft Entra ID applications,加一行填上同一个 Client ID,并绑定一个角色能读销售订单数据的用户。跳过这一步,即使每个字段都填对了,下面的测试也会失败。
填进 Integration#
- 打开 Integration → 连接器市场 → Microsoft Dynamics 365 Finance & Supply Chain → 新建连接。
- environment_url——环境地址,必填:您 Finance & Operations 环境的地址,如 https://myorg.operations.dynamics.com。只填基础地址,末尾不带 /data。定位环境就靠这个字段——这个连接没有单独的环境名或公司字段。
- tenant_id——租户 ID,必填:Microsoft Entra ID 里应用注册概览页上的 Directory (tenant) ID。格式是 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 这样的 GUID。
- client_id——Client ID,必填:同一概览页上的 Application (client) ID。必须与您在拿凭证一步里登记进 Finance & Operations 的那个 ID 完全一致——两个 ID 要逐字符对上。
- client_secret——Client Secret,必填:您在 Entra ID 的 Certificates & secrets 里复制的 secret 值(是值,不是 Secret ID)。按密钥存储,永不回显。
测试连接#
测试分两步,报错信息会告诉您是哪一步挂了。第一步先查必填项有没有缺(缺环境地址报 MISSING_ENV_URL,缺租户 ID 报 MISSING_TENANT_ID,缺 Client ID 或 Client Secret 报 MISSING_CLIENT_SECRET),然后用您的 Client ID 和 Secret 向微软登录为您的租户换取访问令牌——Secret 填错会在这一步报 INVALID_CREDENTIALS。接着它用这个令牌去您的环境里读一条销售订单(SalesOrderHeadersV2 数据实体,只读一条)。如果微软给了令牌、但 Finance & Operations 以 401 拒绝这次读取,结果会报 INVALID_TOKEN——这几乎总是因为应用没有在 F&O 里登记、或登记了没绑用户;报 403 则是 MISSING_SCOPE,意思是绑定的用户没有能读销售订单数据的角色。测试最多等环境 12 秒,环境慢时可能纯粹因为超时失败——再测一次即可。
配 Mapping / 选模板#
选 Dynamics 365 Finance & Supply Chain 标准模板。它把这个连接器读取的销售订单字段(SalesOrderHeadersV2 数据实体)与 OMS 侧的标准订单字段配对。激活前打开 Mapping 预览,确认订单号落位正确,并确认仓库依赖的字段——交货日期、收货地址、客户参考号——都已配上。没配上的字段就不会带进标准订单,所以要用您环境里一张真实销售订单对照预览核一遍,不要盲目激活。
激活#
激活后,Integration 按您设的频率从 Finance & Operations 环境拉新销售订单,经 Mapping 把每张单转成标准订单,交给 OMS 履约。这个连接没有任何反向流量:它不同步客户、不读库存,也不把库存或履约推回 Dynamics 365。先在 运行监控 / 日志里盯头几单,和 F&O 里的同一批订单对一对,确认无误再放手跑。
常见问题#
测试报 INVALID_CREDENTIALS(换令牌时 401)
微软登录拒绝了这对 Client ID 和 Secret:Secret 的值填错了或已过期,或者这里填的租户 ID 与 Client ID 属于两个不同的应用注册,配不成一对。
打开 Microsoft Entra ID 里的应用注册,逐个核对三个值:概览页的 Directory (tenant) ID 和 Application (client) ID;在 Certificates & secrets 里新建一个 secret,复制它的值(不是旁边的 Secret ID),把值粘进 client_secret。然后重新测试。
测试报 INVALID_TOKEN(令牌拿到了,但 F&O 回 401)
凭证在 Entra ID 里是好用的,但 Finance & Operations 不认识这个应用:它没有在 F&O 里的 Microsoft Entra ID applications 下登记,或者登记了却没有绑定用户,于是 F&O 拒绝了令牌。
在 F&O 里进入 System administration → Setup → Microsoft Entra ID applications,加上或找到 Client ID 与本连接一致的那一行,并给它绑定一个用户。保存后重新测试——这是这个连接最常见的修复。
测试报 MISSING_SCOPE(F&O 回 403)
F&O 认识这个应用、令牌也通过了,但绑定在这个应用上的用户没有能读销售订单数据的角色,于是读取 SalesOrderHeadersV2 数据实体被拒绝。
在 F&O 里给绑定的用户一个能读销售订单数据的角色(由 F&O 管理员在 System administration → Users 下分配角色),或者把应用改绑到一个已有该角色的用户。改完重新测试。
测试报 MISSING_ENV_URL,或环境连不上
environment_url 字段是空的,或者里面的地址不是您环境的基础地址——最常见的填法错误是地址末尾带了 /data,指向的位置已经越过了连接器登录的入口。
把 environment_url 填成您 Finance & Operations 环境的基础地址,如 https://myorg.operations.dynamics.com,.com 后面什么都不加——特别注意去掉末尾的 /data。然后重新测试。
这个连接也能同步客户或库存吗?
不能。这个连接只拉销售订单:不拉客户、不读库存,也不把库存推回 Dynamics 365。客户和库存请继续在 Finance & Operations 里维护,这个连接只负责把订单流送进 OMS。
销售订单是这个连接唯一端到端承载的流,连同订单行一起。在 OMS 处理订单时,客户和库存请回 Finance & Operations 查——这个连接不会把它们带过来。