25Nov

What’s new: Extension for Microsoft Dynamics NAV 2016

We all have seen the situation where we need to put in lot of efforts to modify the standard NAV object in order to run our custom add-on solutions with standard NAV codebase. With the frequent release of cumulative updates for NAV 2013 version onwards, maintaining and deploying the add-on solutions became further complex.

So with the introduction of Microsoft Dynamics NAV 2016, Microsoft has introduced extensions as a new feature which enable us to modify our Microsoft Dynamics NAV system without directly altering the source codes, making it easier to deploy, manage, and upgrade customizations or extensions.

While a developer can still use the existing Microsoft Dynamics NAV Development system to customize or extend Microsoft Dynamics NAV, a new set of Windows PowerShell cmdlets have been introduced by which one can add changes into a proprietary package format, and these extensions are named as .navx package files.

These packages can be installed, and more importantly uninstalled, from a Microsoft Dynamics NAV system with ease. Again packages can be automatically upgraded through the installation process using the cmdlet script introduced in NAV 2016 therefore upgrading to newer versions is made easier.

Image1

If we try to understand Extensions in simpler terms then extensions are the runtime application of objects and object deltas for a specific combination of extension.

When an extension is published to a Microsoft Dynamics NAV deployment, it compiles the objects in it against the current application database, at runtime, it simply loads the associated objects for that app and tenant.

By doing this, we remove the need to merge code but we also introduce some limitations, specifically on what properties you can modify on objects such as pages and tables, and there are complete restrictions on altering existing codeunit

An extension package can contain both new and modified objects. In Microsoft Dynamics NAV 2016, the following object types can be added and included in an extension:

  • Pages
  • Tables
  • MenuSuites
  • Codeunits

You can also modify existing objects of the following types as permitted by your license:

  • Pages
  • Tables
  • Action Items

Note: The main difference from classical development is that source code modifications are not allowed. Instead, you use C/AL events to extend and customize objects.

New system tables are added to support extensions. 

Image2

Below is the quick details for the same:

  • NAV App Object Metadata – Stores the metadata deltas for an extension.
  • NAV App Tenant App – Contains all extensions that are installed to tenants and part of the application database. This table is synchronized with NAV App Installed App in the tenant databases and is used to drive runtime decisions about tenant/app relationships. It is also watched for changes by each Microsoft Dynamics NAV Server instance to support on-the-fly app switching.
  • NAV App Data Archive – Points to tables created to archive data for extensions that have been uninstalled. Used to provide access to the data when the extension is reinstalled during an upgrade.
  • NAV App Installed App – Contains information about extensions that are installed in this tenant. This lives in the tenant database and is written/read on mount/unmount to make sure tenants keep track of their apps even when detached from an application database. 
  • NAV App - Contains all extensions that are published to the system. This is part of the application database.
  • NAV App Dependencies – List of dependencies for individual extensions that are published to the system.
  • NAV App Capabilities – List of capabilities for each extension that is published to the system. Pulled from the manifest at publication time.
  • NAV App Object Prerequisites – List of prerequisite objects for individual extensions that are published to the system.
  • Tenant Permission Set - Defines the mapping between extensions and permission sets.
  • Tenant Permission – Contains permissions for objects as defined by permission sets in extension packages.

New Virtual table introduced for extension which we can used while building the extension:

  • AllObj, AllObjWithCaption includes new objects from all installed extensions based on the current session/tenant.
  • AllObj, AllObjWithCaption includes the App Package ID field (empty GUID for base objects, package id GUID if object comes from an extension)

Now in my next blog I will try to demonstrate how to create extension for Microsoft Dynamics NAV 2016. In case anyone has query please write back to me on subhash.sharma@ecanarys.com

Related

NAV – Connecting Microsoft Dynamics CRM customized entities

This blog is intended to see how Microsoft Dynamics NAV (here onwards NAV) can be connected to exter...

Read More >

NAV – Connecting External SQL

This blog is intended to see how Microsoft Dynamics NAV (here onwards NAV) can be connected to exter...

Read More >

VSTS Area Uploader

VSTS Area Uploader helps you to upload Areas (with multiple level) to your VSTS Team Projects from a...

Read More >

VSTS Team project Monitor

Let us discuss how to install VSTS team project monitor and how we can make use of it easily.Particu...

Read More >

How to run NAV 2015 and NAV 2016 Administration tool side by side

Everyone would have installed NAV 2016 RTM and would have faced the same problem, i.e, you couldn...

Read More >

Autofill RecVariable Name in DynamicsNAV 2015

I discovered something quite interesting couple of week back and I thought it was worth sharing.When...

Read More >

How to Remove the Departments Action Button in NAV 2015

Some customers may not want to use Departments menu available. We need to have some option to remove...

Read More >

How to print TransHeader and TransFooter in Microsoft Dynamics NAV RDLC reports

We know that TransHeader and TransFooter section types were available in NAV 2009 version but there ...

Read More >

How to Customize the Microsoft Dynamics NAV 2013 R2 Splash screen Image

I think I got late with this post, but I was unaware that most of us still don’t know how to c...

Read More >

Microsoft Dynamics NAV 2013 R2 Chart Generator

In general chart means visual display of information, this is one such feature that is introduced in...

Read More >

Share

Post a Comment

  • Recent
  • Popular
  • Tag
Monthly Archive
Subscribe
Name

Contact Us
  • *
  • *