Skip to main content

NAV 2015 - Changes in Schema Synchronization - Part II.

Hi all,

As discussed in Previous post we will see more about Options of Synchronization Schema, Destructive Table Changes, Upgrade Codeunits, Modes in Upgrade Codeunits, Powershell Commands & benefits of New Schema Synchronization in NAV 2015.

If you haven't read the Previous Post please Refer the Post here -
NAV 2015 - Changes in Schema Synchronization - Part I

Below is the difference between three Synchronize Schemas as discussed in Earlier Post -




In Above Image Let's see what does Validate Table MetaData Changes Means ?

> Verifies whether the changes can be applied to the SQL table without deleting data from the affected columns.

> Non-destructive table changes can always be applied, for example, create a new table, add a new column, add a new key, increase the length of a field, etc.

> C/AL code changes  within a table object never trigger validation and never cause synchronization issues

> Error is shown if destructive table changes are detected and there is no instructions for how to handle them.

What are Destructive table changes ?

Below is what Microsoft Says can be considered as Destructive Table Changes.


What is Upgrade Codeunit with Sync Options?

There is a new subtype of Codeunit is available with NAV 2015. Subtype - UPGRADE.

These Types of Codeunits will be used in case of Destructive Table Changes.

These Codeunits Contain Function Calls which get executed automatically when the object is imported.


These function calls will either Check, Move, Copy or Force the table Sync as shown below.


So now if you are importing a upgrading a Process / Vertical which have destructive  change, you need to create a Upgrade Type Codeunit which will do actions as per your vertical / Process Change.

A simple example -

I have a customized Solution on which there are 3 Tables with 5 Fields each. Now I updated that customized solution where I come up with 5 Tables and 2 Fields Each.

The New updated Objects need to following actions -
-- Add new Tables in Database.
-- Delete Some Fields from Existing Tables.
-- Move Data from Existing Tables to New Tables. &
-- Delete Some Data from the Existing Fields (no longer required).

So with this I need a Codeunit of type Upgrade which will do these task. And the best part is I don't need to run it manually.

When I will import a set of objects with a Codeunit of Subtype Upgrade, system will perform actions based on Logic Written in Codeunit.

In next and Last post of this series we will see what are these Different mode and what exactly they do.

Stay tuned for more about #NAV 2015.

Do write comments on articles as feedback / questions about the post.

Regards,
Saurav Dhyani
https://www.sauravdhyani.com/

Comments

Popular posts from this blog

VIEW SERVER STATE permission on SQL Server?

Hi all, Sometime While trying to Login into a database we face an error message as shown below. --------------------------- Microsoft Dynamics NAV Classic --------------------------- You cannot start Microsoft Dynamics NAV Classic because you do not have the VIEW SERVER STATE permission on SQL Server. Contact your system administrator. --------------------------- OK    ---------------------------

NAV 2013 R2 - Cumulative update 12 Released.

Hi all, Please find below the details of  Cumulative Update 12 released for Microsoft Dynamics NAV 2013 R2. Title - Cumulative Update 12 for Microsoft Dynamics NAV 2013 R2 Build No. - 38053 Release Date - October, 2014 Local Version Included - AU, AT, BE, CH, DE, DK, ES, FI, FR, IS, IT, NA, NL, NO, NZ, SE, UK, RU Download Link Note: Implementing this cumulative update will require a database conversion unless you have already implemented update rollup 5.

NAV 2013 Upgrade Part III - Data Upgrading.

Hi all, As per agenda we need to discuss the data upgrade in NAV 2013. The process is similar to what used to be till NAV 2009 R2 but with some changes. Let's start the process. Remember -  1) You can only upgrade a database to NAV 2013 from NAV 2009 SP1 / R2 SQL Only. 2) The Synchronization of users with SQL Server is no more required.