You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Business Central物料日记账过账报错,咨询权限配置问题

问题描述

我已使用以下Business Central(BC)的Web服务URL创建了物料日记账条目:
POST https://api.businesscentral.dynamics.com/v2.0/{tenant}/{environment}/ODataV4/Company('{company}')/ItemJournalsWS

但尝试使用以下方法过账物料日记账时,出现如下错误:
POST https://api.businesscentral.dynamics.com/v2.0/{{tenant_id}}/{{environment}}/ODataV4/itemJournalLines(Journal_Template_Name='ITEM',Journal_Batch_Name='DEFAULT')/Microsoft.NAV.post

{"error": {
    "code": "BadRequest_NotFound",
    "message": "The key in the request URI is not valid for resource 'NAV.GeneralJournalsWS'. Ensure that the names and number of key properties match the declared or alternate key properties for the resource 'NAV.GeneralJournalsWS'."
}
}

我已完成以下Azure与BC的配置步骤:

  • 创建Azure应用注册,并添加“Dynamics 365 Business Central - API.ReadWrite.All”、“Microsoft Graph - User.Read”权限。
  • 为上述两个API权限授予管理员同意。
  • 使用Azure应用的客户端ID在BC中创建AAD应用,并分配“D365 Basic, Super (Data)”用户权限。

请问是否需要为BC中的AAD应用分配额外权限?是否需要将该用户添加到BC的用户设置中?


问题分析与解决

1. 过账API请求的错误根源

你当前的过账API请求存在两个关键问题:

  • 键值不完整:itemJournalLines的主键是Journal_Template_Name、Journal_Batch_Name、Journal_Line_No三个字段的组合,请求URL中缺少Journal_Line_No,导致系统无法定位到具体的日记账行。
  • URL格式错误:租户ID部分多了一层大括号,应该是{tenant_id}而非{{tenant_id}},这会导致路径解析失败。

正确的过账API请求格式应为:

POST https://api.businesscentral.dynamics.com/v2.0/{tenant_id}/{environment}/ODataV4/Company('{company}')/itemJournalLines(Journal_Template_Name='ITEM',Journal_Batch_Name='DEFAULT',Journal_Line_No=1)/Microsoft.NAV.post

(需替换{tenant_id}、{environment}、{company}为实际值,Journal_Line_No替换为目标行的具体行号)

2. 权限与用户设置问题

  • 权限层面:你已分配的Super (Data)权限已经覆盖了物料日记账过账的所有操作需求,不需要额外添加权限。D365 Basic作为基础权限,搭配Super (Data)完全满足业务操作要求。
  • 用户设置层面:通过AAD应用在BC中创建的用户,会自动同步到BC的用户列表中,无需手动添加。但需要确认该用户状态为启用,可在BC的「用户」页面中检查并确认。

内容的提问来源于stack exchange,提问作者thilim9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 17:23:13