I am a newbie self-learning NAV. Some of queries may be foolish ones, hoping to hear from you genius experts!
Really confused with licensing framework.
Queries,
I can identify two types of licenses - Customer license vs Partner license. Customer license is the license for ERP product and includes system functionality packages (starter/extended) and user access(full/limited user). Partner license is what a dev partner subscribes to. There is no relation among those two types, right?
Is a development partner able to make changes to any of the primitive objects (tables/codeunits) that come pre-installed with Starter/Extended pack. Is development partner allowed to modify/enhance the system functionality to any extent?
When a development partner registers with Microsoft, is it given a fixed set of object IDs that it will be using to create new objects? Would it be using same set of IDs for all the customers it would be implementing NAV? So, these IDs are globally unique - no two dev partners be having same IDs?
When I connect to RTC using my domain account,, I act as a Full User under Customer License (I can see my user set as full user under Departments=>administration=>General=>Users). If I connect to NAV DEV ENVIRONMENT, I CAN design almost all the tables, but CAN'T any of the CODEUNITS. So, how does security work on DEV Environment???
License depending on context can refer to two different things:
- Application\Development License
- Client License Type
Application \ Development License
Microsoft Dynamics NAV's license model is built on defining Read,Insert,Modify,Delete and Execute on each object in the database (Table, TableData, Form, Report, Dataport, XMLDataport, Codeunit, MenuSuite, Page, Query) this is true for both End Users, Partners and ISV's.
There are different well known ranges of objects that have different meaning, so depending on what the object numbers are you can assume different parties will have access, they are documented here
Your ability to modify objects will depend on the Object Design Granules you have purchased from Microsoft via your Microsoft Partner, a list of the ones relevent to design can be found at link
Depending on when you Purchased your Microsoft Dynamics License different ones would have been included in your starter pack, most commonly users have:
- 7110 Report and Dataport Designer
- 7120 Form and Page Designer
These provide you the ability to modify code within Reports and Forms, and themselves include objects for modification within the customer license range.
The ability to modify Codeunits is part of the Application Builder granule which not a lot of customers have purchased, would likely explain why you can design some object types and not others.
Microsoft Partners have what is equivalent to the Solution Developer License which allows them to modify protected tables (Ledger Tables for instance) in the Base Application range.
Granules
There are a couple of good resources within the system to get information about what permissions you can expect to have within your NAV Instance. In the Microsoft Dynamics IDE you can access your license file (or you can read it as a text file just ignore when it gets into ASCII at the bottom).
You can use the number and name to lookup what each one is used for Example
There is also a report 10313 License Permissions that you can execute that will provide an overview of the ranges and what specific permissions (RIMDE) you have within your license to each one.
Your Microsoft Partner has access to generate a License Report (Detailed or Summary) this will provide a list of the objects you have purchased and where they have been assigned.
In previous licensing programs like Business Ready Licensing (BRL) you would have had to define and purchase each granule individually.
More recently Microsoft has moved to perpetual and subscription licensing which provides most of the application areas you are likely to use.
Object Assignment
The Design Granules come with access to specific objects, if you require additional access to objects in the database they must be purchased separately and then assigned by your Microsoft Partner.
For Example Purchasing 10 Additional Tables grants you the right to 10 Tables, that then need to be assigned to your License by selecting the specific object id's for tables in your database and adding the security.
Development
There are a couple of main types of parties that do development within a Dynamics NAV instance:
Microsoft Solution Partners
These tend to do customer specific development, this is modifications to existing forms and objects, bug fixes and other items that are likely to only apply to a specific customer.
Most of this type of development is done within the existing Microsoft Dynamics NAV object ranges, or if new objects are created it is done within the Customer Design Area (50,000 - 99,999).
Customers that have the in-house skills can typically also do development in this range, as the permissions are in the Client Range.
Independent Software Vendors(ISV)
these are also Microsoft Partners but they focus on developing solutions for multiple customers that will be installed into an array of database and work in the Certified Partner Design Area (100,000 - 999,999,999) these objects used will be the same for all customers.
A note is that Microsoft Solution Partners, do not automatically have access to modify all ISV object they need to be provided access to the object ranges the same as an end user would, and in some cases maybe unable to modify some objects due to the desires of the ISV (this is rare).
Client License Type
The Full User determines the client license type that is consumed when you connect to the database, and it self does not directly provide security; the Limited user does have a restriction of what it can access.
Your License and Security set-up work together to identify the maximum security that a user can have, as you can add permissions to a user to an object your not licensed for but as the runtime will not have permission they will still get a security error (this is true even for the SUPER role and MS partners that are not licensed for a specific ISV Solution Range).
- I can identify two types of licenses - Customer license vs Partner license. Customer license is the license for ERP product and includes system functionality packages (starter/extended) and user access(full/limited user). Partner license is what a dev partner subscribes to. There is no relation among those two types, right?
Partner license in its nature is the same as customer license. It just grants you more abilities, like create objects, fields, modify code of objects. Those applies to objects included in partner license.
Customer license can also include some additional abilities like report designer which allows customers to modify reports (as form Nav 5, dunno if this was changed in latest versions).
- Is a development partner able to make changes to any of the primitive objects (tables/codeunits) that come pre-installed with Starter/Extended pack.
Whether or not partner is permitted to modify certain objects is defined by it's license. There may be limitations based on object number. Not sure if there are any but technically it is possible.
Is development partner allowed to modify/enhance the system functionality to any extent?
There are limitations like: you won't be able to delete/insert field from table if field number is in range from 1 to 49999 (so called standard range). But its not critical since you always can create field in your partner range. Actually your partner/customer range is your main limitation. Which could be leveraged by
sending more money to MS ;)
Keep in mind that if you create object in your range, 50010
for example. Your customer must have this range included in his license to use the object. So you both must send more money to MS ;)
- When a development partner registers with Microsoft, is it given a fixed set of object IDs that it will be using to create new objects? Would it be using same set of IDs for all the customers it would be implementing NAV? So, these IDs are globally unique - no two dev partners be having same IDs?
Well see this. In short: range 50,000 - 99,999
shared by partners, certified partner can by a range of objects from 100,000 - 999,999,999
and have it reserved solely for him.
- When I connect to RTC using my domain account,I act as a Full User under Customer License (I can see my user set as full user under Departments=>administration=>General=>Users). If I connect to NAV DEV ENVIRONMENT, I CAN design almost all the tables, but CAN'T any of the CODEUNITS. So, how does security work on DEV Environment???
Not sure what you mean by "security". Access to data is restricted by user rights setup. Access to objects is restricted by license.
In Nav before RTC there were special user rights to allow access to object designer (which is now all that left in Dev Env). As for now I suppose you have to grant that user db_owner
role on the database to access Dev Env.