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/
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
Post a Comment