This is my first post of 2021, so I’d like to take the opportunity to wish all of you all the best, all the health, all the safety, and .. may we finally meet again in person in 2021!
I’d be very happy to have much less of this:
And more of this:
Anyway ;-). Let’s get to the topic..
I got an internal question from our consultants on how they are able to access the license information of the customer for an OnPrem customer. There are a few scenarios where that’s interesting. Just to check which license is in production. Or how many objects or users did they buy. Well – anything license wise ;-).
And you know – a consultant usually doesn’t have access to SQL Server, PowerShell or anything like that. So it had to be accessible from the web client.
I was like: that’s easy! There are virtual tables that contain that information:
– “License Information” contains the actual text of the license file.
– “License Permission” contains the information on object level.
And since we can run tables, it’s just a matter of finding the right Table Number, and off we go.
You might remember my blogpost: Getting not-out-of-the-box information with the out-of-the-box web client ? It explains that I can get to all objects through table 2000000038, and there, I can find the corresponding table numbers:
– “License Information”: 2000000040
– “License Permission”: 2000000043
So what the heck – just run it with that ID, and that’s it, we’re done! Consultants have a solution!
Well … no …
In the web client, you can’t just run every system table. I suppose, the ones that is not actual data in a SQL Table, and that need to get the data through some business logic, can’t be shown while running the table.
So here’s a little trick
You can show those tables by creating your own page based on the table. And with the wizards of Andrzej’s extension, it’s super easy to do!
Just:
Create a page (List):
Add the fields:
Done!
When you run this page now, you’ll see the license information from the Web Client
Is this useful? For us it is. Our consultants now have a page (it’s part of one of our library-apps) they can easily check themselves without bothering someone who is familiar with PowerShell.. .
If you want to know how to do it with PowerShell – well – there is an out-of-the-box CmdLet: Export-NAVServerlicenseInformation
I personally didn’t see another easy solution for getting to that information from the Web Client. I do know, this involves development and deployment .. And also maintenance of an app .. . So if you have a less intrusive solution, I’m all ears :-).
7 comments
3 pings
Skip to comment form
Hi Waldo
Nice sollution…. but it dont seems to work for me … 🙂
I get this information thrown at me in version 17.1 and 14.20
The type or method ‘License Information’ cannot be used for ‘Extension’ development.AL(AL0296)
<>
Author
Yeah, this only works (and should only work) OnPrem – so you need to set “target” in the app.json to “OnPrem”.. .
Its a Docker … sooo i guess its OnPrem 😉 ….
{
“version”: “0.2.0”,
“configurations”: [
{
“name”: “Your own server”,
“request”: “launch”,
“type”: “al”,
“environmentType”: “OnPrem”,
“server”: “http://(there was a text here)”,
“serverInstance”: “BC”,
“authentication”: “UserPassword”,
“startupObjectId”: 22,
“startupObjectType”: “Page”,
“breakOnError”: true,
“launchBrowser”: true,
“enableLongRunningSqlStatements”: true,
“enableSqlInformationDebugger”: true,
“tenant”: “default”
}
]
}
Author
Look at this:
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-json-files
and now look at the “target” setting..
Woow … sorry … i should maybe read app.json … not other …
it works like a charm ! 🙂 … Tnx !!
You can do this with more tables:
– License Permission
– Table Information
– Active Sessions
– Database locks
– Events
– Installed apps
These are the ones I use
Author
Exactly! I’m working on an open source app on my github with those, and more, pages ;-).
[…] Check Customer License in an OnPrem db – from the web client […]
[…] Source : Waldo’s Blog Read more… […]
[…] Check Customer License in an OnPrem db – from the web client […]