我在表格中创建了三个字段:Country
,State
和City
。
我已将LogisticsAddressCountryRegionId
的{{1}},Country
的{{1}}作为EDT。关系是
LogisticsAddressStateId
。
我收到了最佳实践错误,因为此表上只允许外键约束。
我尝试了一些选项,例如在关系中设置新角色。不起作用。
答案 0 :(得分:2)
错误消息可能会产生误导。它将链接到具有表关系的扩展数据类型。
尝试以下
1)检查您使用的EDT是2012款还是2009款(2009年有关系)。如果是旧样式,请尝试使用带表引用的新样式数据类型而不是关系。
2)添加表级别的关系。
3)"表1 - > FIELD1,Field12
Index1 - >将AlternateKey设置为"是"。
的Field1表1 - > properties-> PrimaryIndex设置为" Index1"。
表2 - >创建外键关系(外键 - >基于主键)
然后自动创建一个参数Table2.Table1 == Table1.Field1被创建。
通过这种方式,您可以轻松地在RecId以外的任何字段上创建关系。以及BP错误此表上仅允许外键约束将删除。"
http://dynamicsuser.net/forums/p/54753/288954.aspx
4)尝试将表导出到.XPO中。然后在文件中更改EnforceFKRelation属性并将.XPO导入axapta。
5)您可以在http://microsoft-dynamics-ax-erp.blogspot.cz/2012/12/debug-bp-errors-in-dynamics-ax-2012.html
找到有关此错误的更多信息"对于那些想知道这个BP错误原因的人,这是因为我们应该创建一个新的基于外键的关系,而不是正常的关系。
简单地说,当您将ItemID EDT拖放到桌面上时,它会要求您确认在EDT上添加关系。
按是,将创建基于外键的关系。如果您按否并想要手动创建关系,请确保创建基于外键的关系而不是正常关系。
正常和外键关系看起来都相同,并且在视觉上很难区分它们。因此,如果您遇到上述BP并定义了关系,请删除并重新创建新的外键关系。"
答案 1 :(得分:1)
您必须删除现有关系并向同一表添加新关系。然后添加关系字段并选择New -> ForeignKey -> PrimaryKey based
。 AX将创建所有三个字段。