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

Business Central与Dataverse自定义集成同步异常排查求助

Business Central与Microsoft Dataverse自定义集成:Dataverse到BC自动同步失败排查与解决

问题描述

按官方及第三方教程配置BC与Dataverse自定义集成后,执行「Run Full Sync」仅能实现BC到Dataverse的单向同步:BC初始记录可同步至Dataverse,但Dataverse侧新建的记录无法自动同步到BC——BC代理表能显示这些Dataverse记录,但未自动插入对应BC目标表;手动选中代理表记录点击「Create in Business Central」可成功创建目标表记录,无明确报错信息,怀疑AL Table Proxy Generator生成代理表时遗漏字段。

排查步骤

1. 检查同步配置正确性

  • 打开BC的「Dataverse Connection Setup」,确认对应集成表的同步方向为「Bidirectional」或「From Dataverse to Business Central」,而非仅「From Business Central to Dataverse」。
  • 查看「Integration Table Mapping」的「Sync. Mode」,确保设置为「Synchronization」(「Replication」仅支持BC到Dataverse单向同步)。
  • 确认「Integration Table Mapping」中「Trigger Sync. on Create/Modify/Delete」选项已全部勾选,保证Dataverse侧操作能触发同步。

2. 验证代理表与字段映射完整性

  • 对比Dataverse集成表的所有必填字段(含系统字段如createdon、modifiedon),检查代理表是否存在遗漏:遗漏必填字段会导致同步引擎自动跳过创建操作,但手动创建时BC可能自动补全默认值,因此能成功。
  • 检查「Integration Table Mapping」的字段映射,确保代理表与BC目标表的所有必填字段已建立正确映射(数据类型匹配、字段逻辑名一致)。

3. 查看同步作业与日志

  • 运行BC的「Dataverse Sync Job Queue Entry」,通过PowerShell命令Get-JobQueueEntry检查同步作业的状态与错误信息。
  • 打开BC的「Integration Synchronization Log」页面,筛选Dataverse到BC的同步记录,查看隐藏的警告或错误(部分非致命错误不会弹出提示,但会写入日志)。

4. 检查代理表AL代码配置

  • 确认代理表已添加IntegrationTable属性,且EntitySetName、LogicalName与Dataverse集成表完全匹配:
    table 50100 "My Dataverse Proxy Table"
    {
        DataClassification = CustomerContent;
        IntegrationTable = true;
        EntitySetName = "my_entitysets";
        LogicalName = "my_logicalname";
        // 字段定义
    }
    
  • 验证代理表字段的IntegrationField属性与LogicalName是否和Dataverse字段一致:
    field(1; "Dataverse ID"; Guid)
    {
        DataClassification = CustomerContent;
        IntegrationField = true;
        LogicalName = "my_entityid";
    }
    

解决方案

方案1:补全代理表缺失字段

若代理表遗漏Dataverse必填字段,可通过两种方式修复:

  1. 重新使用AL Table Proxy Generator连接Dataverse,选择目标集成表并勾选所有必填字段(含系统字段),重新生成代理表。
  2. 手动添加缺失字段,确保字段LogicalName与Dataverse字段完全一致,数据类型匹配:
    field(10; "Created On"; DateTime)
    {
        DataClassification = CustomerContent;
        IntegrationField = true;
        LogicalName = "createdon";
        Editable = false;
    }
    

方案2:修正同步配置

  • 在「Integration Table Mapping」中,将「Sync. Mode」改为「Synchronization」,并勾选所有触发同步的选项。
  • 调整同步方向为「Bidirectional」后,重新执行「Run Full Sync」。

方案3:修复日志中的明确错误

  • 若日志显示权限问题:确保Dataverse连接的应用用户拥有Dataverse集成表的读写权限,以及BC目标表的插入权限。
  • 若日志显示字段映射冲突:调整「Integration Table Mapping」的字段映射,确保数据类型兼容(如Dataverse的Decimal对应BC的Decimal,而非Integer)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 08:24:20