Tuesday, October 24, 2017

Dynamics NAV - Upgrade Checklist from LSNAV 2009R2 to LSNAV 2017

Stuff you need:

  • Install media for NAV2009R2 is here 
  • Install Media for NAV 2013 R2 is in the install media here (You still need to install this,  you can jump from 2013 to 2017 using the 2015 toolkit objects)
  • NAV 2015 install media here (this is not necessary, all you need are the objects in the CU1 download, this is just here for reference)
  • Upgrade toolkit for NAV 2015 CU1 is a separate download here (specifically for 2009R2 to 2015 jump)
  • Upgrade toolkit for NAV 2017 is in the install media here
  • User License Key for NAV 2017 or higher
  • Partner License key for NAV 2017 or higher
  • If Using LS Retail
    • Backup for LSNAV2009
    • Partner keys for LSNAV2009 (this key has some objects not available in the 2017 keys)
    • Backup for LSNAV2013
    • Backup for LSNAV2015
    • Backup for LSNAV2017
    • Partner keys for LSNAV2017
    • LS Upgrade Tools 6.1,6.2,6.3,6.4,7.00.03,7.1to8

Stuff to Read:

  • https://blogs.msdn.microsoft.com/nav/2015/02/23/upgrading-from-microsoft-dynamics-nav-2009-r2-or-microsoft-dynamics-nav-2009-sp1-to-microsoft-dynamics-nav-2015/
  • https://msdn.microsoft.com/es-es/library/dn271668(v=nav.71).aspx
Hardware Requirements:
  • NAV2009 to NAV2013 on SQL2008 - use guide in NAV2013 UpgradeToolkit
  • NAV2013 to NAV2017 on SQL2016 - use links above
  • POS UPGRADE
    • In the 2009 Dev Environment, Backup the POS database as an FBK
    • In 2009  Dev, create a new SQL company database
    • Launch 2009 Dev, Login to blank database, Tools>Restore fbk
      • ~ 1 hour
    • Set a new password Tools>Security>Password
    • Set a new password Tools>Security>Logins>Create SA>Give Role SUPER
    • Tools>Security>Synchronize all logins
    • Backup your SQL database
  • CODE UPGRADE
    • If using LS Retail
      • Install 2017 LS Toolboxes
      • Install 2017 Data Director
        • Tick top 2, and bottom 2 options
    • Create Folder structure E:\Upgrade
      • \Final
      • \Modified
      • \Original
      • \Result
      • \Target
    • Install NAV2009R2 Demo
      • Create a new blank company (to ignore the demo data)
      • Import LS2009 if using LS Retail into the blank company
    • Launch Dev Client>Connect to Demo>Export all Objects from new company to a single text file called "OldBaseVersion.txt" in Original folder
      • If using LS Filter out OM and POS Weighing is required
      • <11000010|99000749..99001849|>99001850
    • Launch Dev Client>Connect to your company>Export all Objects to a single text file called "OldCustomVersion.txt" in Modified folder
    • Install NAV2017 Demo
      • Create a new blank company (to ignore the demo data)
      • Import LS2017 if using LS Retail
    • Launch Dev Client>Connect to Demo>Export all Objects to a single text file called "NewBaseVersion.txt" in Target Folder
    • Merge Code
      • Launch NAV2017 Development Shell
      • Change to E:\Upgrade, run script to output to Result folder
        • cd E:\Upgrade
        • Merge-NAVApplicationObject -OriginalPath .\ORIGINAL -TargetPath .\TARGET -ModifiedPath .\MODIFIED -ResultPath .\RESULT 
      • Run the Join to combine all text files into one file per object type to import in Final folder
Join-NAVApplicationObjectFile -Source E:\Upgrade\RESULT\COD*.txt -Destination E:\Upgrade\FINAL\all-cod.txt
Join-NAVApplicationObjectFile -Source E:\Upgrade\RESULT\MEN*.txt -Destination E:\Upgrade\FINAL\all-men.txt
Join-NAVApplicationObjectFile -Source E:\Upgrade\RESULT\PAG*.txt -Destination E:\Upgrade\FINAL\all-pag.txt
Join-NAVApplicationObjectFile -Source E:\Upgrade\RESULT\QUE*.txt -Destination E:\Upgrade\FINAL\all-que.txt
Join-NAVApplicationObjectFile -Source E:\Upgrade\RESULT\REP*.txt -Destination E:\Upgrade\FINAL\all-rep.txt
Join-NAVApplicationObjectFile -Source E:\Upgrade\RESULT\TAB*.txt -Destination E:\Upgrade\FINAL\all-tab.txt
Join-NAVApplicationObjectFile -Source E:\Upgrade\RESULT\XML*.txt -Destination E:\Upgrade\FINAL\all-xml.txt
      • Find and replace all references to Forms (check Tables file)
        • Find "LookupFormID=Form"
        • Replace with "LookupPageID=Page"
        • Find "DrillDownFormID=Form"
        • Replace with "DrillDownPageID=Page"
        • Find ": Form "
        • Replace with ": Page"
    • Compile final code in Demo company
      • Import and all-codeunits.txt to NAV2017 demo company
    • Test and Resolve Conflicts
      • https://msdn.microsoft.com/en-us/dynamics-nav/how-to--compare-and-update-application-object-source-files
      • For each file in your E:\Upgrade\Result\ConflictModified folder 
        • Review the object to confirm if the merge was done correctly
        • Code comparisons are included in the cal code with {>>>>>>>} characters
        • Large blocks of code than could not be merged will be commented out, take special notice of these
          • Ctrl+Shift+O to uncomment
        • Make any adjustments as necessary
        • Save without compiling
      • Fix each object and export it to track your changes
      • Add any documentation and comments if required
      • Compile all objects, some will not compile
      • Keep compiling until only real errors remain, deal with them
        • Some globals do not come across, add them
        • Some functions are deprecated, remove them
        • Force Compile
      • Export all finalized objects as all-objects-final.txt
  • DATA UPGRADE
    • Attempting to do the data upgrade from LSNAV2009 to LSNAV2017 is extremely difficult due to the need to pass through 2013 and 2015, and properly upgrade the code and drop and reload data through each version
    • We did not have success with this method
  • Upgrade Method 2 - Data Migration
    • The upgrade process requires you to drop data out of some fields and set them to '' or 0
      • This means at some point, you will have to reimport the data anyway
      • You may as well just export all data, then import to the final version, with whatever changes need to be made
    • Codemerge LSNAV2009 and LSNAV2017 to get final code
    • Create Blank LSNAV2017 company 
      • Restore NAV DB, import localizations
      • Attach to server instance
      • Compile final code
      • Create new company, delete Cronus when not needed
    • Setup DD sync jobs to pull all data from LSNAV2009 database
      • Use Field lists and filters to manage table differences
      • Use Linked tables to connect all related data
    • Redo all customizations in LSNAV2017 where necessary
    • Redo all configurations in LSNAV2017 where necessary

1 comment:

  1. SMB ERP Solution is a Microsoft Silver Partner. We provide Supply Chain Management Solutions, Microsoft NAV, Microsoft Dynamics NAV, Microsoft Dynamics Business Central. Contact us info@smb-erpsolutions.com for more details. Check out our website for more detials- Dynamics NAV Upgrade

    ReplyDelete