Marketplace application licensing
Glossary Item Box
Paid marketplace applications must be licensed to monitor their use. The main license types are:
- Named licenses - grant application access for specific users. These licenses are linked to user profiles and can not be utilized by other users. The system administrator can redistribute registered licenses at any time. The process of distributing licenses among bpm’online users is described in the License distribution article.
- Server licenses - do not provide for the need to license individual users. All bpm'online users with the appropriate access rights will be able to access the licensed functionality.
Regardless of license type, it may include:
- Licensing objects – the names of custom objects added to the marketplace application. This list can include any custom objects, such as a section, detail or lookup objects.
- Licensing operations – the names of operations added to the application logic to see whether a license is available for the use of certain functionality. For example, an additional action that requires the connection to the licensing operation has been added to one of the base system sections. When this action is triggered in the application, the license must be checked first, and based on that the functionality should either be continued or interrupted.
A marketplace developer may learn about the amount of purchased and distributed user licenses by contacting marketplace support (email@example.com).
Possible methods of licensing depend on the license type and the subject of licensing (table. 1).
Table 1. Possible licensing methods
|License type||The subject of licensing||Business cases|
|Nominal||Objects||The marketplace application is a new bpm’online section. The developer would like to receive a fee for every user working in their section.|
The marketplace application is a connector to a third-party service. The developer would like to receive a fee for every user with the access to the service.
For example, a telephony connector with a single user subscription model.
|Server-based||Objects||The marketplace application is a new bpm’online section. The developer would like to receive a fixed fee, regardless of how many users work with the section.|
The marketplace application is a connector to a third-party service. The developer would like to receive a fixed fee, regardless of how many users work with the section.
For example, a web-chat connector, used to register leads / cases in bpm’online. The client purchases license regardless of the quantity of users.
|Nominal||Objects and / or operations||
The marketplace application is a section with records that are created based on the data from third-party connectors to external services. The developer would like to receive a fee for every user with the access to the service. Additionally, the developer would like to receive a fee for every connector to the service.
For example, the [Cases] section is modified in the vertical solution framework. It integrates with the external system used to register cases. The client pays for access to the section functionality for each user.
It is prohibited to use both nominal and server-based licenses that encompass the same objects and operations.
What is the validity period of a license
Every license includes the period of its validity. The bpm'online platform monitors the validity of licenses. If the date has expired, the work of the licensed object or operation will be blocked.
Depending on the validity period, the licenses can be of two types:
- Annual - designed for marketplace applications distributed with an annual subscription. The license is valid for one year. Upon expiration, the client must renew the annual subscription and get a new license.
- Unlimited – designed for marketplace applications with a single payment method. The license is unlimited.
The process of issuing a license for a new product
1. When creating a marketplace application, the developer must decide:
a) What will be included in the license - licensing objects or operations (both options are possible). They must also create a list of licensed objects and / or operations.
B) Determine the type of license - nominal or server-based. The main types of bpm'online licenses and their usage options are listed in the “Bpm'online licensing“ article.
c) Determine the license validity period – the license is annual or unlimited.
If the license includes licensing operations, it is necessary to implement a license validation in the program code of the application. The verification logic for object licensing is already implemented in the base version of bpm'online.
2. Upon successful verification of the application by marketplace employees, the developer must provide a list of licensed objects and operations, as well as the information about the type and duration of the license to the marketplace support team (firstname.lastname@example.org).
3. Based on the provided list, the marketplace support service generates licenses for this application.
4. In the future, after ordering and paying for the marketplace application, the user will have the necessary licenses installed by the marketplace support service.
How to implement the license checking mechanism in a product
Checking licensing objects
If the license application includes only licensing objects, then no improvements in the marketplace application are required. The license for licensing objects is checked by the base bpm'online tools.
Checking licensing operations
If the application license includes a licensing operation, provide a license verification mechanism in the source code of the application to perform this operation.
To do this, use one of the methods of the LicHelper class of the Terrasoft.Core library:
- GetHasOperationLicense - returns true if the license is found, and false if the license is missing.
- CheckHasOperationLicense - returns true if the license is found. If there is no license, it generates the LicException exception.
public bool GetHasOperationLicense(string sysPackageOperationCode); public bool CheckHasOperationLicense(string sysPackageOperationCode);
The sysPackageOperationCode string parameter must contain the name of the licensed operation passed to the marketplace support service.
Examples of method use:
You can check the existence of an operation license only on the server side of the application. If the marketplace application works only with the client’s part of bpm'online, you need to:
We do not recommend verifying the existence of an operation license directly in custom schemas since the source code of a custom schema configuration packages is read/replace-only. Therefore, we recommend using licensing objects.
Application demo version
If the bpm'online application does not have any downloaded licenses for any of the products, the application's demo mode is enabled by default. In demo mode, all bpm'online functionality is available to the user, but not more than 1000 records may be added to each database table.