Customizing Dynamics NAV
Discover different ways to customize the application to give you and your colleagues access to the features, functionality, and data that you need most.
Dynamics 365 2019 release wave 2 plan Discover the latest updates to Dynamics 365.Release Plan | Weekly Deployment Notes
Ace your Dynamics 365 deployment with packaged services delivered by expert consultants.Explore service offerings
Connect with the ISV success team on the latest roadmap, developer tool for AppSource certification, and ISV community engagements.
ISV self-service portal
The FastTrack program is designed to help you accelerate your Dynamics 365 deployment with confidence.
FastTrack Program | Finance and Operations TechTalks | Customer Engagement TechTalks | Talent TechTalks
Hello from beautiful Prague at the second day of Directions EMEA.
A while ago, I blogged about this slide, without giving too much deeper information:
Well – let’s go deeper!
But first a disclaimer. While reading everything below, keep this in mind: a lot is still to be dived into… :-). Why? Well, I wrote this blog a while ago, just after Directions US, where I wasn’t able to attend all the sessions that I wanted to (which I will make up for at Directions EMEA this week ;-)). And there is a lot .. . But for now, I already wanted to share as much as possible. And it’s a lot!
So, let’s get going, by diving into the three pillars that Microsoft uses as well…
Bringing two worlds together
Well, this is obvious, right? Although I think the right title would be “bringing three worlds together”, because we are talking about bringing Office 365, Power BI even closer to Microsoft Dynamics NAV. Microsoft has done this by adding things like:
I did find some information on DLP (Dynamics Learning Portal), like a walkthrough. Go check it out! I know I will :-). I think this is a very important new feature!
Enhancing the core application and platform
A lot has been done on the “Setup and Configuration” part of the product. A few things, really, but most important is the “Assisted Setup” kind of thing, and the “notifications” (which I will talk about in a minute). Assisted Setup has been handled in this blogpost, was probably created mainly for Dynamics365, but is very interesting for any implementation, in my opinion. Basically, you can plug your own setup into this page:
and up you go with your wizards:
The way these wizards are created needs some coding skills (quite some coding on the page). But you’ll get used to it :-).
Speaking about simplified setup: it’s also simpler to setup Dynamics CRM from inside Dynamics NAV.
On top of that, there is a simplified opportunity management and CRM functionality – so even with Dynamics CRM, there is an improved CRM experience in NAV. Here are a few improvements:
Also, there are “richer incoming documents” in the product. Now, I’m not an expert on application level, but in short, I know it’s this:
Microsoft has also worked on the Items. First of all, they introduce “Item Attributes“. Now, in my company, we have our own “attributes” (which we call “specifications”) which is – I must admit – more advanced .. which is good, because then we have a reason to keep it :-). But then again, many people will be happy, because finally you can have a dynamic set of attributes which you can use to enter Item “specification”.
And even more .. you can filter the Item list on it as well!
Basically: you’re able to set a filter on the Item table, based on values of a sub table .. . I didn’t see this in the product just yet (or I’m missing something…). We did build it our own (quite more generic), and I was happy to see Microsoft did it quite the same way: building piped filter, based on the “No.”-field in the Item table. I am curious how they handle the cases where the filter include over 2000 Items though .. (SQL doesn’t really like that..)
On top of that, you’re now able to better categorize your Items as well, by the ability to create an hierarchy of item categories and assign attributes to each item category.
Next, it’s possible to cancel posted credit memos (sales & purchase) and you have package Tracking No. and Shipping Agent Code on sales invoices. Let’s just say we have “smarter sales and purchase documents” ;-).
And also accounting got a little bit smarter, as in NAV2017, we can categorize our accounts, like you see here:
Next: Jobs! A Project Manager Role Center, and a new fact box on the Job Card that displays the job’s cost information. On top of these, some more small changes were added, like:
Also, some small additions to Fixed Assets were made. It’s now easier to set up with default setups (which you can modify) and you are able to register purchases of fixed assets through a special fixed asset G/L journal where you can also dispose of fixed assets.
Smart notifications. Well, this must be one of my favorites. I must dive into it technically (and I will handle it shortly in a minute..), but in a way, it’s possible to give the user in-context notifications, and assign an action that the user can execute along with it. This is just a great user experience right under the fingertips of the developer. It’s intended to give the user advice and recommendations – it’s up to the user to react on them or ignore them (so, it’s not a confirm at all!).
Another nice one: there is now a “Brick view” (small and big) on lists. I already showed it in one of my previous blogs. it works like we would expect: field group “Brick” and adding a field with “MediaSet”-datatype to it (as I was told :-)). This is a screenshot of a list in “Brick view”:
Creating new opportunities
Microsoft creates Extensions as well .. namely, Microsoft Dynamics NAV 2017 comes with already packed Extensions. It’s still a question whether we are going to be able to change the code of that particular Extension or not (by creating a dependent extension if necessary). It doesn’t look like it. On the product DVD (of the beta), you can only find the .navx files:
Who knows, It might be there in the RTM afterall .. but it’s not that big of a deal. The whole intention about Extensions is “not having to change them” anyway.. and if so, create a dependent extension (but we do need code for that..). Let’s just hope they fulfill 100% our needs ;-). Microsoft has foreseen these Extensions:
Well, for developers, there is quite a lot to mention. First of all: the capabilities of Extensions have been immensely improved. All object types are available now .. and more. In short:
Next, there is now the possibility to publish Web Services per tenant. This was very necessary to combine with extensions. In my opinion, we should be able to create Permission Sets per tenant as well. That would be awesome! (or maybe it’s already possible, and I’m missing something ;-)).
Another feature that was added, is “notifications” which I talked about earlier. There are a few new statements which we can use in code, like:
And then we have “Application Area Tagging“. My by far least favorite new feature. The Application Areas system offers us the ability to define “differentiated user experiences according to application scope”. That all sounds very interesting, and I agree it’s very necessary in a cloud-world. Only, the way Microsoft implemented it, is on page-field-property-level, like you see here:
You can only imagine what immense effort it would take to change a tiny bit – let alone to plug in your own vertical into this system.. setting page-field properties on each page, on each field .. . This looks like the same way as the “Show Mandatory” property was implemented. I still hope I’m missing out on some information that all of a sudden makes this feature overly interesting.
As mentioned, one of the Extensions that Microsoft is shipping, is the “Sales and Inventory Forecast”. Well, this system is based on Cortana Intelligence. And to be able to plug into this, Microsoft has foreseen an API in C/AL, that we can use to create our own forecasts on our own business logic and/or data. The API is called the “Time Series library“. I haven’t had a look at it just yet. But basically, you have a codeunit that helps you tremendously with setting up things like that extension:
This is how the “Cash Flow Forecast” looks like with Cortana Intelligence in place:
Another thing I noticed is the fact that the Job Queue / NAS has been completely revised. Now, you have a Task Scheduler “service” that you can enable in the Admin Console. I haven’t gone into it fully, but I like the concept. I like to compare it with something we call internally a “Worker Threading Framework” (or “WTF” if you will :-)) – basically having workers (in the case below: 10 workers) waiting for you to perform (simultaneous) tasks. Great concept! We built it on top of a NAS and background processes – I’m looking forward to dive into this.. . Here you have a screenshot on how you can set it up. No codeunit that starts an endless loop anymore, but a Task Scheduler straight in the platform:
And, as you probably already assumed – there are C/AL statements for you to code against the Task Scheduler.
There is an integration with Microsoft Flow and PowerApps – or at least, both can be used in combination with Microsoft Dynamics NAV 2017. Basically, it enables you to build stuff on the “Microsoft Common Data Model”. I don’t know the specifics though – but do check out these links to get yourself familiar:
In the demo on the Keynote, Claus showed an app that he built for a phone (looked like it), build in PowerApps (in about 4 hours) with data that was uploaded from 4 NAV instances (and I thought I understood there was also one AX instance) to the Common Data Model – and the PowerApp got the data from that. The designer op the app was completely online, very intuïtive. I haven’t checked out yet, but again, please do so with the above links.
The more I dive into NAV 2017, the more I get stimulated to dive deeper .. as there are so much things I don’t know yet. Next thing that’s new but I’m quite unfamiliar with, is the Media and MediaSet datatype.
It’s accompanied by what seems to be a framework around “media”, like you see here some system tables:
Let’s have a quick look at the default content of one of those tables. Now you see this:
It seems quite clear: this is where pictures are stored now. If you look at the Item table, you see that the “Picture”-field turned into a “MediaSet” datatype. So my guess is that when you want to use pictures: use that! And you “automagically” are using the system tables (kind of like you do when you use Record Links). This is an assumption – need to dive more into it. Expect a blogpost soon about it. But if you know more, please comment :-).
And last but not least, the “New developer Experience“. Well it’s not going to be released in the upcoming release. As stated in my previous blogpost, it’s only going to be there in preview at Christmas. To cut short, you should read all about it in the recent blogpost of Arend-Jan Kauffman. It’s cool, and it’s how we are going to do customizations, extensions, .. in the future! Here is a screenshot AJ used in his blog:
Or here is one of mine:
The client that you see, is a well-known, new code editor, known as VSCode or “Visual Studio Code”. You can use it cross-platform (we will be able to write code on a Mac, or on Linux) and is available for many languages by the ability of installing “VSCode Extensions” to add an ability or language to the editor.
As long as it (AL on VSCode) is not available, I have a tip for you: you can use VSCode for PowerShell as well – and it’s maybe a great way to get used to the editor! I’m doing that as we speak. VSCode is not ideal for PowerShell, but I truly believe, the more I use it, the more I’ll make it good enough for PowerShell. And I will be used to VSCode by the time we’re developing AL in this editor! Just my two cents :-).
Next to this new development goody, there will be a completely new “personalization” experience as well (if I may call it like that). As such, you’ll be able to open the web client in design mode, where you will be able to do a number of things, like creating new fields, put them on a page, move the fields to different places on the page. In a way: a visual WYSIWYG-designer. Here are a few screenshots from AJ’s post:
Go into Design mode, and drag a field around:
Add a field to a page:
Save for myself, profile, everybody,…
The future looks bright ;-).
Some other small goodies
There are some other small goodies that I picked up from some Tweets of Jannik Bausager.
First, we will be able to define email body templates in Word:
Also, Tooltips are now available on fields in NAV 2017. I can only imagine how this has been implemented. Well, yet again, on Page-Field-Property (why do they keep doing this?? ).
The Mobile App now supports “tap and hold” on list pages to bring up Actions!
Next, there are some new document layouts:
And not only, we have this new “Notifications” .. you’re able so set up when to show them as well:
Also, there is a new setting on the Sales & Receivables Setup: Default Quantity. Like Jannik puts it: “Often just selling 1 of each item, many company do. In Microsoft Dynamics NAV 2017 you can default quantity on sales document lines to 1”
And then there was Dynamics 365
Well, as Dynamics 365 is a big topic in the NAV world, it’s not the topic of this blogpost. For Microsoft – how I understood it – “Microsoft Dynamics NAV 2017” and “Microsoft Dynamics 365 for Financials” are two different products. And while the code base of both are the same for this release, Microsoft says it can’t promise that it will be kept the same in the future. And that makes sense. I truly hope it’s not going to be the same .. and we will have a codebase for On Premise, with stuff that makes sense for On Premise .. And visa versa: we will have additions/changes, especially for Dynamics 365, that makes sense for that business.
And make no mistake. On Prem business is here to stay. That was very clear after the keynotes (Directions US and EMEA): it’s clear Microsoft has a clear “AND” strategy: On premise is absolutely important. It is what took this community this far, and it will drive that in the future.
But do be aware about the new opportunities though: and that’s called “Dynamics365”. The market is moving – and we (partners) can grow and move with it, THANKS to Dynamics365 !
Where can I get started?
Well, I have a few links for you:
That’s all folks.
It turned out to be a big blogpost. But that’s only because Microsoft once again did a whole lot in (just) one year. Big thanks for that.
I’m currently upgrading our product .. so I might come back with some “Best Practices” or “caveats” or “whatevers…” about upgrading to NAV2017 soon.. .
Business Applications communities