How to create new fields in Standard Tables with No Impact on System/Release/Patch Update

Hi there,
May I have the idea how to make the right customization on any Standard Tables specially to add new fields to avoid the incompatible issue when the system needed to be updated/upgraded with System Patch/New Release, please? Let’s supposed we need to have more info in AA table (RecID, AA1, AA2, AA3 and AA4 are standard fields) which is the standard table, is that the right idea to create new table, AA_CUZ, to store new fields if we need to have additional data in AA? Rather than appending new fields in AA like AA-AA5_Cuz and AA-AA6_Cuz, we create them in AA_CUZ like AA_CUZ-AA5_Cuz, AA_CUS-AA6_Cuz then using RecID as a key to join AA and AA_CUZ.

Tasama S.

Normally, you would just create a Table Extension linked to the standard table. For example, let’s say you wanted additional customer fields, you would just create a table extension for the customer table with the new fields. Also, create a page extention with the new fields to extend the customer page. Those new fields would then appear on the customer page or in configuration packages or the page inspect factbox as if they were part of the customer table. When the database is upgraded, these would not be impacted and would still be part of the extended table. With BC, you can no longer add fields directly to the table like you could do with NAV & C/AL. You must use extentions.

2 Likes

Tasama,

I add new fields and also updates using the Object Designer APP from eFocus. I am not a developer so this made my life so easy without being a programmer. Here is the APP link:

https://appsource.microsoft.com/en-us/product/dynamics-365-business-central/PUBID.hougaard-4699382|AID.designer|PAPPID.4c032704-5c36-4480-b710-29e8565568bc?tab=DetailsAndSupport

Hope this helps.
Thanks,
Steve

When it comes to customizing standard tables in Business Central, it is crucial to follow best practices to ensure compatibility during system updates and upgrades. Here’s an approach to adding new fields while minimizing the risk of compatibility issues:

  1. Extension Approach: Instead of modifying the standard table directly, create a separate extension to handle your customizations. This extension can contain additional fields and logic related to the AA table.
  2. Extension Table: In your case, creating a new table, such as AA_CUZ, to store the new fields is a recommended approach. By extending the standard table structure with your custom table, you maintain compatibility with the core system. Use the primary key (RecID) from the standard AA table as a key to establish a relationship between AA and AA_CUZ.
  3. Field Naming: When adding new fields, follow a naming convention that clearly differentiates your custom fields from the standard ones. For example, prefix your custom fields in AA_CUZ with “AA_CUZ-” to avoid conflicts with future updates.
  4. Data Integration: Define the necessary data integration processes to ensure the synchronization between the AA table and your extension table (AA_CUZ). This includes handling data migration, data synchronization during updates, and managing dependencies between the two tables.
  5. Upgrade Considerations: When upgrading to a new system patch or release, pay attention to any changes made to the standard AA table. Ensure that your extension and custom table (AA_CUZ) are compatible with the new version. Perform thorough testing to verify that your customizations continue to function as expected after the upgrade.

By following these guidelines, you can minimize the risk of compatibility issues when customizing standard tables and ensure a smoother upgrade experience.