Advertisements

Those planning for Upgrade – Some Important Information

As per the roadmap which Microsoft has published for Business Central, it shows that the Business Central product name will be continued for future. It means there will not be a Dynamics NAV 2019.

BC Road-map

Looking at your investment in terms of license and annual BREP, it is sense able to upgrade to Microsoft Dynamics 365 Business Central, whether your solution is deployed in Cloud or on-premises.

Don’t take me wrong I don’t mean to say that Microsoft Dynamics NAV and Dynamics 365 for finance and operations, Business edition are now obsolete.

Microsoft is not closing support to these products, it is still available to them. Only any new updates to these solutions we cannot expect any more.

One important note: New customers will still be able to purchase Microsoft Dynamics NAV 2018 till 31st March 2019. Same concept of concurrent user license with starter/extended pack.

From 1st April new customers will not be able to license NAV 2018, but existing NAV customers using the solution can still be able to purchase additional licenses as per their requirements if any.

If you missed earlier post do check this Link also.

 

What had changed in license model for Dynamics 365 Business Central

 

One change that a major one is now no more Concurrent licenses, new license purchased will be for named user.

One user one license, however named user will be able to access the application from multiple devices.

As earlier starter & extended pack was available now it will be Essentials and Premium.

Stander version of Business Central is termed as Essentials while with additional modules Service and Manufacturing is termed as Premium.

When comes to licensing you are not allowed to mix and match essentials & premium licenses, it should be from either of them.

Where is Limited user? Don’t worry it have been taken care as Team Member License. Read access throughout the application and write access to maximum of three tables excluding General Ledger entries.

License can be purchased as Perpetual or Subscription basis.

Licenses for Business Central differ from Dynamics NAV licenses in several ways:

  • Dynamics NAV licenses are calculated from concurrent users, where multiple users can share a license. Business Central licenses, on the other hand, are calculated from named users
  • With Business Central it is no longer necessary to have a Starter Pack. As a minimum, you need a Premium or Essentials user
  • It is only possible to have either Premium or Essentials users in your license. You can purchase Teams Members for both Premium and Essentials licenses.

 

What deployment options are available?

  1. Perpetual License – On premises
  2. Perpetual License – Cloud
  3. Subscription License – On premises
  4. Subscription License – Cloud
  5. Software As A Service (SaaS)

 

When you can upgrade to Microsoft Dynamics Business Central?

 

Microsoft Dynamics 365 Business Central is now generally available worldwide for cloud, and on-premises deployments. However you can check if it is available for your country from your local partners.

Local Functionality in Dynamics 365 Business Central

You can go-ahead with upgrade planning whenever you want too. Just get in touch with your current ERP provider.

For free lancing upgrade/development tasks you can contact us too at KSD Consultancy Private Limited. We are taking new project booking till 31st March on our old price, could be fixed or hour basis, which ever suitable to you. You can save lot from your local partners cost.

 

What’s on offer for existing customers?

 

Customers up-to-date with their BREP can upgrade to Dynamics 365 Business Central on-premises using LMT Upgrade.

Due to change in licensing model in Business Central. Below you can see exchange rate from perpetual NAV concurrent license to Business Central named user licenses.

If you have purchased your Dynamics NAV with Perpetual Licencing before October 1, 2018, your current NAV licenses will be converted from:

  • One Full User in Extended Pack to two Premium users
  • One Full user to two Essentials users
  • One Limited user to one Team Member

In addition to the converting of licenses, the licensing setup is different. As mentioned, Dynamics NAV licenses are calculated from concurrent users, where multiple users can share a number of licenses. Business Central licenses, on the other hand, are calculated from named users. The total value of your current licenses will remain the same – even after the conversion.

For more details on Licensing please refer here, make sure you always check with latest version of documents or discuss with your partner for current effective offers.

Dynamics 365 Business Central on-premises Upgrade Policy​

Dynamics 365 Business Central on-premises Licensing Guide

Similar to Dynamics NAV, the functionality of the D365 Business Central is divided into two ‘packages’, Essentials and Premium. The functionality of ‘Essentials’ corresponds to NAV’s ‘Starter Pack’ and the functionality of ‘Premium’ corresponds to NAV’s ‘Extended Pack’

Brief idea as below:

D365 Business Central Essentials /
Dynamics NAV Starter Pack
D365 Business Central Premium /
Dynamics NAV Extended

Financial Management

General Ledger
Cash Management
Fixed Assets
Currencies
Consolidation

Financial Management Extended

Inter-Company (Essentials)
Cost Accounting (Essentials)

Supply Chain Management

Sales Order processing
Purchase and procurement
Item management
Locations
Basic Warehousing

Supply Chain Management
Extended

Advanced Warehousing (Essentials)

Jobs and Resources

Job Planning, Budgets and Invoicing
Resource allocations
Timesheets

 

Contact

Management Contacts
Campaigns
Opportunity Management
D365 Sales Integration

Service Management

Service Contracts
Service Items
Service Order Management

Assembly

Assembly Bill of Materials

Manufacturing

Production BOMs
Works order management
Capacity and Demand planning

It will be always advised to verify before you make up your mind. However you can trust to Microsoft links provided in above post.

 

Advertisements

Comparison of NAV 2018 W1 Objects with NAV 2017 W1 Objects – What’s Difference

With the release of NAV 2018, first thing that comes to mind is how much objects are changed from previous version. To check this I have performed small comparison straight forward on NAV 2017 W1 and NAV 2018 W1 database objects.

I have used power shell commands for quick comparison.

Here we go->

  • To compare two sets of application objects
  • Open the Microsoft Dynamics NAV Development Shell in administrator mode.
  • Navigate to the location of your folders by typing a command such as the following:

UpgradeStep-1

In this example, the DEMOUPGRADE folder contains five folders: ORIGINAL, MODIFIED, TARGET, DELTA, and RESULT. The DELTA and RESULT folders are empty. The ORIGINAL, MODIFIED, and TARGET folders contains one or more text files that contain application objects. You can now run the cmdlet. In my case Original = NAV 2017 W1 and Modified = NAV 2018 W1objects.

  • To run the cmdlet to compare all application objects in the ORIGINAL folder to the application objects in the MODIFIED folder, type the following command:

Compare-NAVApplicationObject -OriginalPath .\ORIGINAL -ModifiedPath .\MODIFIED -DeltaPath .\DELTA

UpgradeStep-2

UpgradeStep-2-3

This generates a number of DELTA files that describe the difference between ORIGINAL and MODIFIED. You can open the DELTA files in text editors such as Notepad.

The following example illustrates how a DELTA file identifies the difference between ORIGINAL and MODIFIED.

UpgradeStep-3

You can identify those differences in DELTA folder.

UpgradeStep-4

However on top level review I found there is major change in properties, changes in field size and new codes additions.

Out of which 1014 objects have minor changes like insert, modify or deletion of simple properties or one line code etc.

  • Virtual Table Changes after 2017:

Table 2000000142 Query Metadata
Table 2000000174 New Page Pattern
Table 2000000178 All Profile
Table 2000000192 Page Control Field
Table 2000000193 Api Web Service

New Additions in 2018

Deletion from 2017 in 2018

  • List of Virtual Tables in NAV 2018, are new additions and rest is common from 2017

Table 2000000001 Object
Table 2000000007 Date
Table 2000000009 Session
Table 2000000020 Drive
Table 2000000022 File
Table 2000000026 Integer
Table 2000000028 Table Information
Table 2000000029 System Object
Table 2000000038 AllObj
Table 2000000039 Printer
Table 2000000040 License Information
Table 2000000041 Field
Table 2000000043 License Permission
Table 2000000044 Permission Range
Table 2000000045 Windows Language
Table 2000000048 Database
Table 2000000049 Code Coverage
Table 2000000055 SID – Account ID
Table 2000000058 AllObjWithCaption
Table 2000000063 Key
Table 2000000101 Debugger Call Stack
Table 2000000102 Debugger Variable
Table 2000000103 Debugger Watch Value
Table 2000000135 Table Synch. Setup
Table 2000000136 Table Metadata
Table 2000000137 CodeUnit Metadata
Table 2000000138 Page Metadata
Table 2000000139 Report Metadata
Table 2000000140 Event Subscription
Table 2000000141 Table Relations Metadata
Table 2000000142 Query Metadata
Table 2000000154 Database Locks
Table 2000000164 Time Zone
Table 2000000167 Aggregate Permission Set
Table 2000000171 Page Table Field
Table 2000000172 Table Field Types
Table 2000000173 Finish Design Save Mode
Table 2000000178 All Profile
Table 2000000192 Page Control Field
Table 2000000193 Api Web Service
  • List of New Objects in NAV 2018

Type No. Name
Table 11 Country/Region Translation
Table 52 Batch Processing Parameter
Table 53 Batch Processing Parameter Map
Table 63 Account Use Buffer
Table 138 Unlinked Attachment
Table 143 ECSL VAT Report Line Relation
Table 247 Intrastat Setup
Table 248 VAT Reg. No. Srv Config
Table 316 Tax Area Translation
Table 327 Tax Jurisdiction Translation
Table 355 Dimension Set ID Filter Line
Table 362 ECSL VAT Report Line
Table 466 Payment Method Translation
Table 467 Workflow Webhook Entry
Table 468 Workflow Webhook Notification
Table 469 Workflow Webhook Subscription
Table 483 Change Global Dim. Log Entry
Table 730 Standard Address
Table 742 VAT Statement Report Line
Table 746 VAT Reports Configuration
Table 747 VAT Report Archive
Table 749 Date Lookup Buffer
Table 832 Workflows Entries Buffer
Table 880 Excel Template Storage
Table 1170 User Task
Table 1236 JSON Buffer
Table 1314 User Tours
Table 1315 Purch. Price Line Disc. Buff.
Table 1432 Net Promoter Score Setup
Table 1433 Net Promoter Score
Table 1470 Product Video Buffer
Table 1471 Product Video Category
Table 1519 Notification Context
Table 1531 Workflow Step Argument Archive
Table 1542 Workflow Webhook Sub Buffer
Table 1543 Flow Service Configuration
Table 1544 Flow User Environment Buffer
Table 1545 Flow User Environment Config
Table 1637 Office Suggested Line Item
Table 1670 Option Lookup Buffer
Table 1797 Data Migration Error
Table 1798 Data Migration Parameters
Table 1799 Data Migration Status
Table 1808 Aggregated Assisted Setup
Table 1827 Business Unit Setup
Table 1828 Business Unit Information
Table 1829 Consolidation Account
Table 1875 Business Setup
Table 1876 Business Setup Icon
Table 1877 VAT Setup Posting Groups
Table 1878 VAT Assisted Setup Templates
Table 1879 VAT Assisted Setup Bus. Grp.
Table 2020 Image Analysis Setup
Table 2101 O365 Item Basket Entry
Table 2107 O365 Customer
Table 2112 O365 Field Excel Mapping
Table 2113 O365 Cust. Invoice Discount
Table 2114 O365 HTML Template
Table 2115 O365 Coupon Claim
Table 2116 O365 Coupon Claim Doc. Link
Table 2117 O365 Posted Coupon Claim
Table 2119 O365 Payment Service Logo
Table 2121 O365 Brand Color
Table 2122 O365 Social Network
Table 2132 O365 Settings Menu
Table 2152 O365 Country/Region
Table 2153 O365 Payment Terms
Table 2154 O365 Payment Method
Table 2158 O365 Document Sent History
Table 2160 Calendar Event
Table 2161 Calendar Event User Config.
Table 2162 O365 C2Graph Event Settings
Table 2163 O365 Sales Event
Table 2190 O365 Sales Graph
Table 2200 O365 Sales Invoice Document
Table 2822 Native – Export Invoices
Table 2831 Native – Payment
Table 2840 Native – Gen. Settings Buffer
Table 2850 Native – API Tax Setup
Table 5113 Contact Dupl. Details Buffer
Table 5152 Integration Record Archive
Table 5221 Employee Posting Group
Table 5222 Employee Ledger Entry
Table 5223 Detailed Employee Ledger Entry
Table 5224 Payable Employee Ledger Entry
Table 5225 Employee Payment Buffer
Table 5373 CRM Full Synch. Review Line
Table 5377 Ext Txt ID Integration Record
Table 5450 Graph Contact
Table 5451 Graph Integration Record
Table 5452 Graph Integration Rec. Archive
Table 5455 Graph Subscription
Table 5456 Graph Business Profile
Table 5466 API Entities Setup
Table 5475 Sales Invoice Entity Aggregate
Table 5476 Sales Invoice Line Aggregate
Table 5477 Purch. Inv. Entity Aggregate
Table 5478 Purch. Inv. Line Aggregate
Table 5479 Journal Lines Entity Setup
Table 5480 Tax Group Buffer
Table 5481 Account Entity Setup
Table 5487 Balance Sheet Buffer
Table 5488 Trial Balance Entity Buffer
Table 5489 Dimension Set Entry Buffer
Table 5495 Sales Order Entity Buffer
Table 5499 Aged Report Entity
Table 5502 Tax Rate Buffer
Table 5503 Acc. Schedule Line Entity
Table 5504 Tax Area Buffer
Table 5505 Sales Quote Entity Buffer
Table 5507 Sales Cr. Memo Entity Buffer
Table 5509 Attachment Entity Buffer
Table 6304 Power BI User Configuration
Table 6305 Power BI Chart Buffer
Table 7800 MS-Event Emitter Event Codes
Table 7820 MS-QBO Customer
Table 7821 MS-QBO Item
Table 7822 MS-QBO Invoice
Table 7823 MS-QBO Modified Field List
Table 7824 MS-QBO Setup
Table 7825 MS-QBO Synchronization Error
Table 7826 MS-QBO Start Sync. Service
Table 7827 MS-QBO Failed Syncs
Table 7828 MS-QBO Sync Buffer
Table 7860 MS- PayPal Standard Account
Table 7861 MS- PayPal Standard Template
Table 7862 MS- PayPal Transaction
Table 7880 MS-QBD Setup
Table 8450 Field Buffer
Table 8620 Config. Tmpl. Selection Rules
Table 9090 Autocomplete Address
Table 9091 Postcode Service Config
Table 9160 TempStack
Table 9510 Email Parameter
Table 130415 Semi-Manual Test Wizard
Table 130416 Semi-Manual Execution Log
Table 2000000081 Upgrade Blob Storage
Table 2000000082 Report Layout
Table 2000000176 NAV App Resource
Table 2000000177 Tenant Profile
Table 2000000179 OData Edm Type
Table 2000000182 Media Resources
Table 2000000186 Profile Page Metadata
Table 2000000187 Tenant Profile Page Metadata
Table 2000000188 User Page Metadata
Report 323 ECSL Report Request Page
Report 394 Suggest Employee Payments
Report 399 Remittance Advice – Journal
Report 400 Remittance Advice – Entries
Report 742 VAT Report Request Page
Report 1170 User Task Utility
Report 1302 Standard Sales – Pro Forma Inv
Report 1826 Consolidation – Test
Report 2500 Day Book VAT Entry
Report 2501 Day Book Cust. Ledger Entry
Report 2502 Day Book Vendor Ledger Entry
Report 5085 Contact Cover Sheet
Report 9200 Void/Transmit Elec. Pmnts
Codeunit 48 PostingSetupManagement
Codeunit 52 BOM-BOM Component
Codeunit 112 Empl. Entry-SetAppl.ID
Codeunit 114 Empl. Entry-Edit
Codeunit 140 EC Sales List Suggest Lines
Codeunit 143 ECSL Report Validate
Codeunit 224 EmplEntry-Apply Posted Entries
Codeunit 325 Update Currency Factor
Codeunit 351 Intrastat Document Completion
Codeunit 456 Job Queue Management
Codeunit 483 Change Global Dimensions
Codeunit 484 Block Table Ops Subscriber
Codeunit 576 Run Template Balance Sheet
Codeunit 577 Run Template Income Stmt.
Codeunit 578 Run Template CashFlow Stmt.
Codeunit 579 Run Template Retained Earn.
Codeunit 580 Run Template Trial Balance
Codeunit 581 Run Template Aged Acc. Pay.
Codeunit 582 Run Template Aged Acc. Rec.
Codeunit 703 Find Record Management
Codeunit 704 MemoryStream Wrapper
Codeunit 745 VAT Report Suggest Lines
Codeunit 790 IC Inbox Outbox Subscribers
Codeunit 882 OCR – Sync Master Data
Codeunit 883 OCR Master Data Mgt.
Codeunit 884 ReadSoft OCR Master Data Sync
Codeunit 1060 Paypal Account Proxy
Codeunit 1061 QBO Sync Proxy
Codeunit 1062 QBD Sync Proxy
Codeunit 1344 Acct. WebServices Mgt.
Codeunit 1345 Product Videos Activities Mgt.
Codeunit 1347 User Task Activities Mgt.
Codeunit 1350 Telemetry Management
Codeunit 1351 Telemetry Subscribers
Codeunit 1352 Create Telemetry Cal. Events
Codeunit 1353 Generate Master Data Telemetry
Codeunit 1354 Generate Activity Telemetry
Codeunit 1355 G/L Post. Inconsistent Telem.
Codeunit 1370 Batch Post Parameter Types
Codeunit 1371 Sales Batch Post Mgt.
Codeunit 1372 Purchase Batch Post Mgt.
Codeunit 1373 Batch Posting Print Mgt.
Codeunit 1380 Batch Processing Mgt.
Codeunit 1390 Document Notifications
Codeunit 1432 Net Promoter Score Mgt.
Codeunit 1508 Notification Lifecycle Handler
Codeunit 1511 Notification Lifecycle Mgt.
Codeunit 1540 Workflow Webhook Setup
Codeunit 1541 Workflow Webhook Events
Codeunit 1542 Workflow Webhook Responses
Codeunit 1543 Workflow Webhook Management
Codeunit 1544 Workflow Webhook Subscription
Codeunit 1545 Workflow Webhook Notification
Codeunit 1546 Workflow Webhook Notify Task
Codeunit 1547 Workflow Webhook Sub Delete
Codeunit 1639 Office Line Generation
Codeunit 1797 Data Migration Facade Helper
Codeunit 1798 Data Migration Mgt.
Codeunit 1799 Import Config. Package File
Codeunit 1813 Assisted Setup Management
Codeunit 1815 Progress Dialog
Codeunit 1875 Business Setup Management
Codeunit 2002 Cortana Tracing
Codeunit 2020 Image Analysis Management
Codeunit 2021 Image Analysis Result
Codeunit 2103 O365 Sales Cancel Invoice
Codeunit 2104 O365 Send + Resend Invoice
Codeunit 2107 O365 Sales Management
Codeunit 2112 O365 Sales Attachment Mgt
Codeunit 2114 O365 HTML Templ. Mgt.
Codeunit 2115 Display Coupons
Codeunit 2116 Coupons Management
Codeunit 2117 Coupons Sync
Codeunit 2130 O365 Excel Import Management
Codeunit 2135 O365 Setup Email
Codeunit 2142 O365 Template Management
Codeunit 2151 O365 Sales Email Management
Codeunit 2155 O365 Discounts
Codeunit 2158 O365 Document Send Mgt
Codeunit 2160 Calendar Event Mangement
Codeunit 2161 Calendar Event Execution
Codeunit 2162 O365 Sales Invoice Events
Codeunit 2163 O365 Sales Quote Events
Codeunit 2190 O365 Sales Web Service
Codeunit 2201 Webhooks Adapter Mgt.
Codeunit 2310 O365 Sales Invoice Mgmt
Codeunit 2502 Extension License Mgmt
Codeunit 2800 Native – Setup APIs
Codeunit 2801 Native – EDM Types
Codeunit 2815 Native – Coupons
Codeunit 2820 Native – Attachments
Codeunit 2822 Native – Reports
Codeunit 2831 Native – Payments
Codeunit 2850 Native API – Language Handler
Codeunit 5066 Rlshp. Msgt. Comm. Line Subs
Codeunit 5067 Interaction Mgt.
Codeunit 5344 CRM Product Name
Codeunit 5347 Integration Rec. Delete Invoke
Codeunit 5349 Auto Create Sales Orders
Codeunit 5351 CRM Customer-Contact Link
Codeunit 5377 Webhook Management
Codeunit 5440 Business Profile Sync. Runner
Codeunit 5441 Graph Sync. – Business Profile
Codeunit 5442 Graph Int – Business Profile
Codeunit 5445 Graph Delta Sync
Codeunit 5446 Graph Webhook Sync To NAV
Codeunit 5450 Graph Subscription Management
Codeunit 5451 Graph Integration Table Sync
Codeunit 5452 Graph Sync. Runner
Codeunit 5453 Graph Sync. Runner – OnModify
Codeunit 5454 Graph Sync. Runner – OnDelete
Codeunit 5455 Graph Data Setup
Codeunit 5456 Graph Connection Setup
Codeunit 5457 Graph Sync. – Contact
Codeunit 5458 Graph Collection Mgt – Contact
Codeunit 5459 JSON Management
Codeunit 5460 Graph Int. – Contact Addresses
Codeunit 5461 Graph Int. – Contact
Codeunit 5462 Graph Int. – Questionnaire
Codeunit 5465 Graph Mgt – General Tools
Codeunit 5466 Graph Mgt – In. Services Setup
Codeunit 5468 Graph Mgt – Complex Types
Codeunit 5469 Library API – General Journal
Codeunit 5470 Graph Collection Mgt – Item
Codeunit 5471 Graph Mgt – Customer
Codeunit 5472 Graph Mgt – Vendor
Codeunit 5473 Graph Mgt – Company Info.
Codeunit 5474 Graph Mgt – Sales Header
Codeunit 5475 Graph Mgt – Sales Invoice
Codeunit 5476 Graph Mgt – Sales Inv. Lines
Codeunit 5477 Sales Invoice Aggregator
Codeunit 5478 Graph Mgt – Journal Lines
Codeunit 5479 Graph Mgt – Customer Payments
Codeunit 5480 Graph Mgt – Account
Codeunit 5481 Graph Mgt – Tax Group
Codeunit 5482 Graph Mgt – Journal
Codeunit 5483 Graph Mgt – Employee
Codeunit 5485 Graph Mgt – Currency
Codeunit 5486 Graph Mgt – Payment Method
Codeunit 5487 Graph Mgt – Dimension
Codeunit 5488 Graph Mgt – Reports
Codeunit 5490 Graph Mgt – Payment Terms
Codeunit 5491 Graph Mgt – Shipment Method
Codeunit 5492 Graph Mgt – Item Category
Codeunit 5494 Graph Mgt – Country/Region
Codeunit 5495 Graph Mgt – Sales Order
Codeunit 5496 Graph Mgt – Sales Order Buffer
Codeunit 5497 Graph Mgt – Doc. Sent History
Codeunit 5498 Graph Mgt – Unit Of Measure
Codeunit 5499 Graph Mgt – Purchase Header
Codeunit 5502 Graph Mgt – Unlinked Att.
Codeunit 5503 Graph Mgt – Attachment Buffer
Codeunit 5504 Graph Mgt – Tax Area
Codeunit 5505 Graph Mgt – Sales Quote
Codeunit 5506 Graph Mgt – Sales Quote Buffer
Codeunit 5507 Graph Mgt – Sales Credit Memo
Codeunit 5508 Graph Mgt – Sal. Cr. Memo Buf.
Codeunit 5509 Graph Mgt – Inc Doc Attachment
Codeunit 5527 Graph Mgt – Purchase Invoice
Codeunit 5528 Graph Mgt – Purch. Inv. Lines
Codeunit 5529 Purch. Inv. Aggregator
Codeunit 6100 Data Migration Facade
Codeunit 6101 Data Migration Status Facade
Codeunit 6110 GL Acc. Data Migration Facade
Codeunit 6111 Vendor Data Migration Facade
Codeunit 6112 Customer Data Migration Facade
Codeunit 6113 Item Data Migration Facade
Codeunit 6114 Ex. Rate Data Migration Facade
Codeunit 6305 Set Power BI User Config
Codeunit 6306 PBI Aged Acc. Calc
Codeunit 6307 PBI Aged Inventory Calc.
Codeunit 6308 PBI Job Chart Calc.
Codeunit 6309 PBI Sales Pipeline Chart Calc.
Codeunit 6310 PBI Top Opportunities Calc.
Codeunit 6400 Flow Service Management
Codeunit 6711 OData Action Management
Codeunit 6723 Server Config. Setting Handler
Codeunit 6724 Booking Appointment – Modify
Codeunit 7326 Whse. Item Tracking FEFO
Codeunit 7820 MS-QBO Table Mgt.
Codeunit 8622 Config. Insert With Validation
Codeunit 8623 Create D365 RapidStart Package
Codeunit 8624 Setup Company Name
Codeunit 8625 Setup Item Costing Method
Codeunit 9003 Team Member Action Manager
Codeunit 9004 User Grp. Perm. Subscribers
Codeunit 9005 Environment Mgt.
Codeunit 9033 Invite External Accountant
Codeunit 9090 Postcode Service Manager
Codeunit 9755 Media Resources Mgt.
Codeunit 9802 Logon Management
XMLport 5801 Export Item Data
Page 63 Applied Employee Entries
Page 148 Customer Posting Group Card
Page 149 Vendor Posting Group Card
Page 199 Unlinked Attachments
Page 234 Apply Employee Entries
Page 248 VAT Registration Config
Page 321 ECSL Report
Page 322 ECSL Report Subform
Page 323 EC Sales List Reports
Page 328 Intrastat Setup
Page 481 Dimension Set ID Filter
Page 577 Change Global Dimensions
Page 578 Change Global Dim. Log Entries
Page 621 IC Setup
Page 625 Unapply Employee Entries
Page 670 Concurrent Session List
Page 739 VAT Report Log
Page 742 VAT Report Statement Subform
Page 746 VAT Reports Configuration
Page 749 Date Lookup
Page 830 Workflow Webhook Entries
Page 831 Workflow Webhook Subscriptions
Page 832 Approvals
Page 1156 Company Detail
Page 1157 Client Detail Cash Flow Chart
Page 1158 Cash Account Balances
Page 1159 Purchase Documents
Page 1160 Sales Documents
Page 1161 Purchase Documents Due Today
Page 1162 Purchase Invoice Due Next Week
Page 1163 Sales Invoices Due Next Week
Page 1164 User Task List Part
Page 1170 User Task List
Page 1171 User Task Card
Page 1172 User Task Recurrence
Page 1313 Dynamics CRM Admin Credentials
Page 1314 AccountantPortal Activity Cues
Page 1315 Accountant Portal Finance Cues
Page 1316 Accountant Portal User Tasks
Page 1320 ExcelTemplateCompanyInfo
Page 1328 Purch. Order From Sales Order
Page 1330 Update Address
Page 1339 EU VAT Registration No Check
Page 1346 Purchases Price and Line Disc.
Page 1394 Trial Balance Setup
Page 1432 Net Promoter Score Setup
Page 1433 Net Promoter Score
Page 1470 Product Videos
Page 1561 Pick Report
Page 1637 Office Suggested Line Items
Page 1670 Option Lookup List
Page 1797 Data Migration Error
Page 1798 Data Migration About
Page 1799 Data Migration Overview
Page 1826 Company Consolidation Wizard
Page 1827 Business Units Setup Subform
Page 1875 Business Setup
Page 1876 Integration Services Setup
Page 1877 VAT Setup Wizard
Page 1878 VAT Bus. Post. Grp Part
Page 1879 VAT Product Posting Grp Part
Page 1880 VAT Assisted Setup Template
Page 1881 Sandbox Environment
Page 2020 Image Analysis Setup
Page 2120 O365 Sales Doc. Attachments
Page 2121 O365 Posted Sales Inv. Att.
Page 2122 O365 Incoming Doc. Attch. List
Page 2123 O365 Incoming Doc. Att. Pict.
Page 2124 O365 Item Basket Part
Page 2125 O365 Payment History Card
Page 2130 O365 Business Info Settings
Page 2131 O365 Learn Settings
Page 2132 O365 Invoice Send Settings
Page 2133 O365 Tax Payments Settings
Page 2134 O365 Import Export Settings
Page 2135 O365 Email Account Settings
Page 2136 O365 Help Feedback Settings
Page 2137 O365 Bank Information Settings
Page 2138 O365 Payments Settings
Page 2139 O365 Language Settings
Page 2140 O365 Sync with Microsoft Apps
Page 2141 O365 Sales Quote
Page 2142 O365 First Invoice Wizard
Page 2143 O365 VAT Product Posting Gr.
Page 2145 O365 VAT Posting Setup Card
Page 2146 O365 VAT Posting Setup List
Page 2147 O365 Service Configuration
Page 2148 O365 Address
Page 2149 O365 Email CC/BCC Card
Page 2150 O365 Sales Email Dialog
Page 2151 O365 Tax Area List
Page 2152 O365 Country/Region List
Page 2153 O365 Payment Terms List
Page 2154 O365 Payment Method List
Page 2155 O365 Sales Invoice Discount
Page 2156 O365 Cust. Invoice Discount
Page 2157 O365 Sales Invoice Line Card
Page 2158 O365 Brand Colors
Page 2159 O365 Email Preview
Page 2160 O365 Sales Graph
Page 2162 O365 Social Networks
Page 2165 O365 Coupon
Page 2166 O365 Coupon List
Page 2179 O365 Contact Lookup
Page 2180 O365 Import from Excel Wizard
Page 2181 O365 Excel Sheet Data SubPage
Page 2182 O365 Excel Columns
Page 2183 O365 Sales Invoice Line Dummy
Page 2190 O365 Invoicing Sales Doc. List
Page 2191 O365 Invoicing Settings
Page 2193 O365 Sales Hist.Sell-toFactBox
Page 2194 O365 Units of Measure
Page 2195 O365 Country/Region Card
Page 2196 O365 Link to Financials
Page 2197 O365 Email Setup Wizard
Page 2200 Sales Invoice Document API
Page 2201 Sales Invoice Reminder API
Page 2304 BC O365 Posted Sale Inv. Lines
Page 2310 BC O365 Sales Invoice
Page 2311 BC O365 Sales Inv. Line Subp.
Page 2313 BCO365 Posted Sales Invoice
Page 2314 BC O365 Item List
Page 2315 BC O365 Settings
Page 2316 BC O365 Customer List
Page 2317 BC O365 Item Card
Page 2318 BC O365 Sales Customer Card
Page 2322 BC O365 Inc. Doc. Attch. List
Page 2328 BC O365 Email Settings Part
Page 2329 BC O365 Email Settings
Page 2330 BC O365 Business Info Settings
Page 2335 BC O365 Email Account Settings
Page 2338 BC O365 Payments Settings
Page 2341 BC O365 Sales Quote
Page 2345 BC O365 PayPal Std. Settings
Page 2346 BC O365 VAT Posting Setup List
Page 2347 BC O365 Service Settings
Page 2352 BC O365 Country/Region List
Page 2365 BC O365 Coupon
Page 2366 BC O365 Coupon List
Page 2375 BC O365 Quickbooks Settings
Page 2376 BC O365 Sync with MS Apps
Page 2379 BC O365 Contact Lookup
Page 2397 BC O365 Email Setup Wizard
Page 2800 Native – KPIs Entity
Page 2801 Native – Customer Entity
Page 2802 Native – Item Entity
Page 2803 Native – Contact
Page 2810 Native – Sales Inv. Entity
Page 2812 Native – Sales Quotes
Page 2815 Native – Coupons
Page 2820 Native – Attachments
Page 2821 Native – PDFs
Page 2822 Native – Export Invoices
Page 2823 Native – Email Preview
Page 2824 Native – Test Mail
Page 2831 Native – Payments
Page 2840 Native – General Setting
Page 2841 Native – SMTP Mail Setup
Page 2842 Native – Email Setting
Page 2843 Native – Sync Services Setting
Page 2844 Native – QBO Sync Auth
Page 2850 Native – Tax Area
Page 2852 Native – Tax Group Entity
Page 2860 Native – Units of Measure
Page 2861 Native – Payment Terms
Page 2862 Native – Payment Methods
Page 2863 Native Country/Regions Entity
Page 2865 Native – Sales Tax Setup
Page 2866 Native – VAT Setup
Page 2870 Native – Languages
Page 2876 Native – Tax Rates
Page 5192 Contact Duplicate Details
Page 5224 Employee Posting Groups
Page 5237 Employee Ledger Entries
Page 5238 Detailed Empl. Ledger Entries
Page 5239 Empl. Ledger Entries Preview
Page 5240 Detailed Empl. Entries Preview
Page 5331 CRM Full Synch. Review
Page 5333 CRM Skipped Records
Page 5469 API Setup
Page 5470 Item Entity
Page 5471 Customer Entity
Page 5472 Vendor Entity
Page 5473 Company Information Entity
Page 5475 Sales Invoice Entity
Page 5476 Sales Invoice Line Entity
Page 5477 Customer Paym. Journal Entity
Page 5478 Journal Lines Entity
Page 5479 Customer Payments Entity
Page 5480 Account Entity
Page 5481 Tax Group Entity
Page 5482 Journal Entity
Page 5483 Employee Entity
Page 5484 G/L Entry Entity
Page 5485 Currencies Entity
Page 5486 Payment Methods Entity
Page 5487 Dimensions Entity
Page 5488 Dimension Values Entity
Page 5489 Dimension Lines Entity
Page 5490 Payment Terms Entity
Page 5491 Shipment Method Entity
Page 5492 Item Categories Entity
Page 5493 Cash Flow Statement Entity
Page 5494 Country/Regions Entity
Page 5495 Sales Order Entity
Page 5496 Sales Order Line Entity
Page 5497 Retained Earnings Entity
Page 5498 Units of Measure Entity
Page 5499 Aged AR Entity
Page 5500 Aged AP Entity
Page 5501 Balance Sheet Entity
Page 5502 Trial Balance Entity
Page 5503 Income Statement Entity
Page 5504 Tax Area Entity
Page 5505 Sales Quote Entity
Page 5506 Sales Quote Line Entity
Page 5507 Sales Credit Memo Entity
Page 5508 Sales Credit Memo Line Entity
Page 5527 Purchase Invoice Entity
Page 5528 Purchase Invoice Line Entity
Page 5831 Inventory Posting Setup Card
Page 6306 Power BI Report FactBox
Page 6307 PBI Aged Acc. Payable
Page 6308 PBI Aged Acc. Receivable
Page 6309 PBI Aged Inventory Chart
Page 6310 PBI Job Act. v. Budg. Price
Page 6311 PBI Job Profitability
Page 6312 PBI Job Act. v. Budg. Cost
Page 6313 PBI WorkDate Calc.
Page 6314 PBI Sales Pipeline
Page 6315 PBI Top 5 Opportunities
Page 6316 Content Pack Setup Wizard
Page 6317 Content Pack Setup Part
Page 6400 Flow Template Selector
Page 6401 Flow Selector
Page 6402 Sales Document Entity
Page 6403 Sales Document Line Entity
Page 6404 Purchase Document Entity
Page 6405 Purchase Document Line Entity
Page 6406 Gen. Journal Batch Entity
Page 6407 Gen. Journal Line Entity
Page 6408 Workflow – Customer Entity
Page 6409 Workflow – Item Entity
Page 6410 Workflow – Vendor Entity
Page 6415 Flow Service Configuration
Page 6416 Flow User Env. Selection
Page 6713 OData Fields Export
Page 6725 OData EDM Definitions
Page 6726 OData EDM Definition Card
Page 8637 Config. Package Subform Saas
Page 9031 O365 Invoicing RC
Page 9033 Invite External Accountant
Page 9043 Team Member Activities No Msgs
Page 9077 O365 Invoicing Activities
Page 9078 User Tasks Activities
Page 9140 Postcode Select Address
Page 9628 Available Table Selection List
Page 9629 Available Field Selection Page
Page 9630 Page Fields Selection List
Page 130415 Semi-Manual Test Wizard
Page 130416 Get Semi-Manual Test Codeunits
Query 50 Power BI Customer List
Query 51 Power BI Vendor List
Query 52 Power BI Item Purchase List
Query 53 Power BI GL Amount List
Query 54 Power BI Jobs List
Query 55 Power BI Sales List
Query 56 Power BI Purchase List
Query 57 Power BI Item Sales List
Query 58 Power BI GL Budgeted Amount
Query 59 Power BI Top Cust. Overview
Query 60 Power BI Sales Hdr. Cust.
Query 61 Power BI Cust. Item Ledg. Ent.
Query 62 Power BI Cust. Ledger Entries
Query 63 Power BI Vendor Ledger Entries
Query 64 Power BI Purchase Hdr. Vendor
Query 65 Power BI Vend. Item Ledg. Ent.
Query 106 Segment Lines
Query 134 OCR Vendors
Query 135 OCR Vendor Bank Accounts
Query 141 EU VAT Entries
Query 260 Dimension Set Entries
Query 261 G/L Entries
Query 262 Cust. Ledger Entries
Query 263 Vendor Ledger Entries
Query 264 Bank Account Ledger Entries
Query 265 Item Ledger Entries
Query 266 Value Entries
Query 267 FA Ledger Entries
Query 268 Job Ledger Entries
Query 269 Res. Ledger Entries
Query 270 G/L Budget Entries
Query 472 Failed Job Queue Entry
Query 1470 Product Videos with Category
Query 5480 Customer Sales Entity
Query 5481 Vendor Purchases Entity
Query 5502 Tax Groups For Tax Areas
Query 7301 Whse. Employees at Locations

 

I will come with more details as I proceed on same.

Cumulative Update 6 for Microsoft Dynamics NAV 2016 released in April

Cumulative Update 6 includes all application and platform hotfixes and regulatory features that have been released for Microsoft Dynamics NAV 2016.

Where to find Cumulative Update 6

You can download the cumulative update from KB 3151017 – Cumulative Update 6 for Microsoft Dynamics NAV 2016 (Build 45480).

Warning

Before you install a cumulative update in a production environment, take the following precautions:

  1. Test the cumulative update in a non-production environment.
  2. Make a backup of the system or computer where the cumulative update is to be installed.

Additional Information

For information about how to install the cumulative update, see How to Install a Microsoft Dynamics NAV 2016 Cumulative Update.

For a list of all cumulative updates for this version, see Released Cumulative Updates for Microsoft Dynamics NAV 2016.

Cumulative Update 18 for Microsoft Dynamics NAV 2015 released in April

Cumulative Update 18 includes all application and platform hotfixes and regulatory features that have been released for Microsoft Dynamics NAV 2015.

Where to find Cumulative Update 18

You can download the cumulative update from KB 3151020 – Cumulative Update 18 for Microsoft Dynamics NAV 2015 (Build 45483).

Warning

Before you install a cumulative update in a production environment, take the following precautions:

  1. Test the cumulative update in a non-production environment.
  2. Make a backup of the system or computer where the cumulative update is to be installed.

Additional Information

For information about how to install the cumulative update, see How to Install a Microsoft Dynamics NAV 2015 Cumulative Update.

For information about how to work around a recent process change, see How to Get Back the ‘Hotfix Directories’ from NAV 2015 Cumulative Update 1.

For a list of all cumulative updates for this version, see Released Cumulative Updates for Microsoft Dynamics NAV 2015.

Cumulative Update 30 for Microsoft Dynamics NAV 2013 R2 released in April

Cumulative Update 30 includes all application and platform hotfixes and regulatory features that have been released for Microsoft Dynamics NAV 2013 R2.

Where to find Cumulative Update 30

You can download the cumulative update from KB 3151021 – Cumulative Update 30 for Microsoft Dynamics NAV 2013 R2 (Build 45478).

Warning

Before you install a cumulative update in a production environment, take the following precautions:

  1. Test the cumulative update in a non-production environment.
  2. Make a backup of the system or computer where the cumulative update is to be installed.

Additional Information

For more information about cumulative updates for this version, see Announcement of update rollups for Microsoft Dynamics NAV 2013 R2.

For a list of all cumulative updates for this version, see Released Cumulative Updates for Microsoft Dynamics NAV 2013 R2.

For a list of all hotfixes included in cumulative updates for this version, see the following CustomerSource and PartnerSource pages:

CustomerSource:

PartnerSource

Few Helpful PowerShell Commands which you can use for Upgrade Process in Navision 2016 – Part 2

You can use Windows PowerShell scripts to upgrade the latest version of Microsoft Dynamics NAV. Microsoft Dynamics NAV 2016 provides sample scripts that you can adapt for your deployment architecture.

Automating the Upgrade Process

When you upgrade to Microsoft Dynamics NAV 2016, you must first upgrade the application code, and then you upgrade the data.

In my earlier post I have explained this using PowerShell commands, you can find the link here: Helpful PowerShell Commands which you can use for Upgrade Process in Navision 2016

By using Windows PowerShell, you can automate both parts of the upgrade process. Also, you can use the same scripts to test each step in your upgrade process before you upgrade production databases.

You can combine this automated upgrade with a migration to multitenancy this makes maintenance easier for you.

The Sample Scripts for Code Upgrade

Microsoft Dynamics NAV includes sample scripts that illustrate how you can use Windows PowerShell cmdlets to upgrade your application to the latest version of Microsoft Dynamics NAV.

The sample scripts are located in the ApplicationMergeUtilities folder under the WindowsPowerShellScripts folder on the Microsoft Dynamics NAV product media.

However you can follow above post link steps explanation to get it done.

The Sample Scripts for Data Upgrade

Microsoft Dynamics NAV includes sample scripts that illustrate how you can automate the upgrade of data to the latest version of Microsoft Dynamics NAV.

The sample scripts are located in the Upgrade folder under the WindowsPowerShellScripts folder on the Microsoft Dynamics NAV product media. You can run the sample script using a partner license or a customer license.
PowerShell-3

To learn and follow MS suggested steps you can find details using this link. Automating the Upgrade Process using Windows PowerShell Scripts in Microsoft Dynamics NAV 2016

To run the sample script for the data upgrade of a Microsoft Dynamics NAV database, you must have a Microsoft Dynamics NAV 2013, Microsoft Dynamics NAV 2013 R2, or Microsoft Dynamics NAV 2015 database that is available on a SQL Server instance and is ready to be upgraded.

Here I present my version derived from above Steps:

To continue we will do some setup. Copy the Upgrade folder from above path and save as DataUpgradePSKit.

PowerShell-4

Create Folder OriginalScript and move the PS1 file on root to this folder although we don’t require for this exercise but you can safe copy for your reference. (Example, Set-PartnerSettings, Set-PowerShellEnvironment)

Create Backup folder, script will use to store backup of the database previous to start Upgrade process.

Create Upgrade Folder and place these files:

  • License File
  • New Merged Objects fob
  • Upgrade Toolkit / or your own prepared Upgrade Codeunits

PowerShell-5

  • Create ProcessLogs Folder, which will be used for recording log of Shell Script.

Here is the script which we will be using to perform our Data Upgrade process:

You can find this script here http://1drv.ms/1NyolVV or you can download from Menu of my Blog using Link Shared Files.

 

# Added below parameter values globally for ease of maintenance

# You just do correction on values here (as per your environment) and will be in effect for rest of below script

# No need to scan and change every occurrence for same value in different steps of the script.

# Select this section and Execute first so that these Variables value are available for rest of the script.

Import-Module ‘C:\Program Files\Microsoft Dynamics NAV\90\Service\NavAdminTool.ps1’

$NAVUpgrade_NAVServerInstance = “UpgradedDBfrom2013R2”

$NAVUpgrade_NAVServerServiceAccount = “NT AUTHORITY\NETWORK SERVICE”

$NAVUpgrade_FinSqlExeFile = “C:\Program Files (x86)\Microsoft Dynamics NAV\90\RoleTailored Client\finsql.exe”

$NAVUpgrade_IDEModulePath = “”

$NAVUpgrade_DatabaseServer = “INDEL-AXT5283VM”

$NAVUpgrade_DatabaseInstance = “”

$NAVUpgrade_DatabaseName = “Demo Database NAV (7-1)”

$NAVUpgrade_DatabaseToUpgradeBakFile = “C:\UserData\DataUpgradePSKit\Backup\DynamicsNAV70_BeforeUpgrade.bak”

$NAVUpgrade_NewVersionObjectsFobFilePath = “C:\UserData\DataUpgradePSKit\Upgrade\NewObjects.fob”

$NAVUpgrade_UpgradeToolkitObjectsFobFilePath = “C:\UserData\DataUpgradePSKit\Upgrade\Upgrade710900.FOB”

$NAVUpgrade_UpgradeObjectsFilter = “Version List=UPGTK9.00.00”

$NAVUpgrade_UpgradeLogsDirectory = “C:\UserData\DataUpgradePSKit\Upgrade\ProcessLogs”

#$NAVUpgrade_RapidStartPackageFile = ‘C:\UserData\DataUpgradePSKit\Upgrade\PackageSTCODES.rapidstart’

$NAVUpgrade_CurrentVersionLicenseFile = “C:\UserData\DataUpgradePSKit\Upgrade\DevLicense.flf”

$NAVUpgrade_PreviousVersionLicenseFilePath = “C:\UserData\DataUpgradePSKit\Upgrade\DevLicense.flf”

 

# Upgrade Steps:

Import-Module (Join-Path (Get-Location) ‘Cmdlets\NAVUpgradeCmdlets.psm1’) -DisableNameChecking

#1. Prepares the Windows PowerShell session by importing the required modules.

        # Import the NAV IDE Module.

Import-NAVIdeModule -IDEModuleSuggestedPath $NAVUpgrade_IDEModulePath -FinSqlExeFile $NAVUpgrade_FinSqlExeFile

Import-NAVManagementModule

Import-SqlPsModule

 

#2. Saves the current license from the Microsoft Dynamics NAV 2013, Microsoft Dynamics NAV 2013 R2, or Microsoft Dynamics NAV 2015 database.

# Backup current license from the application part of the database (table ‘$ndo$dbproperty’) , if it exists

        Export-NAVLicenseFromApplicationDatabase `

-DatabaseName $NAVUpgrade_DatabaseName `

-DatabaseServer $NAVUpgrade_DatabaseServer `

-DatabaseInstance $NAVUpgrade_DatabaseInstance `

-LicenseFilePath $NAVUpgrade_PreviousVersionLicenseFilePath

 

#3. Creates a backup of the Microsoft Dynamics NAV 2013, Microsoft Dynamics NAV 2013 R2, or Microsoft Dynamics NAV 2015 database, and then converts the database to Microsoft Dynamics NAV 2016.

        Backup-NAVSqlDatabase `

-DatabaseServer $NAVUpgrade_DatabaseServer `

-DatabaseInstance $NAVUpgrade_DatabaseInstance `

-DatabaseName $NAVUpgrade_DatabaseName `

-DatabaseBackupFilePath $NAVUpgrade_DatabaseToUpgradeBakFile

$NAVUpgrade_DatabaseSQLServerInstance = Get-SqlServerInstance -DatabaseServer $NAVUpgrade_DatabaseServer -DatabaseInstance $NAVUpgrade_DatabaseInstance

$NavServerInfo = New-Object PSObject

Add-Member -InputObject $NavServerInfo -MemberType NoteProperty -Name NavServerName -Value “$NAVUpgrade_DatabaseServer”

Add-Member -InputObject $NavServerInfo -MemberType NoteProperty -Name NavServerInstance -Value (Get-NAVServerConfigurationValue  -ServerInstance $NAVUpgrade_NAVServerInstance -ConfigKeyName “ServerInstance”)

Add-Member -InputObject $NavServerInfo -MemberType NoteProperty -Name NavServerManagementPort -Value (Get-NAVServerConfigurationValue -ServerInstance $NAVUpgrade_NAVServerInstance -ConfigKeyName “ManagementServicesPort”)

 

# Perform technical upgrade of the NAV database

        Invoke-NAVDatabaseConversion `

-DatabaseName $NAVUpgrade_DatabaseName `

-DatabaseServer $NAVUpgrade_DatabaseSQLServerInstance `

-LogPath $NAVUpgrade_UpgradeLogsDirectory\”Database Conversion”

 

#4. Connects the Microsoft Dynamics NAV 2016 Server instance to the converted database, imports the Microsoft Dynamics NAV 2016 license file, and then synchronizes the table schema.

 

# Connect the NAV Server to the NAV database

        Connect-NAVServerToNAVDatabase  `

-NAVServerInstance $NAVUpgrade_NAVServerInstance `

-NAVServerServiceAccount $NAVUpgrade_NAVServerServiceAccount `

-DatabaseServer $NAVUpgrade_DatabaseServer `

-DatabaseInstance $NAVUpgrade_DatabaseInstance `

-DatabaseName $NAVUpgrade_DatabaseName

# Import the new version license into the application database, and restart the server in order for the license to be loaded

        Import-NAVServerLicense -ServerInstance $NAVUpgrade_NAVServerInstance -LicenseFile $NAVUpgrade_CurrentVersionLicenseFile -Database NavDatabase

Set-NAVServerInstance -ServerInstance $NAVUpgrade_NAVServerInstance -Restart

# Synchronize the NAV database

        Sync-NAVTenant -ServerInstance $NAVUpgrade_NAVServerInstance -Mode Sync -Force

 

#5. Imports the application objects and upgrade toolkit objects from the specified .fob file, and then synchronizes the table schema again.

#   This updates the SQL Server database based on the new table schema that is defined by the imported application objects. Data that must be mapped to another table is saved in upgrade tables.

# Delete the tables from the previous version, using SynchronizeSchemaChanges Later.

# The new  objects we import will contain the new version of the tables.

        Delete-NAVApplicationObject `

-DatabaseName $NAVUpgrade_DatabaseName `

-DatabaseServer $NAVUpgrade_DatabaseSQLServerInstance `

-LogPath $NAVUpgrade_UpgradeLogsDirectory `

-Filter “Type=Table;ID=<2000000000” `

-SynchronizeSchemaChanges “No” `

-NavServerName $NavServerInfo.NavServerName `

-NavServerInstance $NAVServerInfo.NavServerInstance `

-NavServerManagementPort $NavServerInfo.NavServerManagementPort `

-Confirm:$false

# Import all the new objects and the upgrade objects, by delaying the schema synchronization

# If an $UpgradeToolkitObjects value has not been provided, then

#  the assumption is that the upgrade toolkit is within the same .FOB as the new objects

           if(!$UpgradeToolkitObjects)

{

# Import FOB file containing the new version of the application objects, including the upgrade toolkit

Import-NAVApplicationObject `

-Path $NAVUpgrade_NewVersionObjectsFobFilePath `

-DatabaseName $NAVUpgrade_DatabaseName `

-DatabaseServer $NAVUpgrade_DatabaseSQLServerInstance `

-LogPath $NAVUpgrade_UpgradeLogsDirectory `

-ImportAction “Overwrite” `

-SynchronizeSchemaChanges “No” `

-NavServerName $NavServerInfo.NavServerName `

-NavServerInstance $NAVServerInfo.NavServerInstance `

-NavServerManagementPort $NavServerInfo.NavServerManagementPort `

-Confirm:$false

}

else

{

 

# Import FOB file containing the new version of the application objects

Import-NAVApplicationObject `

-Path $NAVUpgrade_NewVersionObjectsFobFilePath `

-DatabaseName $NAVUpgrade_DatabaseName `

-DatabaseServer $NAVUpgrade_DatabaseSQLServerInstance `

-LogPath $NAVUpgrade_UpgradeLogsDirectory `

-ImportAction “Overwrite” `

-SynchronizeSchemaChanges “No” `

-Confirm:$false

 

# Import FOB file containing the upgrade codeunit and upgrade tables

Import-NAVApplicationObject `

-Path $NAVUpgrade_UpgradeToolkitObjectsFobFilePath `

-DatabaseName $NAVUpgrade_DatabaseName `

-DatabaseServer $NAVUpgrade_DatabaseSQLServerInstance `

-LogPath $NAVUpgrade_UpgradeLogsDirectory `

-ImportAction “Overwrite” `

-SynchronizeSchemaChanges “No” `

-Confirm:$false

}

# Synchronize the metadata changes to SQL

        Sync-NAVTenant -ServerInstance $NAVUpgrade_NAVServerInstance -Mode Sync -Force

#6. Calls the Start-NAVDataUpgrade cmdlet to verify the data upgrade preconditions and transfer data from the upgrade tables to the destination tables.

# Invoke the Data Upgrade process

        Invoke-NAVDataUpgrade -ServerInstance $NAVUpgrade_NAVServerInstance

 

#7. Deletes all obsolete tables and the upgrade toolkit objects.

# Delete Upgrade Toolkit objects

        Delete-NAVApplicationObject `

-DatabaseName $NAVUpgrade_DatabaseName `

-DatabaseServer $NAVUpgrade_DatabaseSQLServerInstance `

-LogPath $NAVUpgrade_UpgradeLogsDirectory `

-Filter “$NAVUpgrade_UpgradeObjectsFilter;ID=<2000000000” `

-SynchronizeSchemaChanges “Force” `

-NavServerName $NavServerInfo.NavServerName `

-NavServerInstance $NAVServerInfo.NavServerInstance `

-NavServerManagementPort $NavServerInfo.NavServerManagementPort `

-Confirm:$false

 

#8.       Initializes all companies in the upgraded database. If you specified a RapidStart package in the Set-PartnerSettings.ps1 file, the package is applied to all companies.

# Optionally, run RapidStart package import

        if($NAVUpgrade_RapidStartPackageFile)

{

Invoke-NAVRapidStartDataImport -ServerInstance      $NAVUpgrade_NAVServerInstance -RapidStartPackageFile $NAVUpgrade_RapidStartPackageFile

 

}

 

The sample script is intended to be run in the context of a Microsoft Dynamics NAV 2016 deployment, including the Microsoft Dynamics NAV Server instance.

The Microsoft Dynamics NAV Server instance cannot be multitenant. When the sample script runs successfully, the result is a Microsoft Dynamics NAV 2016 database that is connected to a Microsoft Dynamics NAV 2016 Server instance, and which uses a Microsoft Dynamics NAV 2016 license.

You may face some permission related issues, take help of you IT person if not sure about the nature of issue or use Administrator login.

I will come with more details in my next posts.

 

 

Helpful PowerShell Commands which you can use for Upgrade Process in Navision 2016

In today’s post we will see some Power Shell Commands which will be helpful while performing Upgrades using PowerShell. For below commands to exercise you will need to create/prepare Folder Structure as below else you will have to modify the path in below script as one which you will be using.

For your ease I have uploaded the below script in form of text file named ‘MyPowerShellScript.txt’ which you can get using this link http://1drv.ms/1OOf7If alternatively from Menu of my blog side use Shared Files to access the file.
PowerShell-1

Extract you objects in Text format from Base, Customized and Target Database and place in respective folders. One text file per object will be better option for getting more clear insight on Results. You can find the command for Splitting the File per object in below Script.

After opening the PowerShell or ISE change your folder to Upgrade Demo as in my case it will be:

PS C:\userdata\upgrade demo>
PowerShell-2
Select the Script and Press Button in Toolbar Run Selection (F8) in Windows PowerShell ISE (Desktop App).

#1. Start Import NAV Module

Import-Module “${env:ProgramFiles(x86)}\Microsoft Dynamics NAV\90\RoleTailored Client\Microsoft.Dynamics.Nav.Model.Tools.psd1” -force -DisableNameChecking

Get-Help “NAV”

This is must in order to run all below commands.

#2. Merge Objects

# Compare ORIGINAL and MODIFIED and merge onto TARGET, then put the merged files in RESULT

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force

# Standard PowerShell table formatting with sorting on Object Type, Id

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force -PassThru |

Sort-Object ObjectType, Id |

Format-Table

# Use PowerShell VARIABLE, PIPING, FILTER, and LISTS – capture result in variable, then list file names of ORIGINAL and TARGET files in conflict 

$myVariable = Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -TargetPath .\TARGET\*.txt `

-ModifiedPath .\MODIFIED\*.txt -ResultPath .\RESULT -Force

$myVariable.Summary

$myVariable |

Where-Object MergeResult –eq ‘Conflict’ |

Select Original, Target |

Format-List

# Open NOTEPAD for each CONFLICT file 

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -TargetPath .\TARGET\*.txt `

-ModifiedPath .\MODIFIED\*.txt -ResultPath .\RESULT -Force -PassThru |

Where-Object MergeResult -eq ‘Conflict’ |

foreach { NOTEPAD $_.Conflict }

# Handling Documentation triggers: Merged by default, but conflict can either be treated as real conflict (Strict) or both inserted (ModifiedFirst or TargetFirst)

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\pagXXXX.txt -ModifiedPath .\MODIFIED\pagXXXX.txt `

-TargetPath .\TARGET\pagXXXX.txt -ResultPath .\RESULT\pagXXXX.txt -Force -DocumentationConflict Strict

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\pagXXXX.txt -ModifiedPath .\MODIFIED\pagXXXX.txt `

-TargetPath .\TARGET\pagXXXX.txt -ResultPath .\RESULT\pagXXXX.txt -Force -DocumentationConflict ModifiedFirst

#3. Merge Format Output

# Compare ORIGINAL and MODIFIED and merge onto TARGET, then put the merged files in RESULT

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force

# Same: Capture the rich output in a PowerShell variable for further processing

$result = Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force

# Using the variable: Use standard PowerShell outputting of variable 

$result

# Using the variable: Use the Summary property of the result 

$result.Summary

# Using the variable: Use standard PowerShell table formatting 

$result | Format-Table

# Use standard PowerShell table formatting 

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force -PassThru |

Format-Table

# Use standard PowerShell table formatting with sorting on ObjectType, Id 

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force -PassThru |

Sort-Object ObjectType, Id |

Format-Table

# Use standard PowerShell graphical output (GridView) 

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force -PassThru |

Out-GridView

#4. Merge Filter Output

 # Compare ORIGINAL and MODIFIED and merge onto TARGET, then put the merged files in RESULT

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force

# Same: Plus use PIPING, PASSTHRU and FILTER – show objects with CONFLICT only

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -TargetPath .\TARGET\*.txt `

-ModifiedPath .\MODIFIED\*.txt -ResultPath .\RESULT -PassThru -Force |

Where-Object MergeResult –eq ‘Conflict’

# Same: Plus use PIPING, PASSTHRU, FILTER, and COUNT – count MERGED objects

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -TargetPath .\TARGET\*.txt `

-ModifiedPath .\MODIFIED\*.txt -ResultPath .\RESULT -PassThru -Force |

Where-Object MergeResult –eq ‘Merged’ |

Measure-Object

# Same: Plus use PIPING, PASSTHRU, FILTER, and LISTING FILES – list file names of ORIGINAL and TARGET files in conflict 

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -TargetPath .\TARGET\*.txt `

-ModifiedPath .\MODIFIED\*.txt -ResultPath .\RESULT -PassThru -Force |

Where-Object MergeResult –eq ‘Conflict’ |

Select Original, Target |

Format-List

#5. Merge and open Conflicts files using External Tools

 # Compare ORIGINAL and MODIFIED and merge onto TARGET, then put the merged files in RESULT 

$result = Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force

# Open NOTEPAD for each CONFLICT file 

$result |

Where-Object MergeResult -eq ‘Conflict’ |

foreach { NOTEPAD $_.Conflict }

#6. Merge and Documentation Triggers

 # Compare object DOCUMENTATION modifications: Body-text (can be merged) and version list additions (potential conflict). 

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\pagXXXX.txt -ModifiedPath .\MODIFIED\pagXXXX.txt `

-TargetPath .\TARGET\pagXXXX.txt -ResultPath .\RESULT\pagXXXX.txt -Force -DocumentationConflict ModifiedFirst

# Same: But STRICT on conflicts. 

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\pagXXXX.txt -ModifiedPath .\MODIFIED\pagXXXX.txt `

-TargetPath .\TARGET\pagXXXX.txt -ResultPath .\RESULT\pagXXXXa.txt -Force -DocumentationConflict Strict

#7. Merge and import in CSIDE

# Compare ORIGINAL and MODIFIED and merge onto TARGET, then put the merged files in RESULT 

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force

# Locate subset (code units) of partionally merged object files, combine them into a single file for performance, and import them into C/SIDE (parameter -Database for you to provide). All throught piping. 

Get-ChildItem .\RESULT\COD*.txt |

Join-NAVApplicationObjectFile -Destination .\RESULT\partially-merged.txt |

Import-NAVApplicationObject

#8. Merge and Export Result to Excel Output 

# Compare ORIGINAL and MODIFIED and merge onto TARGET, then put the merged files in RESULT 

$result = Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force

$AutoMerged = ($result | Where-Object MergeResult -eq ‘Merged’).Count

$Conflict   = ($result | Where-Object MergeResult -eq ‘Conflict’).Count

$Unchanged  = ($result | Where-Object MergeResult -eq ‘Unchanged’).Count

$Inserted   = ($result | Where-Object MergeResult -eq ‘Inserted’).Count

$Unknown    = ($result | Where-Object MergeResult -eq ‘Unknown’).Count

$Deleted    = ($result | Where-Object MergeResult -eq ‘Deleted’).Count

$Title      = “MySample”  # update Excel template file to allow blanks and special characters

$excelPath = “$(Get-ItemProperty ‘HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe’ | select -exp Path)\Excel.exe”

& $excelPath “.\Merge Result Sample.xlsm” “/e/$Title/$AutoMerged/$Conflict/$Unchanged/$Inserted/$Unknown/$Deleted”

# Start-Process -FilePath “.\Merge Result Sample.xlsm” -ArgumentList “/e/BAS/$AutoMerged/$Conflict/$Unchanged/$Inserted/$Unknown/$Deleted”

#9. Compare

 # Compare ORIGINAL and MODIFIED and output MULTIPLE separate DELTA files 

Compare-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -DeltaPath .\DELTA -Force

# Compare ORIGINAL and TARGET, pipe the result into the Update-cmdlet (in particular the DELTA parameter) 

Compare-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -DeltaPath .\DELTA -Force -PassThru |

Update-NAVApplicationObject -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force

#10. Compare Piped

 # Compare ORIGINAL and TARGET and output ONE summary DELTA file 

Compare-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\TARGET\*.txt -DeltaPath .\RESULT\sum-of-deltas.txt -Force

#11. Update Piped

# Compare ORIGINAL and MODIFIED and output MULTIPLE separate DELTA files, capture result in variable to apply multiple times 

$myDifferences = Compare-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -DeltaPath .\DELTA -Force

# Apply a captured set of differences to TARGET objects using the Update-cmdlet 

$myDifferences |

Update-NAVApplicationObject -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force

#12. Join & Split Object Files

# Join all Codeunit-TXT-files into a single TXT-file

Join-NAVApplicationObjectFile -Source .\ORIGINAL\COD*.txt -Destination .\RESULT\all-codeunits.txt -Force

# Join list of Codeunit-TXT-files into a single TXT-file 

Join-NAVApplicationObjectFile -Source .\ORIGINAL\COD1.txt, .\ORIGINAL\COD2.txt, .\ORIGINAL\COD3.txt -Destination .\RESULT\3-codeunits.txt -Force

# Split a single TXT-file with multiple application objects into separate files in the DESTINATION folder 

Split-NAVApplicationObjectFile -Source .\RESULT\all-codeunits.txt -Destination .\SEPARATE -Force

Make sure you have created Separate Folder before executing this script.

#13. Get Application Properties 

# Show values of application properties in CODXXXX.TXT 

Get-NAVApplicationObjectProperty -Source .\RESULT\CODXXXX.txt

#14. Set Application Properties

# Set all object properties on named object COD1.TXT: VersionList to DemoV1, Modified as modified, and Date and Time to current date/time (show outcome) 

Set-NAVApplicationObjectProperty -TargetPath .\RESULT\COD1.txt -VersionListProperty “DemoV1” -ModifiedProperty Yes -DateTimeProperty (Get-Date -Format g)

Get-NAVApplicationObjectProperty -Source .\RESULT\COD1.txt

# Set date/time to a fixed, machine-locale agnostic date (January 1st, 2015) on Merged objects 

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force -PassThru |

Where-Object MergeResult –eq ‘Merged’ |

foreach { Set-NAVApplicationObjectProperty -TargetPath $_.Result -DateTimeProperty (Get-Date -Year 2015 -Month 1 -Day 1 -Hour 0 -Minute 0 -Format g) }

# Capture merge-result in variable, set VersionList property as an concatenation of Modified and Target values with trailing ‘!’ 

$result = Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force

$result |

Where-Object MergeResult –eq ‘Merged’ |

foreach { Set-NAVApplicationObjectProperty -TargetPath $_.Result -VersionListProperty “$_.Modified.VersionList,$_.Target.VersionList!”;

Get-NAVApplicationObjectProperty -Source $_.Result }

# Display property VersionList of CODXXXX.TXT in MODIFIED, TARGET, and RESULT 

Get-NAVApplicationObjectProperty -Source .\MODIFIED\CODXXXX.txt | select VersionList

Get-NAVApplicationObjectProperty -Source .\TARGET\CODXXXX.txt | select VersionList

Get-NAVApplicationObjectProperty -Source .\RESULT\CODXXXX.txt | select VersionList

#15. Set Application Properties

# Set date/time to fixed date (January 31st, 2015) on Merged objects 

Merge-NAVApplicationObject -OriginalPath .\ORIGINAL\*.txt -ModifiedPath .\MODIFIED\*.txt -TargetPath .\TARGET\*.txt -ResultPath .\RESULT -Force -PassThru |

Where-Object MergeResult –eq ‘Merged’ |

foreach { Set-NAVApplicationObjectProperty -TargetPath $_.Result -DateTimeProperty “31-1-2015” }

#16. Export Language

# Export ONE language (Spanish) from a single object file.  

Export-NAVApplicationObjectLanguage –Source .\original\TAB14.TXT -LanguageId “ESP” -Destination .\result\TAB14-ESP.TXT -Force

# Export one language (Spanish) from a single object file with non-standard code page ENCODING.  

Export-NAVApplicationObjectLanguage –Source .\original\TAB14.TXT -LanguageId “ESP” -Destination .\result\TAB14-ESP-UNICODE.TXT -Encoding Unicode -Force

# Export ONE language (Spanish) from ALL objects into a SINGLE file. 

Export-NAVApplicationObjectLanguage –Source .\original\*.TXT -LanguageId “ESP” -Destination .\result\ALL-ESP.TXT -Force

# Export MULTIPLE languages (Spanish, US English) from ALL objects

Export-NAVApplicationObjectLanguage –Source .\original -LanguageId “ESP”,”ENU” -Destination .\result -Force

# Export ALL languages (Spanish, US English, Danish) from ALL objects into result folder  

Export-NAVApplicationObjectLanguage –Source .\original -Destination .\result -Force

# Export ALL languages (Spanish, US English, Danish) from ALL objects into a SINGLE file

Export-NAVApplicationObjectLanguage –Source .\original -Destination .\result\single.txt -Force

#17. Import Language  

# Import Spanish language from FULL translation file into a single object 

Import-NAVApplicationObjectLanguage –Source .\original\TAB14.TXT -LanguageId “ESP” -LanguagePath .\result\ALL-ESP.TXT -Destination .\result -Force

#18. Remove Language

# Remove Spanish captions from a single object 

Remove-NAVApplicationObjectLanguage –Source .\target\TAB14.TXT -LanguageId “ESP” -Destination .\result\TAB14-ESP-REMOVED.TXT -Force

# Remove all captions from multiple objects, result in a single file 

Remove-NAVApplicationObjectLanguage –Source .\target\TAB14.TXT, .\target\PAGXXXX.TXT -Destination .\result -Force

#19. Test-Languages 

# Test all Spanish captions are present. PowerShell error returned, if translations are missing.

Test-NAVApplicationObjectLanguage –Source .\original\TAB14.TXT -LanguageId ESP

# Test all Danish captions are all present. Catch error situation and report nicely back to the script. 

try

{

Test-NAVApplicationObjectLanguage –Source .\original\TAB14.TXT -LanguageId DAN -ErrorAction Stop

}

catch

{

Write-Host “One or more translations are missing for the DAN language.” -ForegroundColor Yellow

}

# Test all Danish and Spanish captions are all present. With -PassThru a warning is reported and tranlation lines are returned for processing. 

Test-NAVApplicationObjectLanguage –Source .\original\TAB14.TXT -LanguageId ESP,DAN -PassThru

#20. Split or Join Language File

# Split an application translation file into per-object files

Split-NAVApplicationObjectLanguageFile -Source .\result\single.txt -Destination .\result -Force

# Join multiple application translation files into one combined file  

Join-NAVApplicationObjectLanguageFile -Source .\result\*-ESP.TXT -Destination .\result\JOINED-ESP.txt -Force

I will come with more details in my upcoming posts.

Upgrade in Microsoft Dynamics NAV 2016

Upgrade Considerations Preparing for Upgrade in Microsoft Dynamics NAV 2016

If your solution includes variables where the name is now used by a standard C/AL function or statement such as REGISTERTABLECONNECTION or FOREACH, you must change the variables before you upgrade to Microsoft Dynamics NAV 2016. Alternatively, you can enclose the variable names in quotation marks.

If you are upgrading a solution that depends on functionality that is deprecated or changed in the default version of Microsoft Dynamics NAV 2016, you must verify that the upgrade codeunits migrate data correctly. From 2013-R2 not yet reported any under this category.

When you introduce changes to the database schema in Microsoft Dynamics NAV 2016, Microsoft Dynamics NAV will check if these changes are destructive or not. If the database check indicates that the change may lead to data deletion, such as if you are dropping a table column so that the contents of that column will be deleted, this is considered a destructive change. You will be prompted to handle the situation using upgrade codeunits. You can check out my earlier post on this topic here. Data Upgrade – in Navision 2015 it still valid for 2016, I will come up with any specific differences in my upcoming post later.

If a company name includes a special character, an error may display during the upgrade. In this context, special characters include the: [ ~ @ # $ % & * ( ) . ! % – + / = ? ]. If you are going to upgrade a database where one or more company name includes a special character, it is recommend that you rename the company before you start the upgrade process. After the upgrade is successfully finished, you can rename the company again.

Versions later than Microsoft Dynamics NAV 2013 R2 require that all columns in all system tables are in English. As a result, if you try to open a database with non-English system tables in Microsoft Dynamics NAV 2013 R2 or later, an error displays, saying that one or more columns do not exist. Make sure that all objects where compiled in a development environment with the right .ETX and .STX files. You can verify that you are running in the correct environment with English (US) as the base language by opening the ndo$dbproperty table in SQL Server Management Studio. In the Identifiers column, the word Object must be written exactly as shown here.

Converting a Database in Microsoft Dynamics NAV 2016

Before you start, make sure that you have applied the changes that are described in KB 2804640

Code corrections for some Microsoft Dynamics NAV 2013 reports to prevent compilation errors with Report Viewer 2012 when upgrading to later versions of Microsoft Dynamics NAV. Your will require to use partner login to access the hotfix. Click here for the Link.

You can choose to convert the old database and not upgrade your application. However, it is recommend that you upgrade the application objects as well so that your solution includes important application fixes and new functionality that is introduced in Microsoft Dynamics NAV 2016.

Upgrading the application will also reduce the amount of merging required to upgrade to the next major version of Microsoft Dynamics NAV, bringing you to the latest version of the product faster.

Preparing the Old Database for Conversion

  • Make a copy of the old database or create full database backup.

I have copied the database (Navision 2013/R2) and attached to the SQL for this operation:
Upgrade2016-1

  • Clear all Microsoft Dynamics NAV Server instance records from the dbo.Server Instance table in the database on SQL Server.

Upgrade2016-2

You can do this by using SQL Server Management Studio to open and clear the table.

  • Open the development environment that matches the Microsoft Dynamics NAV version of the old database, and then connect to the old database.
  • In Object Designer, make sure that no objects are locked.

If any objects are locked, the conversion process will not update the database version number. As a result, the conversion will not complete.

  • On the Tools menu, choose Build Server Application Objects, and then choose the Yes button.
  • If any errors occur, they are shown in the Error List window. Make sure that you address all compilation errors before you continue.
  • Upload the Microsoft Dynamics NAV 2016 Partner license to the database

The license that you upload must be a developer license. During the conversion, the development environment will convert the report objects that are stored in the old database to the RDL 2012 format.

  • If you are converting a Microsoft Dynamics NAV 2013 R2 or Microsoft Dynamics NAV 2015 database, then run the Sync-NavTenant cmdlet from the Microsoft Dynamics NAV 2013 R2 or Microsoft Dynamics NAV 2015 Administration Shell to synchronize the database schema changes.

Converting the Old Database

Next, we will convert the old database so that it can be used in Microsoft Dynamics NAV 2016.

Before you start the following procedure, you can choose to uninstall Microsoft Dynamics NAV 2013, Microsoft Dynamics NAV 2013 R2, or Microsoft Dynamics NAV 2015. When you uninstall Microsoft Dynamics NAV 2013, Microsoft Dynamics NAV 2013 R2, or Microsoft Dynamics NAV 2015, the database is still attached to the instance of SQL Server, which you can verify using SQL Server Management Studio.

To convert the database

  • Install Microsoft Dynamics NAV 2016.
  • Open the Microsoft Dynamics NAV 2016 development environment, and then connect to the database that you prepared in the previous task.
  • In the dialog box that appears, read the instructions carefully because this action cannot be reversed. When you are ready, choose the OK button, and then choose the OK button to confirm that you want to convert the database.

Upgrade2016-3

Microsoft Dynamics NAV will now convert the database. This includes an upgrade of system tables, and an upgrade of all reports to support Report Viewer 2012.

  • When you are notified that the conversion was successful, choose the OK button.

Upgrade2016-4

Upgrade2016-5

  • Connect a Microsoft Dynamics NAV 2016 Server instance to the converted database.

You use the Microsoft Dynamics NAV Server Administration tool to connect a Microsoft Dynamics NAV Server instance to the converted database.
Upgrade2016-6

In addition, you must add the service account that is used by the Microsoft Dynamics NAV Server instance as a member of the db_owner role in the Microsoft Dynamics NAV database on SQL Server.

It is also possible to script these steps in SQL Server Management Studio:

USE [master]

GO

CREATE LOGIN [domain\accountname] FROM WINDOWS

CREATE USER [domain\accountname] FOR LOGIN [domain\accountname]

GRANT SELECT ON [master].[dbo].[$ndo$srvproperty] TO [domain\accountname]

GO

USE [Microsoft Dynamics NAV Database]

GO

CREATE USER [domain\accountname] FOR LOGIN [domain\accountname]

ALTER ROLE [db_owner] ADD MEMBER [domain\accountname]

GRANT VIEW DATABASE STATE TO [domain\accountname]

You can check more details from my earlier post Provisioning the Microsoft Dynamics NAV Server Account.

  • Run the development environment as an administrator, and then set the development environment to use the Microsoft Dynamics NAV Server instance that connects to the database.

Upgrade2016-7

  • Run the schema synchronization to complete the database conversion.

You can run the schema synchronization from the Microsoft Dynamics NAV Development Environment or Microsoft Dynamics NAV 2016 Administration Shell.
Upgrade2016-8

From the development environment:

Open development environment as an administrator. On the Tools menu, choose Sync. Schema For All Tables, and then choose With Validation and follow the schema synchronization instructions.
Upgrade2016-9

Upgrade2016-10

From the Microsoft Dynamics NAV 2016 Administration Shell:

Open the Microsoft Dynamics NAV 2016 Administration Shell as an administrator, and then run Sync-NavTenant cmdlet as follows:

Sync-NavTenant –ServerInstance <ServerInstanceName>

Replace <ServerInstanceName> with the name of the Microsoft Dynamics NAV Server instance that is connected to the database

  • If the database references any assemblies (such as client control add-ins) that are not included on the Microsoft Dynamics NAV 2016 installation media (DVD), then add the assemblies to the Add-ins folder on Microsoft Dynamics NAV Server or Microsoft Dynamics NAV Windows client computers.

For the Microsoft Dynamics NAV Windows client, the default path is C:\Program Files (x86)\Microsoft Dynamics NAV\90\RoleTailored Client\Add-ins folder.

For Microsoft Dynamics NAV Server, the default path is the C:\Program Files\Microsoft Dynamics NAV\90\Service\Add-ins folder

In the development environment, on the Tools menu, choose Build Server Application Objects, and then, in the dialog box, choose the Yes button.
Upgrade2016-14

  • Fix compilation errors.

You can find all objects which did not compile in the Object Designer window, by setting a field filter on the Compiled field.

  • Upload the customer license to the converted database.

You have now completed the conversion of the Microsoft Dynamics NAV 2013, Microsoft Dynamics NAV 2013 R2, or Microsoft Dynamics NAV 2015 database to be accessed from Microsoft Dynamics NAV 2016. To test the converted database, you can connect it to the Microsoft Dynamics NAV 2016 Server instance that by Microsoft Dynamics NAV clients, and then open a client.

You may encounter some login issues to resolve it here are the few tips:

Delete the user login details as we do in earlier versions when RTC was introduced to access any database using SQL Query as below :

USE [Demo Database NAV (7-1)]  (use your database name)
GO

delete from [dbo].[User]

delete from [dbo].[Access Control]

delete from [dbo].[User Property]

delete from [dbo].[Page Data Personalization]

delete from [dbo].[User Default Style Sheet]

delete from [dbo].[User Metadata]

delete from [dbo].[User Personalization]

After this if you get error stating you don’t have permission to codeunit ApplicationManagement give permission in SQL to the Login running the service as below:

Upgrade2016-12

Upgrade2016-13

Next, upgrade the application code to Microsoft Dynamics NAV 2016.

I will come up with more details in my upcoming posts.

Data Upgrade – in Navision 2015

Microsoft Dynamics NAV 2015 introduces a new way of running the data upgrade logic that migrates data from the old table structure of an earlier Microsoft Dynamics NAV version to the new table structure of the current version.

The data upgrade process is now prepared and run with the help of new type of codeunit called the upgrade codeunit. The data upgrade process has been enhanced significantly to optimize the performance and provide developers with a superior tool for testing, automating, tracking progress and troubleshooting the data upgrade code. The new data upgrade approach has the following benefits and features:

  • Simplifies the upgrade environment because all steps are performed by the latest version of the Microsoft Dynamics NAV.
  • Increases the data upgrade performance because it is possible to run upgrade functions of upgrade codeunits in parallel (at the same time) and across companies.
  • Reduces the amount of code that is required to handle the data upgrade because several operations are now executed automatically by Microsoft Dynamics NAV Server.
  • Minimizes the number of manual actions that must be performed during the data upgrade, which makes the data upgrade process less error-prone.
  • Uses familiar upgrade toolkit design concepts, such as upgrade tables and upgrade functions.
  • Includes end-to-end sample Windows PowerShell scripts that perform a complete data upgrade.

Please check my earlier post on this topic for more detailed information.

Schema Synchronization in Microsoft Dynamics Navision 2015

Data Upgrade Codeunit in Navision 2015 Part-1

Data Upgrade Codeunit in Navision 2015 Part-2

Data Upgrade Codeunit in Navision 2015 – Part -2

We have seen how to create Upgrade code unit in our previous post.

Please go through it, if not seen earlier the Data Upgrade Codeunit in Navision 2015 – Part -1 here 

Let us continue from where we left our previous post.

We have created the Upgrade code unit to copy the data to upgrade table while performing destructive changes to My Sales Customer table.

We removed certain fields from the My Sales Customer table and the related information was moved to UPG My Sales Customer table.

Now it’s time to move these information to actual table we create for this purpose My Detailed Customer Entry table.

Although in this example this table will be exact copy of UPG My Sales Customer table, so simply we need to copy records to My Detailed Customer Entry table.

But some time we may require to add certain more field’s value while moving the data Like Entry No, Posting date to maintain the data integrity. Like think of some Service type of information you are maintaining then the same set of record may repeat number of times on different dates, then in this case we will require to add certain fields like Entry No. and Posting Dates.

Let us assume we will be maintain data of My Detailed Customer Entry in incremental way as of situation on every transaction. Balances will be maintained as of when transaction was performed.

Although this example is not feasible or practice but still we are continuing to just see how to write Upgrade Function for such purpose.

Our today’s task is to design and run data upgrade function to move data from the upgrade table to its new location.

Now the fields are deleted from the My Sales Customer table and the data is saved in the UPG My Sales table. The next step is to create the new table where the data will reside (My Detailed Customer Entry) and move the data into that table.

Let’s create the table to be used for recording of all future Customer Balances and to accommodate the data we already had in the My Sales Customer table and which we moved into the UPG My Customer table.

  • In the Object Designer select the Tables button and then select New button to create a new table
  • Define the table layout based on the layout shown in the Screenshot.

Upgrade Codeunit 2 - 1

  • In the Dev. Environment menu, select File-Save action to save the table.
  • On the Save dialogue, define ID, Name = My Detailed Customer Entry, and select OK to save the table.
  • Close the table editor.

We will now create a new function which will contain the code to migrate the data from the upgrade table to the new table.

Note that the FunctionType property of the newly created function is set to “Upgrade”. This is how the NAV server can later figure out which function from the upgrade codeunit it must execute.

The function marked as “Upgrade” function can call functions marked as “Normal” if necessary.

  • In the Object Designer select the Codeunits button, select codeunit 50000 UPGTK Codeunit and then select the Design button.
  • In the Dev. Environment menu, select View-C/AL Globals action and in the form which is opened select the Functions tab.
  • Enter the name of the function, e.g. UpgradeCustomerDetails

Upgrade Codeunit 2 - 2

  • Select the UpgradeCustomerDetails function on the Functions tab and then select the Locals button to define function parameters.
  • On the C/AL Locals form, select Variables tab and add 3 local variables as shown in the Screenshot section.
  • Close the C/AL Locals and C/AL Globals forms to return to the C/AL Editor.

Upgrade Codeunit 2 - 3

The code we add to the UpgradeCustomerDetails function will copy the data from the UPG My Sales Customer table to the My Detailed Customer Entry table and then clean up the UPG Vehicle table.

  • Code like the Screenshot into the UpgradeCustomerDetails function.

//>> Upgrade Code

EntryNo := 1;

WITH UpgCustomer DO BEGIN

IF FINDSET THEN

REPEAT

DetailedCustomerEntry.INIT;

DetailedCustomerEntry.”Entry No.” := EntryNo;

DetailedCustomerEntry.”Customer No.” := “Customer No.”;

DetailedCustomerEntry.”As of Date” := today;

DetailedCustomerEntry.”Last SO Value” := “Last SO Value”;

DetailedCustomerEntry.”Last Invoiced Value” := “Last Invoiced Value”;

DetailedCustomerEntry.”Total Outstanding Value” := “Total Outstanding Value”;

DetailedCustomerEntry.INSERT;

EntryNo := EntryNo + 1;

UNTIL NEXT = 0;

DELETEALL;

END;

//<<Upgrade Code

  • In the Dev. Environment menu, select File-Save action to save the codeunit.
  • On the Save dialogue select OK button.
  • Close the codeunit editor.

Upgrade Codeunit 2 - 4

  • In the Dev. Environment menu select Tools – Data Upgrade – Start… action.
  • Agree to the confirmation dialogue.
  • In the Start Data Upgrade window select the OK button.

You can start the data upgrade process from the Dev. Environment, or from Microsoft Dynamics NAV 2015 Administration Shell, using Start-NAVDataUpgrade cmdlet.

The NAV server will locate all upgrade codeunits and will invoke all upgrade functions within these codeunits for all companies in the database.

If you have multiple upgrade functions in your upgrade codeunit, you can choose to execute them in parallel or in sequence. You can also choose to stop at first error, or continue execution of other functions, see the list of all failed ones, fix them and start them again using the Data Upgrade – Resume… action.

  • In the Dev. Environment menu select Tools – Data Upgrade – Start… action.
  • Agree to the confirmation dialogue.
  • In the Start Data Upgrade window select the OK button.

Upgrade Codeunit 2 - 5

Upgrade Codeunit 2 - 6

  • In the Object Designer select the Tables button, then select table My Detailed Customer Entry and select Run button

Upgrade Codeunit 2 - 7

You can see that the data from the upgrade table was successfully transferred into the new table.

Now since our data is sitting in its right place, now we can remove objects we are using for Upgrade purpose.

Now the data upgrade is completed and we need to remove the objects used within that process.

Force-delete the upgrade table, since the data was already transferred into the new table.

Delete the upgrade codeunit to make sure the old synchronization instructions defined in it are not used by the NAV server when you decide to change the My Sales Customer table again. Alternatively (if you want to reuse the upgrade codeunit later) you can choose to change the type of the GetTableSynchSetup function to “Normal”.

Upgrade Codeunit 2 - 8

Now we are done with our Upgrade project.

Conclusion

This set of demonstrations have provide you the insight, new way of running the data upgrade in Microsoft Dynamics NAV 2015 by involving the schema synchronization and upgrade codeunits.

The new approach:

  • Simplifies the upgrade environment, since all steps are performed by the latest version of the product.
  • Increases the data upgrade performance, since it is possible to parallelize execution of the data upgrade functions within the upgrade codeunit and across companies.
  • Reduces the amount of code to be written to handle the data upgrade, since some actions are now executed automatically by the NAV Server.
  • Allows data upgrade to be invoked by the NAV server, minimizing the number of manual actions which should be performed during the data upgrade.
  • Uses familiar upgrade toolkit design concepts (e.g. upgrade tables, upgrade functions).

Previous Older Entries

Important

Most of the contents you find in this blog will be either inherited from MSDN or Navision Developer IT Pro Help. Some places images are also directly taken from these sites. Purpose is simple to try those stuffs and re-produce adding few things as per my understanding to make easy understanding for others and quick reference.

Here nothing under my own brand or authorship of the content. At any point of time we are just promoting Microsoft stuffs nothing personnel with same.

Hope stuffs used here will not violate any copyright agreement with them. In case by mistake or in-intestinally it happens and the Microsoft feels these should not be used Microsoft have full right to inform me about same and will be glad to take down any such content which may be violating the norms.

Purpose is to promote Navision and share with community.

FB Profile

Like FB Page

%d bloggers like this: