NAV 2013 - Read License Information for granule number

vcarluervcarluer Member Posts: 15
edited 2013-05-28 in NAV Three Tier
Hi,

We have an issue with the new license information in NAV 2013. It seems Microsoft does not write anymore the list of all granules in License Information (just basic pack + extended + partner/dev + language pack).
I work for an ISV and we have based our license system on the fact that we find our granule number in this table...
We have another solution to do our license check which will need some developments but it seems really strange than Microsoft completely removed this information from the NAV 2013 system.

Is there any way to know if a specific granule number is in client license for NAV 2013?

Thank you for your help.

Comments

  • Marije_BrummelMarije_Brummel Member, Moderators Design Patterns Posts: 4,262
    You can't check on granule numbers, but you can check which objects are allowed in the license.

    However, best practice is to activate code components based on data present in setuptables. These setuptables are only licensed if the granule is purchased.
  • vcarluervcarluer Member Posts: 15
    Thank you for your quick answer.

    What are you calling setuptables?
    We indeed plan to create dummy object which correspond to different licenses level of our product and check right permission on this objects.
    Each license will have an execute permission on a dedicated object...
    We don't know how to do it another way (with data for example).
  • Marije_BrummelMarije_Brummel Member, Moderators Design Patterns Posts: 4,262
    If you block using certain setup tables in you add-on people can't use it.

    For example the setup table contains a link to the No. Series. Because people can setup the data, the rest of the transaction will not work.

    Standard NAV has this for example with prepayments. If you set them up the system expects it to be licensed. Sometimes this goes wrong when a consultant does the setup with their own license and the customer runs the end-user license. There is no Boolean or Flag to turn off prepayments. You simply delete the rows in the setup table.
  • vcarluervcarluer Member Posts: 15
    OK, I'm not sure to have understood all of it but I think we cannot do this way.

    We have a custom license check workflow: The same product (and so the same objects) have different license levels based on the number of users.
    This is an information we can not retrieve either way than by checking the granule number which has been purchased (what we did until now), or by checking a specific object right bound to license (what we will do).
    Granule number of License information is a key for our license system.

    Thank you for your help it confirms me than there is no other way than the one we planed, but it still sounds strange and I don't see the reason why Microsoft removed this information which can be useful for people like us.
  • deV.chdeV.ch Member Posts: 543
    You could use a digital signed xml with public/private key, in the xml you would sepcify the licence permissions. The xml would not be editable, since it must be encrypted and with the public key that you hardcode in your nav code you can verify the xml. The xml would be stored in a blob field or so. In the xml you could specify the domain or something to identify the customer and bind it to them.

    here is an article about digitaly signed xml for licensing: http://www.codeproject.com/Articles/4940/Using-XML-Digital-Signatures-for-Application-Licen
  • vcarluervcarluer Member Posts: 15
    Ok thanks for the idea I will read this article.
    But I think it means we need to provide our own channel of license distribution and we want to use the Microsoft one so if it is the case we will not do this way.
  • deV.chdeV.ch Member Posts: 543
    Yes it would mean you have to deploy & manage licences yourself. Of course this is not suitable for anyone and you may prefer a different solution.
  • davmac1davmac1 Member Posts: 1,283
    You could read the "Permission Range" virtual table and see if your ISV permissions are there.
    If you do a FINDFIRST for the first table data or table in your license range, you can see if the permissions are there.
  • vcarluervcarluer Member Posts: 15
    Yes davmac1 this is the kind of validation we will do.
Sign In or Register to comment.