So some of you readers will know that I recently got made a Microsoft MVP for Dynamics NAV, something that I regard as a privilege and honour. There are only a few of us at that level and it’s given me closer access to what they are planning than years of TAP programmes or knowledge transfer events did for instance. That’s made me even more excited about Dynamics if that was possible.
Trouble is that makes me more disappointed when I see an area that could be so much better and that currently is the technical implementation of the licence. To be clear I’m not talking about the cost, I’m talking about how the licence is authorised, uploaded and works on a Dynamics NAV system.
So anyone who has system administration responsibilities for NAV will have come across the FLF file which kind of gives the game away. FLF stands for Financials Licence File and even Navision stopped calling the product Financials back in 1998!
The file by the way is a good old text file with an encrypted bit at the end. Real old school technology that hasn’t changed since Navision first introduced Financials to my knowledge.
This file has to be uploaded to a Dynamics NAV database at either the server or database level. First why is server level even possible anymore? Causes nothing but problems between test and live systems and I don’t believe it’s within the terms of the licence to share it across multiple live databases these days.
Why is the licence uploaded as part of the objects and not the data? Surely the licence applies to the tenant’s data not the objects? In a multi-tenanted system such can have now should I need a licence for each company subscriber? Shouldn’t this live in the data database not the object database?
Then the middle tiers have to be restarted to take that new licence into account. Means you cannot apply a new licence during the working day for production servers so those new users the client has just bought have to wait till everyone is off system. Surely the middle tiers can refresh their read of the licence periodically?
Want something new onto your licence? You have to ask your partner to add what you need on the Business Centre part of a system called Partnersource (our version of CustomerSource). We can for instance add additional users or add the permission for you to use particular object numbers needed by independent software vendors (ISV or addon product) solution.
Then we have to download the new licence and send it to you so that upload it using either the development environment or powershell. Neither of these, most clients are familiar with, so the partner ends up dialling in and doing it before organising the required restarts etc.
Up till now this has been a bit of a chore (not least for Microsoft to generate these files, its completely different from any other system they have) but with the new opportunities to integrate more ‘standard’ customisations that using the new 2016 events and extensions this is going to become impossible to manage.
At the moment before I, as your partner, can add those ISV licence to your NAV licence I also have to be authorised as a partner for that ISV. Already we have the issue where the client finds an add-on that we haven’t come across before (you cannot keep track of them all) and we have to get authorised by the ISV quickly or explain to the customer the better alternative. Sometimes they are country specific so I have to get authorised for example by a Swedish ISV for a specific addon that one of my customers subsidiaries that operate in Sweden want. That’s OK when you have maybe 200 plus ISV companies, when in the future there are thousands who are advertising their maybe very small enhancements, that appear to do just what you as the my customer wants, how is this all going to workable?
As enhancements are added at the tenant level and its the core system object database which holds the licence how will you be able to licence one tenant but not another? How will you keep track of which tenant uses what when they are on every tenant’s licence and therefore can we turned on by any admin user? How will we be able to pay the correct monies to the ISV?
Even worse when we have those extensions the Dynamics NAV web store that must be coming, how is will it work? You can get the add-on in seconds but have to wait days for the licence – not really viable is it?
Looking at it from the developer’s perspective, I want to publish some of the enhancements I’ve created free of charge. I’m not really interested in charging as it’s not what I’m focused on but I’ve had customisations that I’ve previously described on this blog which I’ve been asked for. How do I give them away? Easy to send or let them download the objects or enhancement package I guess but how does the customer then get them licenced?
Then there is upgrading, the way the licence works makes that much harder than it needs to be currently. We are a partner cannot add anything that is in Microsoft’s authorised range to your system and I can understand why, someone would not follow the rules and their database end up in a right mess.
The downside is though when Microsoft issue a new version, now monthly remember, we cannot merge what are usually a small number of new of standard field additions and deletions in that revised version, into your version because of these restrictions. We have to start with that revised version as a base and merge in every change you have ever had, into it. Much more long winded and risky. But with the current licencing there is no alternative.
So I think there are lots of reasons why the licence mechanism in NAV is past its sell by date and while it will upset a few, it needs the same complete rethink that the rest of the application has had.
If I was designing a licence system fit for Dynamics NAV’s future, I would make it so
- It becomes an online activation service which the middle tier service has to do at least every 90 days with warnings to all end users who login, for the 30 days before it expires. Good enough for Office 365 so why not for Dynamics NAV?
- The licence becomes a table within the database with an encrypted key against each entry (arguably you already have it with the objects and fields tables currently)
- There is a function within system admin area of the main client to download a new set of licence entries complete with keys – I would suggest an option to revert to a previous licence in case anything goes wrong and a history of licence changes and activations.
- The system will only allow execution of objects where a licence table entry with the correct key exists
- Developers can merge in new fields and delete no longer required ones because a flag on the field table would tell the system that this is allowed as it is a standard field for this version, just have an active flag that’s not set until its needed). This would mean updates would have to be put into the central licencing service when new updates are issued by Microsoft.
- An ISV can setup their add-on so that the objects on its licence can be added by either
- 1) Just themselves
- 2) Authorised partners
- 3) End-users themselves
- The ISV can see what end-users have their add-on objects on their licence and the partner they are linked to. If they are worried about protecting their IP they can set it some only they can add their objects to end-user licences once they have been paid. They should be able to add it for a trail period and also revoke it from a date twelve months in the future (12 months to sto
p a rogue ISV blackmailing an end-user).
- End-users should be able to see what’s on their licence and add to it (if allowed by the ISV) via the CustomerSource web site
- The NAV webstore (which must be coming surely) should be able to add to a licence automatically given the user that is logged in (they must have admin rights on CustomerSource).
I’ve had no conversations with anyone at Microsoft about these suggestions, only the problem so don’t yet know if this is what they are thinking about. Hope so though, we need this bit as good as the rest of Dynamics NAV is.