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

DBCC报错:PrimaryCmsnPayable与主项佣金CmsnPayable不匹配,求BC OOTB实现位置

Business Central中PrimaryCmsnPayable与主项佣金CmsnPayable不一致问题解析

OOTB逻辑的核心实现位置

  • 表结构关联:InvoiceItem(对应数据库表通常为[公司前缀]$Invoice Line$[后缀])的PrimaryCmsnPayable字段,与主项佣金记录(来自Commission表或Invoice Line Commission子表)的CmsnPayable字段,OOTB逻辑下应保持同步。
  • 核心处理单元:
    • Codeunit 5902 "Commission Management"是佣金模块的核心,包含主项佣金的计算、同步逻辑,负责将佣金行的CmsnPayable值同步到InvoiceItem的PrimaryCmsnPayable字段。
    • Codeunit 1390 "Invoice Posting"在发票行创建、修改、过账时,会调用佣金管理单元的计算函数,触发字段同步。
  • 触发时机:通常在佣金行创建、发票行状态变更(如确认、过账)时,OOTB逻辑会自动同步两个字段的值。

修复方案

  • 手动修正数据:针对已存在的不一致记录,可执行SQL语句同步(操作前务必备份数据):
    UPDATE il
    SET il.[PrimaryCmsnPayable] = c.[CmsnPayable]
    FROM [YourCompanyPrefix_$Invoice Line$xxx] il
    JOIN [YourCompanyPrefix_$Commission$xxx] c ON il.[Primary Commission No_] = c.[No_]
    WHERE il.[PrimaryCmsnPayable] <> c.[CmsnPayable]
    
    替换YourCompanyPrefix和表名后缀为实际环境的对应内容。
  • 排查自定义干扰:多数不一致是因为自定义代码修改了OOTB同步逻辑,检查是否有订阅OnAfterCalcCommission等事件的自定义代码,或修改了Commission Management、Invoice Posting中的核心逻辑。
  • 重新触发计算:未过账的发票行,可取消确认后重新操作,触发OOTB的佣金计算流程,自动同步字段值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:16:07