The Database Sychronization process within AX 2009 sychronizes the table information to the database by creating all the tables and indexes it needs to operate. This synchronization is necessary when there are schema changes in the Application Object Tree (AOT) and must be populated to the database.
How does it work?
- A synchronization is initiated
- The synchronization process compares the object IDs that are assigned to tables, fields and indexes in the UtilElements table (e.g., layer files) to the objects IDs assigned to those same objects in the SQLDictionary table found in the AX database NOTE: AX assumes that the object IDs in the UtilElements table (e.g., layer files) are correct
- If the object is in both the UtilElements and SQLDictionary tables no action is taken
- If the object is in the UtilElements but not in the SQLDictionary tables the object is added to the AX database
- If the object is not in the UtilElements but in the SQLDictionary table the object is dropped from the AX database
- Step 3 and 4 do not result in data loss
- Step 5 results in data loss as the synchronization process assumes that the object is no longer needed and drops the object from the SQL server. This behavior occurs regardless of whether the table or the field contains other data.
- To avoid having the object dropped you have to make the object IDs match between the .UtilElements and the SQLDictionary table.
- To see what id is assigned to the objects in the layer files:
- Open the AOT
- Expand System Documentation > Tables > UtilIdElements > Right-click and choose Add-Ins > Table Browser