UPGRADE NAV 4.0 TO NAV 2016
Basically Upgrade involve 2 steps:
1) Data Upgrade
2)Application Object Upgrade
Basically Upgrade involve 2 steps:
1) Data Upgrade
2)Application Object Upgrade
1.Data Upgrade
i)Nav 4.0/Nav 5.0 to Nav 2009
ii)Nav 2009 to Nav 2013/2013 R2/2015
iii)Nav 2013/2013 R2/2015 to Nav 2016
Before Data Upgrade:
i)Compile all Objects
ii)Goto file -> Database -> Information
iii)If you are using Classic Client then you need to migrate to SQL
Classic to Sql Migration Steps:
i)You import the objects available in NAV 2009 setup file
\UpgradeToolKit\SQL Migration\Migrate.fob
ii)Run the Object Codeunit 104010
if system throw any permission error change the drive C:\ to Some other Drive eg (d:\)
iii)Import the object d:\FIELDCHK.TXT , Compile and Run Object Codeunit 104015
Resolve the errors if any.
take backup (.fbk)
Create a New database in SQL and restore the backup.
SQL Migration is done!!!!
Upgrade NAV (4.0/5.0) TO NAV 2009
Upgrade NAV 2009 TO NAV 2015
Upgrade NAV 2015 TO NAV 2016
iii)If your database is NAV 2009 then
Go File -> Database Alter -> In integration Tab disable all maintain views,maintain relationships & maintain defaults.
ii)Nav 2009 to Nav 2013/2013 R2/2015
iii)Nav 2013/2013 R2/2015 to Nav 2016
Before Data Upgrade:
i)Compile all Objects
ii)Goto file -> Database -> Information
Click Tables -> Test
iii)If you are using Classic Client then you need to migrate to SQL
Classic to Sql Migration Steps:
i)You import the objects available in NAV 2009 setup file
\UpgradeToolKit\SQL Migration\Migrate.fob
ii)Run the Object Codeunit 104010
if system throw any permission error change the drive C:\ to Some other Drive eg (d:\)
iii)Import the object d:\FIELDCHK.TXT , Compile and Run Object Codeunit 104015
Resolve the errors if any.
take backup (.fbk)
Create a New database in SQL and restore the backup.
SQL Migration is done!!!!
Upgrade NAV (4.0/5.0) TO NAV 2009
Upgrade NAV 2009 TO NAV 2015
Upgrade NAV 2015 TO NAV 2016
Data Upgrade Error's
iii)If your database is NAV 2009 then
Go File -> Database Alter -> In integration Tab disable all maintain views,maintain relationships & maintain defaults.
If not then system will throw the below error:
ERROR
---------------------------
Microsoft Dynamics NAV Development Environment
---------------------------
Before you can convert this database, you must use an older
version of Microsoft Dynamics NAV Development Environment to disable the
database Integration settings for 'Maintain views', 'Maintain relationships',
and 'Maintain defaults'. To access these settings, on the File menu, click
Database, and then click Alter.
---------------------------
OK
---------------------------
Microsoft Dynamics NAV Classic
---------------------------
The following SQL Server error or errors occurred when accessing the G/L Entry table:
3728,"42000",[Microsoft][ODBC SQL Server Driver][SQL Server]'$ndodefault$965994918$1' is not a constraint.
3727,"42000",[Microsoft][ODBC SQL Server Driver][SQL Server]Could not drop constraint. See previous errors.
SQL:
ALTER TABLE "CRONUS2013R2"."dbo"."cronus2013$G_L Entry" DROP CONSTRAINT "$ndodefault$965994918$1", CONSTRAINT "$ndodefault$965994918$3", CONSTRAINT "$ndodefault$965994918$4", CONSTRAINT "$ndodefault$965994918$5", CONSTRAINT "$ndodefault$965994918$6", CONSTRAINT "$ndodefault$965994918$7", CONSTRAINT "$ndodefault$965994918$10", CONSTRAINT "$ndodefault$965994918$17", CONSTRAINT "$ndodefault$965994918$23", CONSTRAINT "$ndodefault$965994918$24", CONSTRAINT "$ndodefault$965994918$27", CONSTRAINT "$ndodefault$965994918$28", CONSTRAINT "$ndodefault$965994918$29", CONSTRAINT "$ndodefault$965994918$30", CONSTRAINT "$ndodefault$965994918$41", CONSTRAINT "$ndodefault$965994918$42", CONSTRAINT "$ndodefault$965994918$43", CONSTRAINT "$ndodefault$965994918$45", CONSTRAINT "$ndodefault$965994918$46", CONSTRAINT "$ndodefault$965994918$47", CONSTRAINT "$ndodefault$965994918$48", CONSTRAINT "$ndodefault$965994918$49", CONSTRAINT "$ndodefault$965994918$50", CONSTRAINT "$ndodefault$965994918$51", CONSTRAINT "$ndodefault$965994918$52", CONSTRAINT "$ndodefault$965994918$53", CONSTRAINT "$ndodefault$965994918$54", CONSTRAINT "$ndodefault$965994918$55", CONSTRAINT "$ndodefault$965994918$56", CONSTRAINT "$ndodefault$965994918$57", CONSTRAINT "$ndodefault$965994918$58", CONSTRAINT "$ndodefault$965994918$59", CONSTRAINT "$ndodefault$965994918$60", CONSTRAINT "$ndodefault$965994918$61", CONSTRAINT "$ndodefault$965994918$62", CONSTRAINT "$ndodefault$965994918$63", CONSTRAINT "$ndodefault$965994918$64", CONSTRAINT "$ndodefault$965994918$65", CONSTRAINT "$ndodefault$965994918$68", CONSTRAINT "$ndodefault$965994918$69", CONSTRAINT "$ndodefault$965994918$70", CONSTRAINT "$ndodefault$965994918$71", CONSTRAINT "$ndodefault$965994918$72", CONSTRAINT "$ndodefault$965994918$73", CONSTRAINT "$ndodefault$965994918$74", CONSTRAINT "$n
---------------------------
OK
Solution:
http://naviart.ru/fix-ndodefault-constraint
DECLARE @Old_Name VARCHAR(100),
@New_Name VARCHAR(100),
@ParentID VARCHAR(100),
@i INT
DECLARE Cur_constr CURSOR LOCAL FAST_FORWARD READ_ONLY TYPE_WARNING
FOR
SELECT [name], CAST ([parent_object_id] AS VARCHAR)
FROM [sys].[default_constraints]
WHERE NAME LIKE '$ndodefault$%$%'
AND [is_system_named] = 0
ORDER BY
parent_object_id
OPEN Cur_constr
FETCH NEXT FROM Cur_constr INTO @Old_Name , @ParentID
SET @i = 0
DECLARE @SQL_Expr AS nVARCHAR(MAX)
WHILE @@Fetch_Status = 0
AND @i < 200000
BEGIN
SET @New_Name = '$ndodefault$' + @ParentID + SUBSTRING(@Old_Name,
CHARINDEX('$', @Old_Name, 13), LEN(@Old_Name))
IF @Old_Name <> @New_Name
BEGIN
SET @i = @i + 1
SET @SQL_Expr = ' EXEC sp_rename ' + QUOTENAME(@Old_Name) + ', '
+ QUOTENAME(@New_Name) + '; Print ' + CAST(@i AS nVARCHAR)
EXEC sp_executesql @statement = @SQL_Expr
--PRINT @SQL_Expr
--PRINT 'GO'
END
FETCH NEXT FROM Cur_constr INTO @Old_Name , @ParentID
END
Error "table data 2000000120 does not exist"
Solution:Use windows authentication instead of database authentication for converting the database
Error:
---------------------------
Microsoft Dynamics NAV Classic
---------------------------
The Temp Windows Login already exists.
Identification fields and values:
User ID=''
---------------------------
OK
Solution: Delete all the windows user except the current user
Make sure that the value of primary key does not include spaces.It will hit error
Sales header No. does not exists.
Microsoft Dynamics NAV Development Environment
---------------------------
The C.E. Commissionerate field with 16525 ID in the Location
table has been deleted from metadata, but the table contains data in the cronus2009 database.
---------------------------
OK
Solution:Add field lengh in customized object
---------------------------
Microsoft Dynamics NAV
---------------------------
The following SQL error was unexpected.
Cannot drop the index 'dbo.cronus$Prod_ Order Line.$13', because it does not exist or you do not have
permission.
The index '$10' is dependent on column 'Cost is Adjusted'.
ALTER TABLE DROP COLUMN Cost is Adjusted failed because one
or more objects access this column.
---------------------------
OK
SOLUTION:Assign db_owner roles to user from sql server
After creating instance
Go to services
Change the Navision service instance log on account to
windows user account .
While updating with this document http://blogs.msdn.com/b/nav/archive/201
... 13-r2.aspx
---------------------------
The Description field with 11 ID in the Sales Invoice Line table has been deleted
from metadata, but the table contains data in the ... database.
---------------------------
Table: 113
Solution: The length of Field 11 was set to 250 in 2009 by the partner, but in NAV2013R2 the length is 50
---------------------------
The field Aantal with ID 50020 in the table Sales Cr.Memo Line cannot be deleted
or changed because the field contains data in the ... database of the ... company.
---------------------------
Table: 115
Solution: Field 50020 didn't exist in the new prepared 2013R2 code (mistake)
---------------------------
The field Update BizTalk Partner Setup with ID 80 in the table VAT Rate Change Setup cannot be deleted
or changed because the field contains data in the .... database of the ... company.
---------------------------
Table: 550
Solution: Field 80 didn't exist in the new prepared 2013R2 code.
But this table doesn't exist in the original NAV2009R2 Base database too..? So was a new field in NAV2013??
---------------------------
The Description field with 12 ID in the To-do table has been deleted from metadata,
but the table contains data in the ... database.
---------------------------
Table: 5080
Solution: The length of Field 12 was set to 75 in 2009 by the partner, but in NAV2013R2 the length is 50
---------------------------
The operation could not complete because a record in the Access Control table was locked by another user. Please retry the activity.
---------------------------
Solution: Compile some other objects first (disregard the errors), then do the import of 100 objects. In batches it will work.
in step 9b you need to import all new 2013R2 objects.fob.
Below are some of the messages I got and below it I added the solution to solve
it. Hope it helps someone else.
---------------------------
The Description field with 11 ID in the Sales Invoice Line table has been deleted
from metadata, but the table contains data in the ... database.
---------------------------
Table: 113
Solution: The length of Field 11 was set to 250 in 2009 by the partner, but in NAV2013R2 the length is 50
---------------------------
The field Aantal with ID 50020 in the table Sales Cr.Memo Line cannot be deleted
or changed because the field contains data in the ... database of the ... company.
---------------------------
Table: 115
Solution: Field 50020 didn't exist in the new prepared 2013R2 code (mistake)
---------------------------
The field Update BizTalk Partner Setup with ID 80 in the table VAT Rate Change Setup cannot be deleted
or changed because the field contains data in the .... database of the ... company.
---------------------------
Table: 550
Solution: Field 80 didn't exist in the new prepared 2013R2 code.
But this table doesn't exist in the original NAV2009R2 Base database too..? So was a new field in NAV2013??
---------------------------
The Description field with 12 ID in the To-do table has been deleted from metadata,
but the table contains data in the ... database.
---------------------------
Table: 5080
Solution: The length of Field 12 was set to 75 in 2009 by the partner, but in NAV2013R2 the length is 50
---------------------------
The operation could not complete because a record in the Access Control table was locked by another user. Please retry the activity.
---------------------------
Solution: Compile some other objects first (disregard the errors), then do the import of 100 objects. In batches it will work.
Error:
Either the caller does not have the required permission or
the specified path is read-only.
Hi all,
Sometime while trying to connect to Role tailored client we
face an error message which says this -
"Either the
caller does not have the required permission or the specified path is
read-only."
and it looks like -
This can happen with NAV 2009 & later.
Reason -
The reason for error is that the user have not sufficient
rights on the service tier or i can say on the service folder in Server.
Resolution -
1) Go to service folder in the server.
2) Right click and select properties.
3) Navigate to security Tab.
4) Click Edit.
5) see user by which you are trying to connect is there, if
not add it.
6) If exist check for the permissions in below box.
7) In both the cases assign permission to user.
8) Apply and ok.
9) Restart the service.
10) Connect to RTC Client.
---------------------------
Microsoft Dynamics NAV
---------------------------
The server "CRONUS" was unable to process
the request. The application will close.
---------------------------
OK
Microsoft Dynamics NAV
---------------------------
Dimension Value ID must have a value in Dimension Set Entry:
Dimension Set ID=0, Dimension Code=SALESPERSON. It cannot be zero or empty.
---------------------------
OK
---------------------------
Solution: It mean a table eg:Ledger entry dimension contains
invalid data.
---------------------------
Microsoft Dynamics NAV Classic
---------------------------
The following SQL Server error or errors occurred when
accessing the Ledger Entry Dimension table:
1204,"HY000",
[Microsoft][ODBC SQL Server Driver][SQL Server]The instance
of the SQL Server Database Engine cannot obtain a LOCK resource at this time.
Rerun your statement when there are fewer active users.
Ask the database administrator to check the lock and memory
configuration for this instance, or to check for long-running transactions.
---------------------------
OK
---------------------------
Solution: If you are running a Batch report then filter data
in part wise or increase the RAM
Error:
The Object table contains a Microsoft
Dynamics NAV Development Environment field data type that is not compatible
with the SQL Server data type.
Field : Version List
Type: Text 248
SQL type : VARCHAR(80)
Field : Version List
Type: Text 248
SQL type : VARCHAR(80)
Solution:Platform hotfix is applied. You are trying to open
with previous build It can be open with latest version.
Or
Open SQL Mng. Studio, the following
alter table dbo.[Object]
alter column [Version List] varchar(248)
2.Application Object Upgrade
Automatic Compare - Merge
Compare and Merge Objects Using PowerShell :
Let's Say
1) Original Database - NAV 2016 CU 4
2) Modified Database - Customized NAV 2016 CU 4
3) Target Database – NAV 2016 CU 13
Create four folders named as Original, Modified, Target, and Result. say in E:\ Drive
Export the objects in the respective folders in .txt format (with any file name)
Open PowerShell in Run using the command Powershell_ISE
Execute the below commands one by one.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force
Import-Module "C:\Program Files\Microsoft Dynamics NAV\90\Service\NavAdminTool.ps1" –Force
Import-Module "C:\Program Files (x86)\Microsoft Dynamics NAV\90\RoleTailored Client\Microsoft.Dynamics.Nav.Model.Tools.psd1" -force
Merge-NAVApplicationObject -ModifiedPath "E:\Modified" -OriginalPath "E:\Original" -ResultPath "E:\Result" -TargetPath "E:\Target" -Confirm
In Result Folder system will create 3 folders.
ConflictModified
ConflictOriginal
ConflictTarget
You need to merge only conflict objects manually by using compare tool.
copy and rethe manually merged objects in E:\Result\ folder.
below command help you to Join All the objects .
Join-NAVApplicationObjectFile -Destination "E:\Result\AllObject.txt" -Source "E:\Result\*.txt" -Force
Make sure that you have imported correct license file.
Create a Instance for Nav 2016 CU 13 and Import the AllObject.txt object to your Database.
Compile All Objects
Modify the Version List / Date & Time manually if required.
Done!!!!
Manual
You need to compare and merge the older version object to New Version object.For this you need the below tools
1)Object Splitter
2)Merge Tool:
- Compare It http://winmerge.org/?lang=en
- Araxis http://www.araxis.com/merge/download.en
Tables,Codeunit:
Microsoft Standard Object + Customized
Use Merge tool for Comparing and merging.
Fully Customized object upgrade(ID:50000.....)
Run CMD as Administrator
Execute the below command
E:\NAV 7.0 (2013) - AU.1184330.DVD\NAV 7.0 (2013) - AU.1184330.DVD\UpgradeToolKit\Object Change Tool
s>TextFormatUpgrade2013.EXE "E:\OLD.TXT"
Execute the below command
E:\NAV 7.0 (2013) - AU.1184330.DVD\NAV 7.0 (2013) - AU.1184330.DVD\UpgradeToolKit\Object Change Tool
s>TextFormatUpgrade2013.EXE "E:\OLD.TXT"
After Successful execution system will create folder with name Converted with same file name inside the folder.
Import the object.
Done.!!!
Done.!!!
Forms to Pages.
Microsoft Standard Object + Customized
You can do by it comparing the standard object with customized standard object using compare it tool and add apply the changes manually to latest version.
Fully Customized object upgrade (ID:50000....)
We can transform the Forms of earlier version (4.0,5.0,6.0) to pages by using transformation tool.
Follow the below steps:
i)If you want to transform the form older than nav 6.0 version then use a Demo Database NAV (6-0) for this process.
ii)Export the forms which you want to transform to page and import in Demo Database NAV (6-0)
iii)Use Transformation Tool available in NAV 2009 Setup file ->TransformationTool Folder
If you see this error Go to the subform and change the page property ->PageType -> Listpart
Done!!!
ii)Export the forms which you want to transform to page and import in Demo Database NAV (6-0)
iii)Use Transformation Tool available in NAV 2009 Setup file ->TransformationTool Folder
- Export the forms to this folder and give the name as forms.xml
- Run the Microsoft.Dynamics.Nav.Tools.FormTransformation Application
- System will generate the pages.xml file
- Import this pages.xml file in Demo Database NAV (6-0) database.
iv)Export the pages which were created to .txt format and Import in the latest version.
Error:Server page is already Open.
If you see this error Go to the subform and change the page property ->PageType -> Listpart
Done!!!
Really helpful and informative blog to me. As we are also using Microsoft Dynamics Navision to develop ERP application.
ReplyDeleteThanks for sharing!
Welcome :)
ReplyDelete