How to changes to Table & EDT Relations[AX2012]
Well I hope everyone is having a fine week so far. Oh Wednesdays, the furthermost point between two weekends. It's a day of great productivity, as we push towards that glimpse, and hope for our Saturday and Sunday.
To help you out during the middle of this week, I thought it was time we spent a little focus around the changes in AX 2012 around extended data types, and specifically around understanding the way relations are made.
First off the bat, lets look to the Extended Data Types in the Database [AX 2012] In this article on MSDN, Microsoft points out some highlights about EDT's in AX 2012, specifically, highlighted is:
"Starting in Microsoft Dynamics AX 2012, you can no longer define relations under an EDT element in the AOT. If your system has any EDT relations, you should migrate those relations to the appropriate table elements. For more information, see EDT Relation Migration Tool."
On this same page, before we move forward in looking at what this means, there is a link on How to: add Dimensions. Make sure to NOT follow that link. It has not been updated yet for AX 2012.
Now with that aside, lets look at what this means for AX 2012. Back in AX 2009, relations would exist, on the EDT, for example, linking a specific EDT, to a reference table, in which the EDT was the primary key.
Now in AX 2012, this has moved to the table relations level. So lets take the following for example. If I have a Table, and as part of it, I would like to have an EDT, that is controlled and is referenced to an underlying table itself. This EDT then, and the field that it represents would be a foreign key for this new table we are building.
To help set this straight, lets look at the following.:
With this, we have the relationship, that now lives at the Primary Table, that has a Foreign Key, represented by the EDT. The EDT, in turn is the Primary Key, for the underlying reference table.
Moving ahead, lets see this in action, with a simple example. To see this in action, we will need a project, an Extended Datatype, or EDT, as well as our reference and Primary table.

You will notice that I have already added the EDT, as the PrimaryField to the idbReference Table node. Also, I've created a Primary Index, and placed that field in the Primary Index, as set the index to not allow duplicates.
Now that we have this base, we must move to the EDT, and add the idbReference, as a table reference to the EDT. This does not set the relation, instead it is the primary reference for the EDT.


After this, we add the EDT, to the Primary table, which I've called ForeignKeyField, in order to help understand the point.

Now that we have this, we next have to create our relation, from the Primary table to the reference table. We do this, and on the properties of the relation, we set that it's an EDTRelation = Yes.

In doing this, we can now set the relation, via a Normal Relation Option, from our Primary Table, to our Reference Table field. In doing this, and because of the EDTRelation = Yes is true, we can now select what EDT should be used in this relation.

After this we end up, with our goal, of having correctly related reference data, from one table, as part of the record for another table.

Moving the relations to the table level makes correct sense. It's a change in how you've worked with AX in the past for this area, but it's a very good change. For example because of this table relations now support Dynamic Links, as well as unbound control lookups.
This is important to understand, for those people who are doing new custom development work, and also for those who are focused on upgrades. There is Whitepaper, for those looking to how best and tackle this for upgrades. You can find that white paper here: Migrating EDT Relations
Well I hope that on this fine Wednesday, you have a productive one, and hope that the above might come in handy, or better help your understanding of this topic, as it relates to new customization in AX 2012 as well as how this can impact and affect task when upgrading.
That's all for now, till next time!
How to changes to Table & EDT Relations[AX2012]的更多相关文章
- How to add EDT relation table[AX2012]
setp 1. First create New Edit. setp 2.Create New Table First Table Name is NParentRel then drag and ...
- AX7: HOW TO USE TABLE METHOD EXTENSION CLASS
To create new methods on a table without customize you should use the Table method extension class. ...
- AX2012 DMF数据导入的问题
由于AX2012的数据结构比较复杂,通过Excel直接导入表的方式很多数据已经难以导入,比如物料信息,2009只需要导入InventTable,InventTableModule和InventItem ...
- [AX]AX2012 Number sequence framework :(三)再谈Number sequence
AX2012的number sequence framework中引入了两个Scope和segment两个概念,它们的具体作用从下面序列的例子说起. 法国/中国的法律要求财务凭证的Journal nu ...
- [AX2012 R3]关于Alerts
AX2012提供两种类型的Alert,Change-based alert和Due-date-based alert,前者用于在对新建记录.删除记录.记录的某个指定字段被改变的时候发出提醒,后者则是用 ...
- AX2012 R3升级CU8的一些错误
AX2012 R3安装升级包CU8后进入系统,系统会提示打开软件升级清单“Software update checklist”,清单列出了升级要做的一系列动作. 在进行到编译应用时“Compile a ...
- How to create Lookup Worker Filtered by Legal Entity[AX2012]
1. Add a new method in hcmWorker table, and add this script : public static client void lookupWorker ...
- Yii AR中处理多表关联的relations配置
关系型 Active Record官方文档中指出: 两张表之间的关联是根据外键来的,但是这种外键关联虽然在数据容错方面有益处,但是在性能上是个损伤,所以,一般是不定义外键的. 这种情况下,他们之间的关 ...
- [AX2012]关于财务默认维度
和以前的版本一样,AX2012中很多地方都使用财务维度,比如客户.销售订单.销售订单行等,根据相应的财务维度设置,生成的相应财务分录将带有财务维度,方便后续对财务分录交易的分析.下图是在客户记录上设置 ...
随机推荐
- 【Android 界面效果17】Android手机平板两不误,使用Fragment实现兼容手机和平板的程序
记得我之前参与开发过一个华为的项目,要求程序可以支持好几种终端设备,其中就包括Android手机和Android Pad.然后为了节省人力,公司无节操地让Android手机和Android Pad都由 ...
- iOS - 提示信息 - UIAlertView、UIActionSheet、UIAlertController的实际应用
1.UIAlertView(屏幕中央弹出框)(不需要服从代理) UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@" ...
- JAVA xml 流方式读取。数据挖掘大文件预处理。
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...
- C++类(一)
#include<iostream> #include<string> using namespace std; //找了很久,似乎都是类放在Main方法体上 class Pe ...
- Android DiffUtil
Android 的recyclerview-v7:24.2.0 发布后多了个DiffUtil工具类,这个工具类能够大大解放了Android开发者的一个苦恼:RecyclerView局部刷新和重新刷新时 ...
- Javascript之动画1
我们来做一个小球运动的例子:在这个demo中,我们要求连续多次点击小球“开始”按钮,小球运动速度就越来越快.但是还是不完美存在BUG的,经过多次点击“开始”按钮再点击"停止"按钮就 ...
- mvc路由规则相关
1,可以创建多条路由规则,每条路由规则的name属性不能相同 2,路由规则是有顺序的,如果被前面的规则匹配了,那么后面的规则就没有机会了 下面是一条路由规则的代码 routes.MapRoute( n ...
- apache windowns 下wamp配置多站点的问题
1.多站点配置找到apache下面的 conf/httpd.conf # Virtual hostsInclude conf/extra/httpd-vhosts.conf //将这句前面的#号注释 ...
- python基础:搜索路径
如何将写好的脚本或者是模块加入python的搜索路径? >>>import sys >>> sys.path ['', '/Library/Frameworks/P ...
- express模块安装后cmd中不能运行
在各种关于NodeJS的教材中,必定会有关于express的介绍.express本身是一个很赞的库. 在之前的express版本中,在全局模式安装(npm -g install express)之后, ...