Thursday, December 18, 2008

RefRecID in Dynamics AX 4

Dynamics AX 4.0 will generate unique RecIds per table, whereas Axapta 3.0 generates unique RecIds per company account.  
 
This may have a great impact on the use of EDT RefRecId in AX development. In Axapta 3.0, we can directly use refRecId for table fields, because recId is unique per company account. Well, in AX 4, it is not the case anymore, how can you reference the recId within the same company account? For example, recId 5637144576 can exist in Address table, AddressCountryRegion table and AddressCounty table.

As a result, in AX 4, do not use the RefRecID data types directly for table fields. The way we use RefRecId data types is create a new EDT derived from EDT RefRecId, and define a relation for it. Then use the new created EDT for table fields. 

You may find VendTransOpen table as a sample. The table field RefRecId in VendTransOpen is derived from EDT VendTransRefRecId which extends EDT RefRecId. And a relationship is defined on VendTransRefRecId, which is "VendTransRefRecId == VendTrans.RecId". 

Since AX 4.0 will generate unique RecIds per table, and by changing the RecID from a 32-bit to a 64-bit integer, the number of RecIDs available is increased to 2-to-the-64, AX 4.0 does not include SysRecIdRepair utility.  

No comments:

How to identify the user that was used to change an object from AOT in AX2012

Get the object name for which we need to track these (user and date&time) information's. Login to SQL Server Management Studio an...