我在主数据服务(MDS)上遇到了这个问题。
我有一个实体,其中有两个基于其他两个实体的域。 我创建了第一个基于第一个域的业务规则,它运行良好。
但是当我尝试使用第二个域创建第二个业务规则时,会出现错误:
200095 : Cannot specify more than one entity in MetadataGet
400003 : The attribute reference is not valid. The attribute was not found.
400003 : The attribute reference is not valid. The attribute was not found.
显然该属性有效。实际上,如果我删除了第一个业务规则,那么第二个业务规则就会正确发布。
我认为如果您尝试应用第二个基于域的属性,MDS会阻止第二个业务规则。
答案 0 :(得分:0)
这也发生在我们身上,似乎只有在采取了一组特定的操作后才会发生此错误:
MDSModelDeploy deployupdate
命令部署了该软件包。在现有多实体规则无法发布之后,您也将无法基于一个实体中的不同实体创建新规则。不幸的是,我们没有找到解决办法,因为有更简单的解决方法。 这时,我们退后一步,再次恢复并升级了旧数据库,事实证明规则是行得通的,因此必须成为破坏这些规则的软件包。我不知道您的情况如何,因为当我们在SQL 2017中创建一个全新的模型时,所有基于多实体的规则都可以正常运行,因此我很好奇要采取什么步骤来重现您的错误。
我想想解决第4点问题的唯一可能方法是从损坏的模型创建MDSModelDeploy更新包,从新的健康模型创建另一个包,然后比较多重XML的方式。 -实体业务规则的结构化。不过,我们没有尝试过这一方法,因为我们找到了前面描述的解决方法。