zoukankan      html  css  js  c++  java
  • D365 FO 对Duty扩展导致同步数据库失败

    同步数据库,报错
     Microsoft.Dynamics.AX.Metadata.Storage.MetadataReadCorruptDataException: Microsoft.Dynamics.AX.Metadata.Storage.MetadataReadCorruptDataException: Error occured while applying extensions for metadata 'SalesQuotationToSalesOrderProcessEnable' of type 'AxSecurityDuty'. ---> Microsoft.Dynamics.AX.Metadata.Core.Exceptions.DuplicateNamedObjectException: Element named: 'TestTableMaintain' of type 'AxSecurityPrivilegeReference' already exists among elements。
    报错的原因是对SalesQuotationToSalesOrderProcessEnable这个系统的Duty进行了两次扩展,这个系统是允许的,然后在两次不同的扩展里都包含了TestTableMaintain这个Privilege,这个编译期也是不报错的。
    但是同步数据库的时候,权限的设置数据是在数据库相关表里存储的,这样设置违反了数据库的PK约束,于是报错了。
    所以扩展系统的权限相关的数据的时候一定要注意,如果一个项目里一定要扩展两次(通常没必要这么做),不要把相同的权限项拖到针对同一个系统对象的不同的扩展里。
    同步报错给的建议有点误导人
     Database synchronization failed. You may have to do a full build of the package 'TestSolution' and all of its dependent packages.
    它让把model编译一下,其实整个model编译也解决不了这个冲突,唯一的解决办法是,找到提示中报错的Duty,把其中一个扩展里的安全项删掉。
    当然正常一个model里应该只会扩展一次,所以很少会遇到这个问题。
    按照目前D365 FO的逻辑,针对同一个系统对象做两次扩展,结果都是随机的,在不同扩展同一个类的同一个方法两次,这个是支持的,但是Coc执行的顺序是随机的,结果当然也是随机的。
    所以还是避免针对同一个系统对象扩展两次的情况出现。

  • 相关阅读:
    【Hadoop环境搭建】Centos6.8搭建hadoop伪分布模式
    【Java安装】Centos6.8 安装Java1.6
    【SVN】win7 搭建SVN服务器
    【KVM】Ubuntu14.04 安装KVM
    【VNC】Ubuntu14.04LTS下安装VNC View
    【虚拟化】支持IDE/SATA/SCSI
    【KVM安装】在Centos6.8中安装KVM
    【脚本】新增未扩展磁盘容量
    【SVN】自动定时更新
    【GIS】地球经纬度和米换算(转)
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/12963297.html
Copyright © 2011-2022 走看看