Skip to main content

TIP: Working with changing Field DataTypes and Deleting fields in Business Central

Imagine a scenario where as per the requirements provided by your clients, you have set up the Database structure in NAV/Business Central.
Then comes a requirement in Phase 2 which completely redefines the database structure which was provided by you and you need to delete a few fields in a table and move it to another table.

Microsoft Dynamics NAV
Microsoft Dynamics Business Central

Books & References:

1. In Microsoft Dynamics NAV, there was a flexibility to delete fields, tables, and keys and using  Force-Sync, you can directly delete the field, table, and keys from SQL Database.

2. Whereas in Microsoft Dynamics Business Central, you cannot delete the fields, keys, and tables.
In order to deploy this deleted change, you need to mention this field, table, and keys with Obsolete State Removed.

After you mention the field as Obsolete, in the page directly the field is

3. While deploying these changes in Business Central On-Premise, you can directly deploy the changes using Force-Sync through schemaUpdateMode property in AL.

In order to delete a field the process has become relatively tedious in Business Central as compared to NAV. This is because from Business Central server point of view, the field is never actually deleted from the SQL Database it just gets disabled. Microsoft has made it easier for Business Central community by adding Force-Sync, other wise the developers will have to change the Application ID which in turn results in erasing of the data for the extension.
Hope you guys find this useful. 😇


Unknown said…
I was wondering how to do this on a production environment in the cloud where ForceSync isn't possible.

I think Force-Sync works in Production as well.
You just need to upload the Extension App as you would and Business Central takes care of it.

In Order to change the data in the Table after changing the fields, you will need to write a code refer
If Force-Sync does not work, a workaround would be creating a new field and marking the field to be changed as obsolete. And using OnInstallAppPerCompany() trigger you can migrate data from the old field to new field.

Popular posts from this blog

How to actually use Profile Objects in Business Central

To 'Whomsoever This May Concern',
When I was working on a Production Deployment for one of my clients, I noticed that I could not create a Profile in Business Central Production Tenant. I was able to create new Profile in Sandbox.

Then I tried using configuration Package and modify the contents of 2000000178 Profile Table and as always configuration package blocked it.

There was no way of dealing with this other thancontacting Microsoft Support and this is the answer I get from a Support Engineer

I was on the verge to give my clients a link pointing to a specific page i.e

After being a little creative, I figured out that developing profile objects might help.

And this resolved this issue for me.

Permission Issues on Posting after deploying Extension in Business Central Production Tenant

Issues when you deploy your app in Business Central Production VS Business Central Sandbox. Let us what are the implications of the statement.
In my last blog () I have already pointed out the difference in Profile as to how can create new Profile in Business Central Sandbox but the same is not possible in Business Central Production.
Microsoft Dynamics Business Central (SaaS)
Demonstration: 1. I was working with General Journals after deploying the App in Production Environment. Suddenly during posting I go this error.

2. To Verify this issue is not of Permission Set, I gave the User SUPER Permission and tried again.

I got the same error despite giving SUPER Permission. Again the same the error, so I checked the Effective Permissions.

I noticed that Table G/L Entry has an Indirect Permission. I replicated the same Production in Sandbox. But I didn’t find any issue like this.

3. Moreover, I noticed that when I uninstall the App, the Production works perfectly and …