Developer Center Discussions

Showing results for 
Search instead for 
Did you mean: 

When is the license status checked during updates?


I have an add-on toolkit for LabVIEW that is licensed using the TPLAT (licensing is applied through VIPM) with the SoftwareKey SOLO licensing server and all this works fine.

When I issue an update to the toolkit this is installed as normal, also via VIPM.

My question is, during the installation of the update is the license status checked with the SOLO server?

What I want to do is set up the license server so that the license activation is only valid up to a certain package revision number, say 2.0. After this a new license would need to be purchased. However if the license status is never checked then this is not possible.

If the license status is not checked then would adding a VI that runs before installation (one of the options in VIPM) to check the license status work? How would this need to be configured to halt the update?



0 Kudos
Message 1 of 10

Hi Darren,

No license checking happens on installation of an update, it only happens when LabVIEW starts up.  In fact, if you update a product on a system that already has a license in place, the license status will always remain as it was previously.  Because of this, checking licensing status on a pre-install VI would not solve the problem you're trying to achieve. 

In order for you to enforce a new license purchase on an update is to use a new SOLO server product definition for your updated package.  To do this, you'd just create a new product entry in the TPLAT dialog (if you're using standard mode) or a new product entry in SOLO and LFEdit (if using advanced mode) and use this product entry and license for your new version.  This means that purchasers of the new version (2.0) would not be able to activate 1.0 and purchases of 1.0 would not be able to activate 2.0.  This also means that a user will be entitled to another 30 day trial when they install the new version even if their previous trial period ended.

Hope this helps,


0 Kudos
Message 2 of 10

Hi David,

Thank you for your reply.

So basically the license is only checked when it is first activated with the User ID and Password. This means that it is not possible to have any kind of subscription licensing, revoke a license or basically do anything?

Is this a limitation of the TPLAT?

I have many applications that have a "1 year updates" service agreement included in the initial fee, after this you stop receiving the updates but your current version still works. Isn't this also how LabVIEW works?



0 Kudos
Message 3 of 10

The license file is checked everytime LabVIEW loads.  However the license server is only checked when the product is activated.  You could set up your license in such a way that an activation code activates the product for a limited time (e.g. 1 year) and then the customer has to activate again.  You would have to either update their license ID on the server or provide them a new license ID whenever they purchase an update to their service agreement. 

There is no way to revoke a license using TPLAT.  This sort of activation scheme requires a constant connection to the internet and many LabVIEW customers don't have this option. 

0 Kudos
Message 4 of 10

Hi Darren.

I was grappling with a very similar situation recently.  In my case, wanted to fully activate a TPLAT licensed product but only for a limited period of time.  I came up with the following solution to achieve this capability.  I think this procedure, or at least some of this information, is relevant to your objective.

  1. Use a browser to log on to the SOLO server account provided to you by NI
  2. Select "Authors > Products > List” to get a list of your products
  3. Select “Show Options…” for the product that you want to temporarily activate
  4. Select the “License” option
  5. Click “Duplicate” - this will create a new option for your product
    5.1 - Give option a new name eg. “Periodic”
    5.2 - Enter a value for the price of this option - the actual value entered here does not matter if your are selling through the LabVIEW Tools Network
    5.3 - Select all the Duplicate Options
    5.4 - Click Submit
  6. Client “Edit” to edit this new option
  7. Under “Product Activation & Licensing Details”, you’ll see entries for "Trigger Code #” and “TC Fixed Value”.  "Trigger Code #” will be 28 meaning activation with no expiration.  To force the license to expire after a fixed number of days, set "Trigger Code #” to 29 and the “TC Fixed Value” to the number of days.  The product option in screenshot below is configured to expire in 7 days.   Information on the Trigger Codes can be found here:|S...
  8. Important - Under “Other Details”
    8.1 -
    Deselect “Hidden”
    8.2 - Select “Enabled"
  9. Click Submit
  10. When you navigate back to the options for your product, you’ll see a new option with the name you provided in Step 5.1
  11. When you want to create time-limited activation credentials
    11.1 Select Customers > Add Single
    11.2 Enter customer information.  Click Save
    11.3 On the Customer Information page, click Add License
    11.4 In the Product list, you’ll see a list of all of your products and each available option for each product.
    11.5 Select the new “Periodic” option
    11.6 Click Prepaid License
    11.7 On the Add License page, click Submit
    11.8 The new Periodic license should now be listed in the “Licenses & Other Items” section for this customer.
    11.9 The combination of the License ID for this license and the customer Password should be sent to the end user to allow them to activate their software.


  • One detail that is TBD for your situation is how to handle a renewal at the end of the activation period.  I think you should be able to just supply an end user with new credentials for the same license option.
  • To add to David's explanation on when and how a license is checked - it is checked against the clock of the host computer.  I’m not sure when this check is performed, but it occurs at least each time that LabVIEW starts.  This TPLAT exercise shows that the host computer clock is involved in validating the license:
  • One concept in the TPLAT and SOLO server documentation that is not explained clearly is that the license credentials that you provide to your end users are for a particular option of a product and not the product itself.  See Step 8 at the following link for a mention about this:  (To prevent confusion, the documentation at this link is for the use of the Add-on Licensing Tool in Advanced mode.  To create the license used in the above procedure, the Tool may be used in Standard mode)
  • The “Trigger Code Seed” and “RegKey 2 Seed” values in a license option are essentially the credentials that allow the SOLO server to make changes to the license file on the host computer during the activation process.  Duplication of the option in Step 5 is a convenient way to ensure that these values are included in the new license option.  (To be verified, but I believe this is true: when you use the Add-on Licensing Tool to define a new license, the Tool embeds these parameters in the local license file on your development PC and includes the parameters in the “License” option definition created on the SOLO server.)

I hope you find this information helpful.


John Bergmans

Principal Engineer / Owner

Bergmans Mechatronics LLC

Demo License.png

Message 5 of 10

Hi John,

Thank you for your great reply, awesome that you spent the time to go into so much detail.

The biggest difference is that after the defined time (7 days in your example) the toolkit would just stop working, however I would like it to just stop being updated and the existing version carry on working on the development PC.

I think that your solution is a very good starting point and maybe there is some kind of option (or combination of options) that will allow the add-onto carry on working.

Thanks again for the reply!



0 Kudos
Message 6 of 10

Hi David,

In the TPLAT there is a VI to check the status of the license file, and there is a VI to activate a license which requires a connection to the licensing server. Why can't these 2 VI's be combined to allow the status of the license to be checked? This way it is up to the developer of the add-on if they would require their customer to have an Internet connection or not.

Logically if you are applying an update then you are probably connected to the Internet anyway, so then before the installation runs I can check with the server if the license is still valid; yes, update or no, cancel update and carry on with current version. Or for a stand alone version I could implement a solution like that described by John Bergmans, where the license is simply valid for a year and then I can provide details to extend this if I choose.

Seeing as LabVIEW uses more or less the same licensing process as I want to implement I find it very strange that they do not allow developers the same option. On a practical level if I cannot revoke a license then that means I can not give the ID and Password out until I have received payment, which could be up to 60 days. This situation could cause serious issues with my customers as effectively they cannot do anything during this time.

My point is that my customers are not the "LabVIEW customers" you mention, they are my customers. It should be up to the developer of the software to choose the licensing options that they want to implement, if that is not satisfactory for their customer then it is up to them to find a solution.

My apologies if this sounds blunt, but this seems like a very common licensing method that TPLAT simply does not support.



0 Kudos
Message 7 of 10

Hi Darren,

I completely understand your use-case and think it makes sense.  We are constantly evaluating the features of our products, so your feedback is appreciated for improving LabVIEW licensing in the future. 

I do want to make sure that it's understood, however, that you aren't required to use the standard TPLAT functionality to license your product.  We created this tool to help the majority of LabVIEW Tools Network developers easily license their product, and it's limited functionality typically is enough for most products.  However, when more advanced licensing procedures are needed, we encourage and welcome you to implement whatever features your product and company needs.  This can include the basic TPLAT API, calls into the SoftwareKey DLLs to implement some of their features that we don't natively support, or even coming up with a custom licensing solution that doesn't involve TPLAT at all.  You could very easily incorporate some of the SoftwareKey license checking or activation calls into your pre- or post-install steps in VIPM, or even at run-time of your code and achieve the functionality you're describing.

If you need any help or clarification with this, then please feel free to post here or contact our team directly at labviewtoolsnetwork(at) and we're happy to discuss it further. 

Thanks again for the feedback,


Message 8 of 10

Hi David,

To be honest I never actually thought of trying to implement my own solution, I was so fixed on the problem that the TPLAT couldn't do what I needed.

Thanks for the gentle nudge!



0 Kudos
Message 9 of 10

No problem, I'm glad to help.  Let us know if you need any more nudges as you work through the solution.

0 Kudos
Message 10 of 10