Publishing and Installing an Extension v2.0

Original URL…

  1. Publish and synchronize an extensión
  2. Install an extension
  3. See Also

The AL developer environment is evolving with frequent updates. To stay up to date on the latest information and announcements, follow us on the Dynamics NAV Team Blog.

To make your extension available to tenant users requires three basic tasks: publish the extension package to the Dynamics 365 Business Central server instance, synchronize the extension with the tenant database, and install the extension on the tenant.

Note

This article describes how to publish and install the first version of a V2 extension. If you want to publish an install newer version of an extension, see Upgrading Extensions V2.

Publish and synchronize an extension

Publishing an extension to a Dynamics 365 Business Central server instance adds the extension to the application database that is mounted on the server instance, making it available for installation on tenants of the server instance. Publishing updates internal tables, compiles the components of the extension behind-the-scenes, and builds the necessary metadata objects that are used at runtime.

Synchronizing an extension updates the database schema of the tenant database with the database schema that is defined by the extension objects. For example, if a table or table extension is included in the extension, then the respective full or companion table is created in the tenant database.

To publish and synchronize an extension

  1. Start the Microsoft Dynamics NAV Administration Shell.
  2. To publish the extension, run the Publish-NAVApp cmdlet.The cmdlet takes as parameters the Dynamics 365 Business Central service instance that you want to install to and the .app package file that contains the extension. The following example publishes the extension MyExtension.app to the YourDynamicsNAVServer instance.
  • Publish-NAVApp -ServerInstance YourDynamicsNAVServer -Path ".\MyExtension.app"
    
  • To synchronize the schema of a tenant database to the extension, run the Sync-NavApp cmdlet.The following example synchronizes the extension MyExtension with the tenant:

 

  1. Sync-NavApp -ServerInstance YourDynamicsNAVServer -Name ExtensionName 
    -Path “.\MyExtension.app” -Tenant TenantID
    

    Replace TenantID with the tenant ID of the database. If you do not have a multitenant server instance, use default or omit this parameter.

The extension can now be installed on tenants.

Install an extension

After you publish and synchronize an extension, you can install it on tenants to enable the extension and make it available to users in the client. Installing an extension can be done from the Dynamics 365 client or Microsoft Dynamics NAV Administration Shell.

Note

Installing an extension will run any installation code that is built-in to the extension. Installation code could, for example, perform operations like populating empty records with data, service callbacks and telemetry, version checks, and messages to users. For more information, see Writing Extension Install Code.

To install an extension by using Microsoft Dynamics NAV Administration Shell

  1. Start the Microsoft Dynamics NAV Administration Shell.
  2. To install the extension on one or more tenants, use the Install-NAVApp cmdlet.The following example installs the extension My Extension for Tenant1 and Tenant3. In single-tenant deployments, you either specify default as the tenant ID, or you omit the –Tenant parameter.
  1. Install-NAVApp -ServerInstance YourDynamicsNAVServer -Name 
    ”My Extension” –Tenant Tenant1, Tenant3  
    

To install an extension by using the client

  1. In Dynamics 365 Business Central , use search to open the Extension Management page.In the Extension Management window, you can view the extensions that are published to your server. For each extension, you can see the current installation status.
  2. Choose an extension to see additional information and to install the extension.
  3. Review and accept the license agreement.
  4. Choose the Install button to install the extension.

See Also

Unpublishing and Uninstalling Extensions
Developing Extensions

Anuncios

¿THE QUESTION? – UPGRADE VS EXTENSIONS – NAV Extensions after the release of Dynamics NAV 2018

Original URL…

he built-in Visual Designer in Dynamics NAV 2018 and Visual Studio Code are expected to replace the familiar C/SIDE environment as a development tool. However, that’s not just a matter of clicking on a button. It means learning a new way of development, a new language (with old components, though) and a new way of deploying customizations.

All customizations, including customizations on top of customizations are going to become Dynamics NAV Extensions; and that’s a good thing for the industry.

.Net users might say, okay that’s how we do things anyway. But, for NAV developers, this is a big change because we are used to changing any existing piece of code.

So why not work towards a model that is as flexible as .Net and solves NAV upgrade issues as well? Let’s not stick with the traditional “copy-paste-modify” but just “reference-and-extend”.

The downside of customizations is that they often introduce challenges when upgrading Dynamics NAV. It’s exponentially harder to upgrade a solution from one version to the next when changes have been made to the underlying solution. Dynamics NAV Extensions, particularly the latest version – Extensions 2.0 – solves this problem.

Instead of defining customizations in the original source code, Dynamics NAV Extensions are written in parallel with the solution source. The integration with the source code is handled with events.

An extension can add new objects and extend existing objects that are present in the solution. The extension code is packaged in a file, which you can easily deploy to your solution. This allows you to upgrade the underlying solution and, as long as the events remain, the extension will behave in the same way from version to version.

With Dynamics NAV 2018, you can have multiple extensions installed. It’s also possible to make a dependency reference from one extension to another. The question is “how?”  When downloading symbols, you’re only getting system and application data.

Please be aware, that several of the extensions installed in NAV2018 are still V1 extensions, and you can reference and download symbols, but the symbol file is empty. So currently it’s not possible to reference a V1 extension from a V2.

 

More Info…

Dynamics NAV solutions can be customized by partners, value-added resellers (VARs), and even some customers. This is an important benefit of the product and the service continues to be available. However, it has traditionally been carried out by overlayering the application code. The move to the cloud with more agile servicing and frequent updates requires a less intrusive customization model that makes updates less likely to impact custom solutions. This new model is called Dynamics NAV Extensions and will probably replace customization.

Dynamics NAV Extensions are a way for Microsoft Dynamics NAV developers and ISVs to extend the functionality of NAV without modifying Microsoft’s original source code. With the new model, when you come to upgrade Dynamics NAV with a cumulative update, you no longer need to merge all the customized objects. That means less upgrade issues.

With NAV Extensions, you can add functionality without changing the standard solution from Microsoft. This has the obvious advantage that major NAV upgrade projects are no longer necessary. Once you are using Extensions, the customizations no longer represent a problem when upgrading to the latest version of the solution.

If you want to prepare for this new model, you should start to work with Dynamics NAV Extensions today.

Barriers to editing Dynamics NAV extensions

Dynamics NAV Extensions are packages that contain additional functionality, report layouts (at least starting in NAV 2017), permissions, and more. The packages can be easily installed, uninstalled and upgraded without affecting the Dynamics NAV source code.

Once the Dynamics NAV extension package has been created, it is no longer easy for others to view the code of the extension, which means that your code is protected. You can view the source code of an extension through the debugger, but you cannot access the code through the development environment and you can’t modify an extension unless you have the source code.

Technically, there is no real problem. The new solution will work and the customer will be able to use the custom functionality. However, if another party wanted to further modify the functionality, it would not be possible because the functionality can only be modified if the developer has the source code.

Evolution of Dynamics NAV Extensions

Dynamics NAV Extensions Version 1

Microsoft Dynamics NAV 2016 incorporated Extensions V1. However, at that stage it was more of a concept than a practical working tool. In reality, it was quite a pain to develop customizations with Dynamics NAV Extensions because you had to restructure code and not all object types could be extended – only pages, tables and code units.

Dynamics NAV Extensions Version 1 did not include:

  • Add-Ins
  • Web services
  • Job Queues
  • Reports
  • Translations and much more

These customizations are usually easy to create using events. So, you can raise an event in your extension and have another extension subscribe to this event, perform certain actions and pass data back. In Extensions V1, this is difficult to do, because you actually need to provide the source code of your extension to everyone who wants to work with your events or with your data structure.

Dynamics NAV Extensions Version 2

Dynamics NAV Extensions V2 helps create a more modern development environment that supports better functionality. You can actually add your events, raise them and then subscribe to them in another extension. You can also use their tables or other functionality without requiring the source code of the base extension.

Microsoft Visual Studio Code downloads the symbols for all dependent extensions. This means, as long you have the base extension installed in your development system and define this extension as a dependent extension, you can subscribe to the event.

How Dynamics NAV Extensions can make Dynamics NAV upgrades easier

We believe that in most cases, NAV Extensions can help developers to upgrade without any problem. Why in most? Because during any Dynamics NAV upgrade we currently carry out (which is classic, nothing to do with Extensions), we can upgrade the most part of the code without conflicts.

What about the exceptions? There are just a few scenarios where you may need to rethink your solution. Here are some examples:

  • When new functionality in an upgraded version of NAV can replace your extension. However, they probably can co-exist.
  • When Microsoft redesigns part of a solution. Even this doesn’t need to be a major problem. If, for example, you are upgrading to NAV2017, a major redesign of CU80 isn’t that much of a problem thanks to the hooks pattern. Decent code design always helps. If you have been using extensions, you would have been using events anyway, so that’s even less of a problem.

Visual Studio Code and Dynamics NAV Extensions

Visual Studio Code (VS Code) is a lightweight source code editor, running on Windows, Mac and Linux. Developing for NAV on your Linux box, doesn’t that sound cool? It has built-in support for JavaScript, TypeScript and Node.js. And it supports extensions (but not NAV Extensions) for other languages, like C#, Python and PHP.

The Microsoft NAV team has created a new VS Code extension that enables the creation of objects in AL language. But beware; creating a VS Code extension for a completely new language is not straightforward! It requires the creation of a model to support intelligence and the creation of a new compiler. That sounds easy, but it is not.

NAV Extensions after the release of Dynamics NAV 2018

The built-in Visual Designer in Dynamics NAV 2018 and Visual Studio Code are expected to replace the familiar C/SIDE environment as a development tool. However, that’s not just a matter of clicking on a button. It means learning a new way of development, a new language (with old components, though) and a new way of deploying customizations.

All customizations, including customizations on top of customizations are going to become Dynamics NAV Extensions; and that’s a good thing for the industry.

.Net users might say, okay that’s how we do things anyway. But, for NAV developers, this is a big change because we are used to changing any existing piece of code.

So why not work towards a model that is as flexible as .Net and solves NAV upgrade issues as well? Let’s not stick with the traditional “copy-paste-modify” but just “reference-and-extend”.

The downside of customizations is that they often introduce challenges when upgrading Dynamics NAV. It’s exponentially harder to upgrade a solution from one version to the next when changes have been made to the underlying solution. Dynamics NAV Extensions, particularly the latest version – Extensions 2.0 – solves this problem.

Instead of defining customizations in the original source code, Dynamics NAV Extensions are written in parallel with the solution source. The integration with the source code is handled with events.

An extension can add new objects and extend existing objects that are present in the solution. The extension code is packaged in a file, which you can easily deploy to your solution. This allows you to upgrade the underlying solution and, as long as the events remain, the extension will behave in the same way from version to version.

With Dynamics NAV 2018, you can have multiple extensions installed. It’s also possible to make a dependency reference from one extension to another. The question is “how?”  When downloading symbols, you’re only getting system and application data.

Please be aware, that several of the extensions installed in NAV2018 are still V1 extensions, and you can reference and download symbols, but the symbol file is empty. So currently it’s not possible to reference a V1 extension from a V2.

Microsoft tools for automatic migration to Dynamics NAV Extensions

To help develop solutions for this new programming environment, you can use a set of new Microsoft developer tools to build, test, and deploy NAV Extensions.

Microsoft In-App Designer

In the client, you can switch to In-App Designer mode. This enables you to change the look and feel of the client quickly and easily. Using this tool, you can define the elements (such as fields or groups) that appear on a page and change how they are displayed. You can also use In-App Designer as an interactive tool to create extensions based on changes you make in the client.

Microsoft In-App Designer includes a wide range of important features, such as:

  • Adding a field from the source table to a page
  • Moving a field to another position on a page
  • Removing a field from a page
  • Previewing your design in desktop, tablet, and phone clients
  • Saving the changes for the tenant or saving as an extension package file in Visual Studio Code.
  • Microsoft Dynamics NAV Developer Preview 3 (Coming soon)
  • Changing the caption of a field on the page.
  • Adding, moving, renaming, and removing an action.
  • Adding, moving, and removing page parts.
  • Adding new pages

Conclusion

Erik Ernst, a Microsoft Dynamics NAV MVP, commented, “Personally, I’m thrilled about these new extensions. Not so much because they are special or fantastic. But because they allow me easily to remove them again, or simply not install them. The future direction is clear. Some years down the road, then we will only have the World-Wide version. Localizations are just Extensions, either coming from Microsoft or ISVs.”

A statement from Microsoft added, “There are no plans to stop partners from modifying NAV. But you can see it as an option to transform gradually and get your developers used to using Dynamics NAV Extensions when possible, which will also have a side effect of making upgrades easier. So it should be more of a journey than a hard point in time when you must move from one way of doing things to another.”

At Simplanova, we truly believe that Dynamics NAV Extensions is the solution for many of the pain points we have today. Maybe they are not completely fixed yet, but in the near future they will be! That applies to on-premise, for customizations, and for your private and public cloud. And guess what, for Dynamics365, they are already there!

Add-on upgrade to extensions has become much more relevant with Microsoft Dynamics NAV 2018 version and Extensions 2.0. If you choose Simplanova services to upgrade your Add-on to NAV Extensions, we will move Dynamics NAV code customization to events and redesign the code for a successful migration from Add-on to Extensions.

Simplanova has long experience in Microsoft Dynamics NAV services for ISV and VAR partners. If you would like to discuss how our Dynamics NAV Extensions service can help your business, just fill in the form below.

The post Dynamics NAV Extensions will make NAV upgrades much easier appeared first on Simplanova.

Upgrading to Microsoft Dynamics NAV 2018

Original URL…

Applies to: Microsoft Dynamics NAV 2018. See Microsoft Dynamics NAV 2017 version.

This topic provides an overview of how to upgrade to Microsoft Dynamics NAV 2018. The upgrade process depends on different factors, such as the version of Dynamics NAV that you are upgrading from, and the degree to which your solution differs from the standard version of Dynamics NAV. The mains tasks range from converting the database to upgrading application code and data.

Use the following table to determine the procedures that you must complete for your upgrade scenario.

Scenario Procedures
Full upgrade from one of the following versions:

  • Microsoft Dynamics NAV 2015
  • Microsoft Dynamics NAV 2016
  • Microsoft Dynamics NAV 2017
  1. Upgrade the Application Code
  2. Upgrade the Data
Full upgrade from one of the following versions:

  • Microsoft Dynamics NAV 2013
  • Microsoft Dynamics NAV 2013 R2
  1. Upgrade to Microsoft Dynamics NAV 2018 Cumulative Update 2:
    1. Download Microsoft Dynamics NAV 2018 CU2.
    2. Upgrade the Application Code
    3. Upgrade the Data
  2. Upgrade to the latest Microsoft Dynamics NAV 2018 cumulative update (CU):
    1. Upgrade the Application Code
    2. Upgrade the Data
Full upgrade from one of the following versions:

  • Microsoft Dynamics NAV 2009 SP1
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 5.0
  • Microsoft Dynamics NAV 4.0
  1. Upgrade to Microsoft Dynamics NAV 2013.
    For more information, see Upgrading to Microsoft Dynamics NAV 2013 in the MSDN Library.Alternatively, you can upgrade from Microsoft Dynamics NAV 2009 SP1 or Microsoft Dynamics NAV 2009 R2 to Microsoft Dynamics NAV 2015 as described on the Dynamics NAV Team Blog.
  2. Upgrade to Microsoft Dynamics NAV 2018 Cumulative Update 2.
    1. Download Microsoft Dynamics NAV 2018 CU2.
    2. Upgrade the Application Code
    3. Upgrade the Data
  3. Upgrade to the latest Microsoft Dynamics NAV 2018 cumulative update (CU) by following steps a and b above.

After the upgrade, links between interaction records and logged email messages is lost. To resolve this issue, the administrator has to log all mails again to restore the links. For more information, see Logging Interaction Links are Lost When You Upgrade from Microsoft Dynamics NAV 2009 R2.

Technical upgrade of Microsoft Dynamics NAV 2018 database to a new platform version with no application changes, such as with a cummulative update

You can also use this procedure to convert a previous Dynamics NAV database to Microsoft Dynamics NAV 2018 technical requirements, and then upgrade the application and data later.

Before you begin the upgrade process, see Upgrade Considerations for tips about things to consider when you prepare to upgrade to Microsoft Dynamics NAV 2018.

Automating the Upgrade Process using Sample Windows PowerShell Scripts

You can use Windows PowerShell scripts to help you upgrade to Microsoft Dynamics NAV 2018. You can use automation to upgrade a single Dynamics NAV database as well as multiple Dynamics NAV databases that use the same application. Microsoft Dynamics NAV 2018 provides sample scripts that you can adapt for your deployment architecture. For more information, see Automating the Upgrade Process using Sample Windows PowerShell Scripts.

See Also

Product and Architecture Overview
Migrating to Multitenancy
Deployment
Transforming Forms to Pages

On Harleys, mad gods and Dynamics NAV

Original URL…

I could have named this blog post Living with extensions in a hybrid Dynamics NAV database. The title I went with is far cooler though. And since I write this stuff mostly for my own enjoyment you get stuck with the cool title.

You see, a little over a year ago I traded in my trusty old bike for a Harley Davidson. It is an awesome bike. Riding it feels like having the mad god of Milwaukee steel shred the fabric of reality and smash you face first through the black hole thus created. I love it and until I can buy the flying steam train out of Back to the Future it is my preferred mode of transport.

It did create a bit of a problem though. I had wrenched on my old bike for years. I knew it inside out, and my thirty year old metric spanners worked perfectly well on it.

Harley Davidson though does not do metric though. Metric tools lack something undefined. They are perhaps too refined for something as cool as a Harley. So I had to get a whole new set of inch sized tools. And that is not the only difference. There is a whole different planet of aftermarket parts for Harleys. I had to find out where to get the stuff I needed to do a simple oil change. It was infuriating.

But I guess that is change. More than a year later I still can’t guess if I need a 1/2 or 9/16th inch wrench but mostly I am happy on planet Harley.

And that brings us back to Dynamics NAV. Or Business Central or whatever you want to call it. Our environment has changed. We have had a major change in the way we work and we are still trying to make sense of it. Sometimes it feels as if the not so mad god of Danish sensibility has left us to an uncertain world of extensions, API’s and all sorts of other things that we can’t make head or tail of.

Where I work (a Dynamics NAV end user) we decided to upgrade to Dynamics NAV 2018 and start working with extensions. And, as I learned to live with Imperial wrenches I am also learning to live with AL and Visual Studio Code. Mostly I like it. Not as much as C# but definitely more than C/AL. The biggest problems we experience are due to the fact that we are in an in between period. We are forever generating symbols because we still need to develop in C/Side. We are creating events in custom code in standard objects because we need to move on and develop new things. I still have doubts about how easy the upgrades will be when Microsoft decides to change the events we use. But upgrading will be easier, no doubt about that.

So basically what I want to say with this blog is this. Cheer up. Change is hard. It is inevitable but it sucks. It creates great opportunities and even bigger pains in the backside. But from where I stand we are going to a good place.

With extensions you can do everything you should do. The rest you should leave alone even in C/Side.

How does that good place look? Dynamics NAV (or Business Central if you must) systems with as little modification as we can get away with. Just customized enough to give our customers or employers a competitive edge. Connected to great server based web applications through API’s. Using machine learning to help our users make sense of the masses of data we create. And think of Azure functions. Great ways of decentralizing business logic and ensuring similar execution across several platforms.

So the future looks good. As long as we develop ourselves to be something more than Navision developers. Change is hard. But, as 15 months of riding a Harley Davidson taught me, change is also good.

And so I hoist my glass to the mad god of change. May we live in interesting times.

Before you move on there is one thing I want to point out. I am independent. I have zero desire to ever become a MVP. It is a great award and I am grateful to all MVP’s for sharing their knowledge but it is not for me. There is no advertising here because I value my independence much more than the €4 per month WordPress charges me for removing the ads. The only reason I write this is because I enjoy writing it. If anyone disagrees with my opinions then that is fine. This is my view.

Absorb what is useful. Discard what is not. Add what is uniquely your own. Bruce Lee

 

Developing NAV / Dynamics 365 Business Central Extensions with real-time collaboration

Original URL…

At Build 2018 Microsoft has showed the new collaborative features introduced for Visual Studio and Visual Studio Code, called Visual Studio Live Share.

With Visual Studio Live Share, you can share a collaborative session with your co-workers and start writing code together in real-time. Wonderful isn’t it? Why not test this feature with Visual Studio Code when developing AL Extensions for NAV or Dynamics 365 Business Central?

In order to activate this feature, open Visual Studio Code and on the Extensions Marketplace search and install the VS Live Share extension:

VSLiveShare_01.jpg

When installed (a Visual Studio Code restart is required) you’ll find a Sign in link in the status bar:

VSLiveShare_02.jpg

The Sign in is required when you want to start a collaborative session with Visual Studio Code (so everyone knows who you are). When clicking on this option, you’re prompted for authentication (Microsoft personal account, corporate account, AAD or GitHub):

VSLiveShare_03

When you’re correctly logged, you can see your name on the status bar and now you’ve also a Share button, where you can start a Live Share session:

VSLiveShare_04.jpg

To start a live collaborative session, click on Share and an invite link will be automatically copied to your clipboard:

VSLiveShare_05.jpg

Note: You may be asked by your desktop firewall software to allow the Live Share agent to open a port the first time you share. Accepting this is entirely optional but enables a secured “direct mode” to improve performance when the person you are working with is on the same network as you are.

Now you’re ready to go. Just share the link to your colleagues and they directly “live share” the coding session with you (here I’ve shared a session with myself on another machine):

VSLiveShare_06.jpg

You can see what your colleagues are typing and vice-versa.

P.S. Sharing of the debugging session is not yet supported.

In my opinion, this is a killer feature for Visual Studio and expecially for developing extensions with AL. I recommend to install it on your Visual Studio Code if you want to improve your productivity when working in teams.

Create flow to create or update data in Dynamics NAV

Original URL…

in this blog post, I will show how you can create a flow which will create data (Items) in Dynamics NAV 2018.

To create the connection between Flow and Dynamics NAV 2018 I will use Microsoft Dynamics NAV connector which I show how to configure in this blog post.

So to start first I created one list in SharePoint.

 

Now I will go to Flow and create new flow from blank.

And from list of available connectors first I will choose SharePoint and select “When an Item is created”.

In next step, I will enter my SharePoint site address and from dropdown, I will choose my list.

When I choose my list I will click on “New Step” and find Dynamics NAV connector and choose “Create item” action. In table name I will choose my Web service for Item Card.

When it is available I will choose field from my SharePoint list (Items) and connect it with fields from Item Card.

  1. In Description on Item Card flow will enter Title from SharePoint list.
  2. In Description 2 on Item Card flow will enter combination from 2 fields (Description + Action Value) from SharePoint list.
  3. In External No. on Item Card flow will enter ItemNo from SharePoint list.

And the last step is to save our flow – I chose name CreateItems.

Now I will go to SharePoint list and create new Item.

After I click on Save flow will use data from SharePoint and push it to Dynamics NAV. The result I can see in my flow that it succeed with running.

If I take a look in Dynamics NAV 2018 I will see my item with data from SharePoint.

 

As you can see all fields are populated, as well as field which are validated automatically when enter information in original field (Description -> Search Description).

On-Premise Extensions & Customer Licenses

Original URL…

On my task list for one of my customers was a nicely isolated module that I could make into an extension.

I’m a huge fan of making many small extensions rather than trying to put all of one customers modifications in one project.

In this case it is a side-by-side project with C/Side so I have created my own app file for the packages. I’ll see if I can blog somewhat about that later.

Extensions are not just for AppSource

Some people seem to think that on-premise we can just as well continue to use C/Side and even though I am a huge C/Side fan I have to disagree.

On-Premise extensions have a lot of value, especially because extensions enforce discipline.

The Caveat

The biggest challenge that I face when programming bespoke Extensions On-Premise is the deployment. Microsoft has made the testing of the license very strickt. In fact, it is more strickt than the runtime check which in my opinion is a bug. Microsoft however has a different opinion. Business Central in fall with the new license model solves it because then, there is no more license.

Temporary Tables

Everyone who has attended my Programming Master Class (800 of you) knows that using Temporary Tables as containers of code are one of the most powerful assets for clean code and reducing code cloning.

The Table behaves as a class with methods and properties and actually replaces the need for Code Units completely. Well, almost.

Using these tables in C/Side is free. It has always been free. End Users only have to pay for tables in their licenses if they write data to the database.

When you ship an extension with a table object that is outside of the customers license you’ll get an error message. The publishing process does not check your code for actual inserts and it probably could not even do that if they wanted to.

In C/Side end-users can import objects with a fob file that are outside of their license.

PowerShell to the Rescue

I’ve created a small PowerShell script that temporarily changes the license at the End-User and later switches it back. There is a lot of clean up to do but for me it was a huge time saver.

My plan is to somehow make this PowerShell script run directly from Visual Studio Code and launch the Windows Client instead of the Web Client.

Please not that I don’t dislike the Web Client but we have some pages in our solution that not yet render perfectly and have to be replaced first with another solution (probably Angular w. DevExpress).

Here is the script.

Don’t expect rocket science. I try to keep my PowerShell understandable.

Set-ExecutionPolicy unrestricted

import-module "C:\Program Files (x86)\Microsoft Dynamics NAV\110\RoleTailored Client\NavModelTools.ps1"
import-module "C:\Program Files\Microsoft Dynamics NAV\110\Service\NavAdminTool.ps1"

$ServiceTier = "2018DEV"
$Version = "1.0.0.1"
$xVersion = "1.0.0.0"
$AppFolder = "\\DynamicsNAV\Extensions\Performance\Version\"
$AppSource = "\\DynamicsNAV\Extensions\Performance\Source\"
$AppFile = "Mark Brummel_Performance_" + $Version + ".app"
$AppName = "Performance"

#Get-NAVAppInfo -ServerInstance $ServiceTier

Move-Item -Path $AppSource$AppFile -Destination $AppFolder$AppFile -Force -ErrorAction Ignore

Import-NAVServerLicense -LicenseFile "\\License\Development.flf" -ServerInstance $ServiceTier
Restart-NAVServerInstance -ServerInstance $ServiceTier

Uninstall-NAVApp -ServerInstance $ServiceTier -Name $AppName -Version $xVersion
Unpublish-NAVApp -ServerInstance $ServiceTier -Name $AppName
Publish-NAVApp -ServerInstance $ServiceTier -Path "$AppFolder$AppFile" -SkipVerification
Install-NAVApp -ServerInstance $ServiceTier -Name $AppName -Version $Version

Import-NAVServerLicense -LicenseFile "\\License\Customer.flf" -ServerInstance $ServiceTier
Restart-NAVServerInstance -ServerInstance $ServiceTier

#Sync-NAVApp -ServerInstance $ServiceTier -Name $AppName -Mode Clean -Force
#Sync-NAVApp -ServerInstance $ServiceTier -Name $AppName -Mode Add

The bottom two commands are commented out. I use them when I make schema changes to avoid having to create upgrade codeunits during the development process.

The Version and xVersion are because I like to keep some old versions of the .app file while I do the development. The UnInstall and UnPublish is not required if you increase the build number with each build

A tip to Microsoft would be to implement some of the old C/Side code into the Extensions module that only deleted data/colums for those tables/columns that were really changed.

Using SQL Server Transparent Data Encryption (TDE) with Dynamics NAV

Original URL…

Over the last few months, the Dynamics NAV team has been testing compatibility with SQL Server Transparent Data Encryption (TDE), and we are now proud to announce that the following Dynamics NAV versions all support SQL Server Transparent Data Encryption (TDE):

  • Microsoft Dynamics NAV 2018
  • Microsoft Dynamics NAV 2017
  • Microsoft Dynamics NAV 2016
  • Microsoft Dynamics NAV 2015

With TDE, you can encrypt sensitive data in the database and protect the keys that are used to encrypt the data with a certificate. TDE performs real-time I/O encryption and decryption of the data and log files to protect data at rest. TDE can assist in the ability to comply with many laws, regulations, and guidelines established in various industries.

At the time of writing, Transparent Data Encryption (TDE) is available in Enterprise Edition of SQL Server as well as Azure SQL Database.

Read more about Transparent Data Encryption (TDE) for Dynamics NAV here:

https://docs.microsoft.com/en-us/dynamics-nav/transparent-data-encryption

Mark Brummel Blog – Business Central-as-a-Framework

Original URL…

Compared to other programming languages AL can be less intuitive to get started with and it behaves unexpectedly for modern developers. It requires a lot of effort for the Business Central team to maintain a language dedicated for only one application.

Solution is to move AL to TypeScript to reduce the learning curve for new developers and add modern programming capabilities….

Novedades del SII en 2018 ¡Adáptate a la versión 1.1!

Original URL…

El Suministro Inmediato de la Información (abreviado como SII) será actualizado el próximo 1 de julio en la que será su versión 1.1, la cual incorporará numerosas novedades que afectarán a algunas gestiones que deben realizar las empresas que requieren de su cumplimiento.

Una vez más, en Aitana os trataremos de ayudar en este cambio normativo explicando en qué consiste el SII, cuáles son sus requerimientos y qué es lo que cambiará en esta nueva versión que está a la vuelta de la esquina. Además, te presentaremos nuestra solución para adaptar tu ERP y cumplir con la norma automatizando todos los procesos posibles. De esta manera, podrás aportar toda la información necesaria a la Agencia Tributaria sin errores y ahorrando costes.

Tanto si ya conoces la normativa y tienes una solución para la anterior versión, como si todavía no estás cumpliendo con el SII y quieres saber cómo hacerlo, nuestro próximo webinario te sacará de todas dudas y te dará un camino claro para cumplir con las obligaciones del SII.