25 сентября 2017 г.

Подключаемые модули в версии 2017

Версия «ЛОЦМАН:PLM 2017» принесла новые изменения в работу подключаемых модулей.

Теперь есть три варианта клиентских лицензий: Базовая, Стандартная и Максимальная. Тип лицензии определяет набор функций, которые будут доступны в клиентском приложении. В том числе использование подключаемых модулей:
  • Для базовой лицензии использование подключаемых модулей недоступно.
  • Для стандартной лицензии необходимо приобретение дополнительной опции «Использование расширений».
  • Для максимальной лицензии нет ограничений.

Ограничения не распространяются на подключаемые модули из поставки ЛОЦМАН:PLM (Извещения, Архив, Технология, Обмен данными и другие).

Доверенные расширения


Клиент отличает обычные и «доверенные» (подключаемые модули из комплекта поставки) расширения с помощью вызова функции lcpi_authenticate_vendor_module, экспортируемой подключаемым модулем. Функция вызывается при загрузке модуля и в нее передается зашифрованное полное имя файла загружаемого модуля. Для шифрования используется блочный шифр RC5.

Подключаемый модуль сначала расшифровывает имя файла (Request) и, если оно совпадает с его именем, еще раз шифрует уже зашифрованное имя (Request) и возвращает в клиент (Response). Клиент дешифрует значение, которое вернул модуль, и сравнивает с переданным. Если они совпадают, расширение считается «доверенным».
procedure lcpi_authenticate_vendor_module(var Response: WideString;
    const Request: WideString); stdcall;
begin
    Response := RC5(Request, Key);
end;

Размещение пунктов меню


С версии 2013 изменилось размещение пунктов меню. В прошлый раз новое поведение меню было описано неполно.

Итак, stMenu — это названия пунктов меню, разделенные символом '#'. Название первого пункта меню указывает, как меню подключаемого модуля будет расположено относительно собственного меню клиента. Возможные значения перечислены ниже:

Название первого пункта Меню клиента
MI_EDIT Правка
MI_OBJECTS Объекты
MI_TOOLS Инструменты
MI_HELP Справка
BEFORE_*, AFTER_* (любой текст вместо звездочки) Дополнения
Любое другое название (например, «Мой плагин») Мой плагин

Пример размещение пункта меню модуля в меню «Дополнения» клиента: название пунктов меню 'BEFORE_MI_TOOLS#Мои плагины#Тестовый#Состав'.


Пример размещение пункта меню модуля в меню «Инструменты» клиента: название пунктов меню 'MI_TOOLS#Мои плагины#Тестовый#Состав'.


Пример размещение пункта меню модуля в главном меню клиента: название пунктов меню 'Мои плагины#Тестовый#Состав'.


Изменения в API


Описание интерфейсов нового APIv17 доступно на GitHub.

Все функции из версии 14 остались на своих местах, проблем с переходом на версию 17 замечено не было.

Из нового стоит отметить интерфейсы ILoodsmanClientUtils и IPDMEntityManager. Но, к сожалению, документации по ним в комплекте поставки нет.

Комментариев нет:

Отправить комментарий