此表AX 2012上仅允许外键约束

时间:2015-03-02 09:51:27

标签: foreign-key-relationship axapta dynamics-ax-2012 dynamics-ax-2012-r3

我在表格中创建了三个字段:CountryStateCity。 我已将LogisticsAddressCountryRegionId的{​​{1}},Country的{​​{1}}作为EDT。关系是 LogisticsAddressStateId

我收到了最佳实践错误,因为此表上只允许外键约束。

我尝试了一些选项,例如在关系中设置新角色。不起作用。

2 个答案:

答案 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。

https://erpcoder.wordpress.com/2014/08/04/get-rid-of-bp839-only-foreign-key-constraints-are-allowed-on-this-table/

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将创建所有三个字段。