2

我在一个表中创建了三个字段CountryStateCity。我给了 EDT as LogisticsAddressCountryRegionIdfor Country, LogisticsAddressStateIdfor State。关系是 MyTable.Country = LogisticsAddressCountry.CountryRegionId

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

我尝试了几个选项,例如在关系中设置新角色。不工作。

4

2 回答 2

3

错误消息可能具有误导性。它将通过表关系链接到扩展数据类型。

尝试关注

1)检查您使用的EDT是2012风格还是2009风格(2009有关系)。如果它是旧样式,请尝试使用带有表引用而不是关系的新样式数据类型。

2)添加关系到表级别。

3)“表1->字段1,字段12

Index1 -> Field1 将 AlternateKey 设置为“是”。

Table1 -> 属性->PrimaryIndex 设置为“Index1”。

表2 -> 创建外键关系(外键 -> 基于主键)

然后自动创建一个关系 Table2.Table1 ==Table1.Field1。

通过这种方式,您可以轻松地在 RecId 以外的任何字段上创建关系。并且 BP 错误 Only foreign key constraints are allowed on this table 将被删除。”

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 并定义了关系,请删除并重新创建新的外键关系。”

于 2015-03-03T07:45:01.853 回答
1

您必须删除现有关系并将新关系添加到同一个表中。然后添加关系字段并选择New -> ForeignKey -> PrimaryKey based。AX 将创建所有三个字段。

于 2015-03-02T11:18:39.730 回答