CodeMeter License Central allows you to deliver and update licenses in many different ways. Two new features introduced in version 3.20 complete this picture: Licenses created or delivered by mistake can be withdrawn from the user immediately – safely and securely. Changes to licenses can also be enforced with a new function that replaces licenses permanently with new ones.
We have all been there: Stuck in the slowest checkout lane. A young mother in front with a toddler at her side, screaming for that candy bar. And the elderly lady at the counter forgot her purse. Everything grinds to a halt. “Supervisor to checkout 3”. If only we had picked lane 2…
This is a common situation not only at supermarket checkouts, but also in license management. One wrong click, and we picked the expensive network license instead of the cheaper single-user license in the heat of the moment. The incorrect transaction is confirmed without checking and then we realize what just happened. What now? The transaction can be cancelled, but that means entering all details again. We might also be unaware of the incident before the user activates the incorrect license.
Maybe the user ordered and received a version he wants to return within the standard allowable grace period. Or the sales team promised an update that does not actually exist. How can we get the license back?
The new CodeMeter License Central 3.20 includes the “Withdraw” function that allows you to flag individual licenses for withdrawal.
If not activated yet, the licenses marked in this way will be withdrawn immediately, or at the next possible opportunity if they are already activated. After withdrawal, they will no longer be available.
How does this work? For CodeMeter License Central, a license can go through several specific states:
Not yet collected
Collected (without receipt)
Returned (without receipt)
This is where the license has come full circle: A license that has been returned (with receipt) is the same as a license that has not yet been collected.
If the license is there in CodeMeter License Central (i.e. not collected or confirmed returned) it will immediately be removed from the ticket and will no longer show up in license queries. It will only be visible in the history logs of the order and the CmContainer.
In the other three cases, the license is still with the user. When a withdrawal is ordered, the system first checks whether the license can be withdrawn without infringing the settings of other licenses. For instance, if a basic license is to be withdrawn, an add-on license should not have been activated in the first place – the update conditions require a valid basic license. In cases like these, the license withdrawal is not accepted, and the software vendor is sent an error message.
Upon passing this check, the license is earmarked for withdrawal and listed with the auto-updates.
Whatever happens, that license will be withdrawn as soon as the CmContainer is reprogrammed – irrespective of whether an auto-update is executed or another license is activated or deactivated. The technology under the hood has been streamlined to allow all actions to be completed in a single process, using this sequence:
Manually selected licenses for deactivation
Licenses to replace
Manually selected licenses for activation
The manual actions are initiated by the users themselves; the rest are initiated by the software vendor. The user has no way of preventing or skipping them. If there is a conflict in the sequence (e.g. other licenses not activating or deactivating after a license has been withdrawn), only the actions initiated by the vendor are executed. This differs somewhat from the current process which would have terminated completely and returned an error message in such instances.
No need to worry if you have made a mistake or if you have to cancel a transaction: You can simply withdraw the license, and you can rest assured that it will actually be taken away from the user at the next possible point.
Withdrawing licenses might not be enough. We may want to replace a license for many reasons, be there a typo in the licensing conditions, a revised order, or a change in the actual product that we want existing clients to benefit from as well. This could be done by “selling” an update or upgrade for free, but this comes at a price that we might only realize later on: When the licenses are transferred at some later point in time (i.e. moved from one CmContainer to another), all original licenses and all of their updates first need to be returned to CodeMeter License Central and then downloaded into the new CmContainer. This makes for unnecessarily complicated calculations, and the user needs to know all applicable ticket numbers. The data on the tickets will also become more complex every time and might cause utter confusion for everybody involved.
The basic idea is to replace the old license with a new one. As soon as the old license has been replaced, it will disappear from the ticket. It remains in the sales and activation history, but it is gone for good from the ticket.
This works by withdrawing the old license according to the same rules and the same processes used for regular license withdrawals. If the license in question is currently available in CodeMeter License Central, it is simply replaced with a new one on the same ticket. If it is currently with the user, it will be withdrawn and a new license activated at the next possible opportunity. The only difference concerns the return of the old license in this process: The new license is not activated directly, but rather made available again for activation on the ticket after the reprogramming.
As with license withdrawals, the user has no way of preventing the license replacement. He might not even notice it, if he only activated another license.
The ability to withdraw and replace licenses adds two more powerful tools to support software vendors‘ business processes even more accurately and effectively in CodeMeter License Central.