My topic for discussion in this post is a missing Datasource in AX 2012. This is something that at first glance looks rather strange, but upon digging into the details make a lot of sense, and leverages functionality that was introduced in AX 2012.
This started while working on a customization. I needed to make some modification to the purchase agreement functionality, and was working on the purchase agreements form (PurchAgreement form in the AOT). I was going to modify the form layout, so I found a field in the location where I wanted to make the modification, and right clicked, personalize to see the information. The control was named AgreementLine_AgreementLineQuantityCommitment_CommitedQuantity. Quite a name. So, examining the properties of the control, I find the following:
What threw me was looking at the datasources, there is a datasource named ALine (tied to the AgreementLine table) but there is no datasource named ALine_AgreementLineQuantityCommitment. How is this possible?
So, I go back to look at the AgreementLine table in the AOT, and I find that the table property Abstract is set to Yes, and SupportInheritance is set to Yes. That explains it. This is the root table of a series or hierarchy of tables that are inherited. This means that on the form, my ALine datasource is the ROOT table of a series of tables. By looking under the Derived Datasources node of the form datasource ALine, I now see where my data is coming from.
It’s one of those situations that you just don’t think of right away while working with tables as form datasources, but once you do the research, it makes perfect sense as to what you are seeing.
For more information on table inheritance and derived datasources, please see the following link: http://msdn.microsoft.com/en-us/library/hh272120.aspx