Лицензирование Marketplace-приложения

Средний

Назначение лицензирования — контроль использования платных Marketplace-приложений. О лицензировании читайте в блоке статей Лицензирование.

Если в приложении отсутствуют загруженные лицензии для одного из продуктов, то по умолчанию включается демонстрационный режим работы приложения. В этом режиме пользователю доступна вся функциональность приложения. Количество записей, которые доступны к добавлению в каждую таблицу базы данных, — не более 1000 записей.

Этапы процесса выпуска лицензий:

  1. Сформировать перечень элементов лицензирования.
  2. Определить тип лицензии.
  3. Предоставить информацию, полученную на предыдущих шагах, службе поддержки Marketplace (marketplace@creatio.com). Выполняется разработчиком в личном кабинете разработчика в процессе публикации Marketplace-приложения. Подробнее читайте в статье Этапы публикации Marketplace-приложения.
  4. На основе предоставленной информации служба поддержки Marketplace генерирует лицензии для текущего приложения.
  5. После заказа и оплаты Marketplace-приложения служба поддержки Marketplace устанавливает пользователю необходимые лицензии.

Шаги 1-2 выполняются разработчиком в процессе реализации Marketplace-приложения.

1. Сформировать перечень элементов лицензирования 

Элементы лицензирования:

  • Объекты лицензирования — названия пользовательских объектов, которые добавлены в Marketplace-приложение. Объектами лицензирования являются любые пользовательские объекты, например, объект раздела, детали или справочника.
  • Операции лицензирования — названия операций, которые добавлены в логику Marketplace-приложения для проверки наличия лицензии на использование определенной функциональности. Например, в один из базовых разделов системы добавлено дополнительное действие, с которым необходимо связать операцию лицензирования. При вызове этого действия в программной логике приложения выполняется проверка наличия лицензии. В зависимости от результата, работа функциональности выполняется или прерывается.

В лицензию могут входить объекты и/или операции лицензирования. Элементы лицензирования должны соответствовать требованиям, которые описаны в статье Требования к материалам публикации Marketplace-приложения. Элементы лицензирования не зависят от типа лицензии.

2. Определить тип лицензии 

Типы лицензий, которые предоставляет Creatio:

  • Именные лицензии. Предоставляют доступ к приложению для конкретных пользователей. Привязываются к учетным записям и недоступны к использованию другими пользователями. Администратор приложения может в любой момент перераспределить лицензии между пользователями.
  • Серверные лицензии. Предоставляют доступ к приложению без привязки к конкретным пользователям. Все пользователи Creatio с соответствующими правами имеют доступ к лицензируемой функциональности.

Чтобы разработчику Marketplace-приложения узнать количество оплаченных и предоставленных пользователям лицензий, обратитесь в службу поддержки Marketplace (marketplace@creatio.com).

Способы лицензирования Marketplace-приложения зависят от типа лицензии и элемента лицензирования.

Способы лицензирования Marketplace-приложения
Элемент лицензирования
Тип Marketplace-приложения
Тип подписки
Именная лицензия
Объекты
Новый раздел Creatio. Плата за каждого пользователя, который работает с разделом.
Операции
Коннектор к внешнему сервису (например, коннектор к телефонии). Плата за каждого пользователя, которому предоставляется доступ к сервису (например, доступ к использованию коннектора к телефонии оплачивается для отдельных пользователей).
Объекты и/или операции
Раздел, в котором созданы записи, использующие коннекторы к разным внешним сервисам. Плата за каждого пользователя, которому предоставляется доступ к разделу, и плата за каждый коннектор к сервису. Например, доработан раздел Заявки (Requests). В этом разделе реализована интеграция с внешней системой, в которой регистрируются заявки. Клиент оплачивает доступ к функциональности раздела для каждого пользователя.
Серверная лицензия
Объекты
Новый раздел Creatio. Фиксированная плата, независимо от количества пользователей, которые работают с разделом.
Операции
Коннектор к внешнему сервису (например, коннектор к Web-чату, в ходе работы которого в Creatio регистрируются лиды или обращения). Фиксированная плата, независимо от количества пользователей, которым предоставляется доступ к сервису.

Важно. Запрещается одновременное использование именных и серверных лицензий, которые лицензируют одинаковые объекты и операции.

Независимо от типа лицензии, срок ее действия составляет 365 дней. Срок действия лицензии указывается в лицензии и контролируется платформой Creatio.

Варианты проверки срока действия лицензий:

  • Если в лицензию входят объекты лицензирования, то нет необходимости в реализации проверки наличия лицензий, поскольку эта проверка выполняется встроенными средствами Creatio. Название лицензируемых объектов начинается с префикса, который указан в поле Developer prefix профиля разработчика. Профиль разработчика описан в статье Подготовка к разработке Marketplace-приложения.
  • Если в лицензию входят операции лицензирования, то в коде Marketplace-приложения реализуйте проверку наличия лицензии на выполнение этой операции.

Важно. Реализация проверки наличия лицензии на операцию в схемах конфигурационных элементов является небезопасной, поскольку исходный код схем доступен для чтения и замещения. Поэтому для определения срока действия лицензий необходимо использовать объекты лицензирования, а проверку на операцию рекомендуем реализовать во внешней сборке. Для этого воспользуйтесь инструкцией, которая приведена в статье Защита исходного кода Marketplace-приложения от плагиата.

Способы реализации проверки наличия лицензий:

  • На back-end стороне.
  • На front-end стороне.

Методы класса Terrasoft.Core.LicHelper, которые используются для проверки наличия лицензий операций лицензирования на back-end стороне приложения:

  • GetHasOperationLicense(string sysPackageOperationCode) — если лицензия найдена, то возвращает true. В другом случае — false.
  • CheckHasOperationLicense(string sysPackageOperationCode) — если лицензия найдена, то возвращает true. В другом случае — генерирует исключение LicException.

sysPackageOperationCode — строковый параметр, который содержит название операции лицензирования. Это название необходимо указать в личном кабинете разработчика в процессе публикации Marketplace-приложения. Подробнее читайте в статье Этапы публикации Marketplace-приложения.

UserConnection.LicHelper.GetHasOperationLicense("MyMarketplaceApplication.Use");
UserConnection.LicHelper.CheckHasOperationLicense("MyMarketplaceApplication.Use");

Чтобы реализовать проверку наличия лицензий выполняется на front-end стороне приложения:

  • Реализуйте пользовательский конфигурационный веб-сервис, в котором выполните проверку наличия лицензии.
  • Добавьте в приложение программную логику обращения к реализованному веб-сервису.