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.

Saurav Dhyani


Popular posts from this blog

Send Mail with Attachment From Navision.

Hi all, We have seen how to save a report into PDF and how to send mail to a customer. Let's link these two post in one i.e. Mailing statement to a customer into PDF Format. This article is part of the Series. Please Refer  Table of Content here . If you have the old objects set let me brief you what I will be changing - 

Dynamics 365 Business Central 2021 release wave 2 (BC19) Released.

Hi Readers, As we all were expecting Microsoft have Released Business Central 2021 Release Wave 2 Today a.k.a BC19. In this article we will see what all is announced with the General Availability.  Starting Today Customers & Partners can start using Business Central 19. #msdyn365bc #bc19

Navision Cannot generate SSPI context State ID HY000

Hi all, Sometime while trying to connect database in classic client with windows authentication or connect to Role Tailored Client we face an error message. Error - The following ODBC error occurred: Error: [Microsoft][ODBC SQL Server Driver]Cannot generate SSPI context  State ID: HY000