Do you aware AX 2012 tables like CompanyInfo, DirPerson, DirOrganization, OMOperatingUnit, and OMTeam not exists in SQL Server DB tables? This is because they are all inherited tables. AX table inheritance is Table-per-Hierarchy inheritance, it means the inheritance tree is created through one table only and that is the root table (DirPartyTable). Due to this, DirOrganizationBase and OMInternalOrganization table also not exist in SQL Server tables. Refer to ERD below for better understanding:
Since all the derived tables data are stored in DirPartyTable, AX differential them by a column which is RelationType EDT. For DirPartyTable, it is InstanceRelationType. The value it stored is the derived table ID.
select ISNULL(d.name, N'') REQUESTER, ... left join HCMWORKER as h on h.recid = t.REQUESTER left join DIRPARTYTABLE as d on d.recid = h.PERSON
您知道SQL Server DB表中不存在诸如CompanyInfo,DirPerson,DirOrganization,OMOperatingUnit和OMTeam之类的AX 2012表吗?这是因为它们都是继承的表。AX表继承是逐层表继承,这意味着继承树仅通过一个表创建,该表即为根表(DirPartyTable)。因此,SQL Server表中也不存在DirOrganizationBase和OMInternalOrganization表。请参阅下面的ERD以获得更好的理解: 由于所有派生表数据都存储在DirPartyTable中:
【picture】
,则AX通过一个列将它们区别为RelationType EDT。对于DirPartyTable,它是InstanceRelationType。它存储的值是派生表ID。
留言评论
暂无留言