Announcement

Announcing the Microsoft Dynamics NAV Universal App (Dynamics NAV v2.0)

Maybe you’re already familiar with Dynamics NAV on your tablet. Well, things just got even more flexible. You can now experience the power and simplicity of the Microsoft Dynamics NAV Universal App on your preferred iOS, Android or Windows device – be it phone, phablet, tablet, laptop, or desktop – it’s all up to you. Switch to your favorite device on the go, during meetings, in the office, at home on the couch using the same app, accessing your Dynamics NAV business data from everywhere.

For more details see below link :-

https://blogs.msdn.microsoft.com/nav/2015/10/22/announcing-the-microsoft-dynamics-nav-universal-app-dynamics-nav-v2-0/

Data Model, Development Tips, Excel, How To, Information, Instalation & Configuration, Office Integration, PivotTable, Power View, PowerBI.com, PowerPivot

PowerPivot in Excel 2013

I started the series in End of September and Starting of October on PowerPivot, Power View, PivotTable & Reports but in-between the release of Navision 2016 all the topics got scattered between other posts and I didn’t ended the topic.

Here I present all the posts link at one place which you can use as table of content for easy access and to help if any one wish to start from beginning and learn all the features & Topic on same.

PowerPivot for Excel

Start the Power Pivot in Microsoft Excel add-in

Troubleshooting: Power Pivot Ribbon Disappears

PowerPivot Creating a Data Model in Excel 2013

Adding more tables to the Data Model using Existing Connection – In PowerPivot

Add relationships to Data Model in PowerPivot

How to add Filter for data retrieval in PowerPivot Data model.

Create a calculated column in PowerPivot

Creating My First Report using PowerPivot

Basics of Power Pivot for Excel – 2013

Add Slicers to PivotTables in PowerPivot

Power View in Excel 2013

Import data using copy and paste from Excel sheet or other source for PowerPivot Data Model.

Add Excel Sheet/Table to the PowerPivot Data Model

Add a relationship using Diagram View in Power Pivot

Extend the Data Model using calculated columns

Create a hierarchy in PowerPivot Data Model

Use hierarchies in PivotTables

Create a Power View report

Create a calculated field in PowerPivot

Set field defaults in PowerPivot

Set Table Behaviour in PowerPivot

Set Data Categories for fields in PowerPivot

I will come up with more details once I get some time to explore and find anything which I feel is good to share with the community.

Till then keep Learning, Exploring and Practicing.

Corfu Navision 2016, Development Tips, How To, Information, upgrade

Upgrading the Application Code in Microsoft Dynamics NAV 2016

Continuing from my earlier post Upgrade in Microsoft Dynamics NAV 2016

No doubt typically, customers want all the customizations that have been implemented in their existing Microsoft Dynamics NAV databases to be migrated to their new Microsoft Dynamics NAV 2016 databases.

Depending on the version of Microsoft Dynamics NAV that a database is being upgraded from, the amount of code changes between the two versions is large or small.

To upgrade the application code, you must merge code from different versions of the application. This merge process is known as a code upgrade or application upgrade.

You must upgrade the application before you upgrade the data.

Application Upgrade Overview

You must analyze and process code changes by comparing and evaluating three separate versions of the Microsoft Dynamics NAV database:

Version Description
Original version This is the baseline version of the solution that you want to upgrade, such as the original release of Microsoft Dynamics NAV 2013.
Modified version This is the version that you want to upgrade, such as a customer’s database with customizations and add-on solutions.
Target version This is the target of the merge process that you want to upgrade your application to, such as the standard version of the Microsoft Dynamics NAV 2016 database.

When you merge the application objects from these three versions, you can import the result into a new Microsoft Dynamics NAV 2016 database that then contains the upgraded application.

At the end of the process, you export the merged Microsoft Dynamics NAV 2016 objects from this database to a .fob file that you will use during the data upgrade.

The following list describes the main steps of upgrading the application code:

  • Prepare the application object text files.
  • Merge versions.
  • Resolve conflicts
  • Import and compile the merged application objects.
  • Export all objects.

To begin, create five folders on the computer and name them as follows:

In my example, the UpgradeDemo folder on the C drive 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.

Preparing the Text Files

The Microsoft Dynamics NAV cmdlets take text files as input. You must prepare three sets of text files that contain application objects as describes in the list above. You can export application objects to text files from the development environment, or by running the ExportObjects command. The following list describes the main steps of preparing the text files that you must provide as input for the application merge process.
Upgrade2016-15

  • First, export all application objects from the original version, such as the original Microsoft Dynamics NAV 2013 R2 database. Do not export system tables. Name the file OldBaseVersion.txt, and then save the file in the ORIGINAL folder that you created earlier. For example, the Microsoft.Dynamics.Nav.Model.Tools.psd1 module includes a function, Export-NAVApplicationObject, that runs the ExportObjects command. This means that you can run a command such as the following:

Export-NAVApplicationObject –DatabaseServer MyServer –DatabaseName “Demo Database NAV (7-1)” –Path C:\Upgrade\ORIGINAL\OldBaseVersion.txt

  • Next, export all relevant application objects from the modified version, such as the customized Microsoft Dynamics NAV 2013 database. Do not export system tables. Name the file OldCustomVersion.txt, and then save the file in the MODIFIED folder that you created earlier.
  • Finally, export all application objects from the new base version, such as the original Microsoft Dynamics NAV 2016 database. Do not export system tables. Name the file NewBaseVersion.txt, and then save the file in the TARGET folder that you created earlier.

Optionally, you can use the Split-NAVApplicationObjectFile cmdlet to split each text file into separate text files for each application object. This can make it easier to keep track of the process. The end result at this stage is three folders with one or more text files that contain the three sets of application objects that you want to merge.

To compare two sets of application objects

  • Open the Microsoft Dynamics NAV 2016 Development Shell in administrator mode.
  • Navigate to the location of your folders by typing a command such as the following:

cd c:\UserData\UpgradeDemo  (in my case)

  • 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 ‘C:\UserData\Upgrade Demo\Original’ -ModifiedPath ‘C:\UserData\Upgrade Demo\Modified’ -DeltaPath ‘C:\UserData\Upgrade Demo\Delta’

Upgrade2016-16

Upgrade2016-17
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.
Upgrade2016-18
Let us understand how the changes are reported when we compare the objects.
Upgrade2016-19

Upgrade2016-20

You can apply those differences to TARGET by using the Update-NAVApplicationObject cmdlet.

To apply DELTA files to application objects

  • Open the Microsoft Dynamics NAV 2016 Development Shell in administrator mode.
  • Navigate to the location of your folders by typing a command such as the following:

cd c:\UserData\UpgradeDemo  (in my case)

In this example, the folder structure is the same as described above procedure. You can now run the cmdlet.

  • To run the cmdlet to apply the differences that are stored in the DELTA folder to the application objects in the TARGET folder, type the following command:

Update-NAVApplicationObject –DeltaPath ‘C:\UserData\Upgrade Demo\Delta’ -TargetPath ‘C:\UserData\Upgrade Demo\Target’ -ResultPath ‘C:\UserData\Upgrade Demo\Result’

Upgrade2016-21

Upgrade2016-22

This merges the difference between ORIGINAL and MODIFIED with the target solution and puts the resulting solution in the RESULT folder.

You can now import the merged objects into a Microsoft Dynamics NAV database.

Merging Versions

Alternatively to above process you can merge the three sets of application objects to create the application for the new database.

You can use the Merge-NAVApplicationObject cmdlet to merge the three sets of application objects.

The following example illustrates the type of command that you can run.

Merge-NAVApplicationObject -OriginalPath ‘C:\UserData\Upgrade Demo\Original’ -TargetPath ‘C:\UserData\Upgrade Demo\Target’ -ModifiedPath ‘C:\UserData\Upgrade Demo\Modified’ -ResultPath ‘C:\UserData\Upgrade Demo\Result’

Upgrade2016-23

Upgrade2016-24

Depending on the number of objects that you are merging and the number of differences found, this can take a few seconds, a few minutes, or longer.

The RESULT folder will contain a text file for each application object. The result of the merge is shown when the cmdlet completes, including a description of any application objects with conflicting code.
Upgrade2016-25

These conflicts are stored in .CONFLICT files in the RESULT folder. You can import all objects in the RESULT folder into the new Microsoft Dynamics NAV 2016 database, or you can analyze the conflicts before you import the objects.

Handling Conflicts

Depending on the application that you are upgrading, you can choose to analyze the conflicting code before you import the merged objects into the development environment.

The conflicts are shown in the merged text files but are also identified in .CONFLICT files in the RESULT folder. Subfolders then contain copies of the source files from the versions that have conflicting code.
Upgrade2016-26

You can analyze the conflicts in any tool, make the relevant changes, and then run the merge operation again. Alternatively, you can import the merged files into the development environment, and resolve the conflicts there.

Importing and Compiling Merged Objects

After you have completed the merge, import the new custom version into the new Microsoft Dynamics NAV 2016 database, and then compile all objects. You must resolve any compilation errors before you can continue.

The text files with the merged application objects include successfully merged code, and code that is partially merged. You can import the partially merged objects into the Microsoft Dynamics NAV 2016 development environment and resolve the conflicts there.

You can use Import-NAVApplicationObject, that runs the ImportObjects command.

This means that you can run a command such as the following:

Join-NAVApplicationObjectFile -Source ‘C:\UserData\Upgrade Demo\Result\*.txt’ -Destination ‘C:\UserData\Upgrade Demo\FinalMergedObjects\all-merged.txt’

Upgrade2016-27

First we will join the many text files into a single file using above command and as a result we get all-merged.txt file which we will import in database using below command.

Import-NAVApplicationObject –DatabaseServer MyServer –DatabaseName “My Upgraded App” –Path C:\Upgrade\all-merged.txt

Now we import objects obtained from previous step into an existing, empty database.
Upgrade2016-28
When you compile the objects, an error is thrown for each code conflict, and you can use the tools that are available in the development environment to resolve the conflicts.

You now have a new database with a fully upgraded application.

Exporting All Objects

Now, you must export all objects to an objects.fob file so that you can import them when performing the data upgrade. The export must include customized objects, upgraded reports, and all other Microsoft Dynamics NAV 2016 objects.

This completes the upgrade of the application code. Next, you must upgrade the data in the database.

However you are free to do object merge and upgrade as you do earlier, here I concentrated using Dynamics Navision 2016 Development Shell. As this is the new way also much faster than what we used to do earlier.

We can use this in identifying the Objects under different categories like Modified, having conflicts and New Objects which can help in estimating also and planning the action in advance.

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

Corfu Navision 2016, Development Tips, How To, Information, upgrade

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.

Uncategorized

Test Isolation in the Application Test Automation Suite | Dynamics NAV Team Blog

https://blogs.msdn.microsoft.com/nav/2015/10/19/test-isolation-in-the-application-test-automation-suite/

Uncategorized

Email Logging with Exchange Online in Microsoft Dynamics NAV 2016 | Dynamics NAV Team Blog

https://blogs.msdn.microsoft.com/nav/2015/10/16/email-logging-with-exchange-online-microsoft-dynamics-nav-2016/

Uncategorized

Integration Events in Microsoft Dynamics NAV 2016 | Dynamics NAV Team Blog

https://blogs.msdn.microsoft.com/nav/2015/10/15/integration-events-in-microsoft-dynamics-nav-2016/

Uncategorized

Accounting Services Role Center for Dynamics NAV 2016 | Dynamics NAV Team Blog

https://blogs.msdn.microsoft.com/nav/2015/10/14/accounting-services-role-center-for-dynamics-nav-2016/

Uncategorized

Upgrade Considerations for Document Approvals | Dynamics NAV Team Blog

https://blogs.msdn.microsoft.com/nav/2015/10/13/upgrade-considerations-for-document-approvals/

Uncategorized

Approval Types in Workflow for Microsoft Dynamics NAV 2016 | Dynamics NAV Team Blog

https://blogs.msdn.microsoft.com/nav/2015/10/13/approval-types-in-workflow-for-microsoft-dynamics-nav-2016/