Detecting the Development Environment (classic client) license

PConijn
Member Posts: 31
Hi everyone,
As you all know, you can change the license for a session in the development environment (classic client). Is there any way (in NAV2015/16/17) to detect whether this license is different from the one you are using on the RTC?
Edit: in other words: if is possible to detect whether someone has changed the license using Tools > License Information > Change in the development environment?
As you all know, you can change the license for a session in the development environment (classic client). Is there any way (in NAV2015/16/17) to detect whether this license is different from the one you are using on the RTC?
Edit: in other words: if is possible to detect whether someone has changed the license using Tools > License Information > Change in the development environment?
0
Best Answers
-
You can only check license programmatically when C/AL code is executed. The DEV Env does not run execute any NAV code anymore.
Even if you change the license temporarily in DEV Env it will only allow you to modify objects. If you try to run any of object it will be run by the NST with the license uploaded into the server/database, not with the license loaded temporarily into DEV Env.
Slawek
Slawek Guzek
Dynamics NAV, MS SQL Server, Wherescape RED;
PRINCE2 Practitioner - License GR657010572SG
GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-035 -
In addition to my previous post:But the server must somehow recognize whether a user does or does not have design permissions in their temp license. Is that checked on the SQL server?
No, the server (the SQL Server) does not check or enforce anything. License permissions to create, change or delete objects are only checked inside the DEV Env.
To make things more interesting - DEV Env will let you import a fob with objects outside your currently active license. It will also let you to load the fob if your license does not allow to modify any objects.
Loading the fob results in the same database operations at SQL server level, as saving object changes in DEV Env, or compiling the object.Slawek Guzek
Dynamics NAV, MS SQL Server, Wherescape RED;
PRINCE2 Practitioner - License GR657010572SG
GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-031 -
We have been detecting changes in our deployed solutions that we have not made and that cannot be done with a client license (our clients are not always aware of said changes either). We are trying to glean more information on how these changes occur.
Then you should track this at the SQL level, as the object would be saved and you can determine the logged in user that did that.David Singleton5
Answers
-
HI,
Check License in development as well as in RTC. If its changed then there will be difference in both the license.
Regards,
Neeraj Singh0 -
Check License in development as well as in RTC. If its changed then there will be difference in both the license.
Thank you Neeraj, but perhaps I have been unclear in explaining.
While I can check both manually and the license in the RTC programmatically, I have not found a way to check the license in the Development Environment through code.
I am looking for a way to automatically detect a change or read the license in the Development Environment.0 -
You cant, code is run on service tier and the loaded license there (rtc).
The temp license doesn't run code anymore.
I was afraid of that. But the server must somehow recognize whether a user does or does not have design permissions in their temp license. Is that checked on the SQL server?0 -
You can only check license programmatically when C/AL code is executed. The DEV Env does not run execute any NAV code anymore.
Even if you change the license temporarily in DEV Env it will only allow you to modify objects. If you try to run any of object it will be run by the NST with the license uploaded into the server/database, not with the license loaded temporarily into DEV Env.
Slawek
Slawek Guzek
Dynamics NAV, MS SQL Server, Wherescape RED;
PRINCE2 Practitioner - License GR657010572SG
GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-035 -
Thanks for all your replies. It's clear that my initial approach will not work. I'm going to try another route.0
-
Alright... going into pigheaded mode
I created a logging method using SQL triggers and I'm being stubborn here.
When an object is saved, that is obviously communicated by the Dev client to the SQL server. With the trigger, I can log which object has been changed when and by whom. I can also check whether that object matches the (customer) license in the SQL server.
Does the Dev client at that point (INSERT INTO dbo.Object) provide any way to determine the license it used?0 -
-
It would be easier for us to suggest you some solution or alternative if you told us what do you try to achieve (the business goal, not the technical detail).
What difference makes to you if an object has been modified with DEV or client license? The end result is the same - some object has been modified. The logging trigger on Object table will let you know by whom and when (although an object compilation also ends up with UPDATE on Object table, but in this case the object, its defnition precisley speaking, has not been modified).
So again - what difference makes to you if an object has been modified with DEV or client license?
Slawek
Slawek Guzek
Dynamics NAV, MS SQL Server, Wherescape RED;
PRINCE2 Practitioner - License GR657010572SG
GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-030 -
In addition to my previous post:But the server must somehow recognize whether a user does or does not have design permissions in their temp license. Is that checked on the SQL server?
No, the server (the SQL Server) does not check or enforce anything. License permissions to create, change or delete objects are only checked inside the DEV Env.
To make things more interesting - DEV Env will let you import a fob with objects outside your currently active license. It will also let you to load the fob if your license does not allow to modify any objects.
Loading the fob results in the same database operations at SQL server level, as saving object changes in DEV Env, or compiling the object.Slawek Guzek
Dynamics NAV, MS SQL Server, Wherescape RED;
PRINCE2 Practitioner - License GR657010572SG
GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-031 -
We have been detecting changes in our deployed solutions that we have not made and that cannot be done with a client license (our clients are not always aware of said changes either). We are trying to glean more information on how these changes occur.0
-
We have been detecting changes in our deployed solutions that we have not made and that cannot be done with a client license (our clients are not always aware of said changes either). We are trying to glean more information on how these changes occur.
Then you should track this at the SQL level, as the object would be saved and you can determine the logged in user that did that.David Singleton5
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions