Python-скрипт детализации (далее — скрипт) обеспечивает детализацию Drill-through, выполняя ее по условиям, описанным в файле конфигурации в формате JSON (см. Детализация Drill-through). Скрипт необходимо зарегистрировать для приложения при помощи утилиты plm-util, чтобы приложение могло с ним работать.
При регистрации скрипта необходимо указывать его название, которое в приложении отображается в выпадающем списке варианта «Связанный сценарий» контекстного меню факта (см. Детализация Drill-through).
В приложении может быть зарегистрировано сколько угодно много скриптов. Для каждого зарегистрированного скрипта обязательно должен быть предоставлен файл конфигурации в формате JSON (далее — файл конфигурации). Если для какого-либо зарегистрированного скрипта файл конфигурации отсутствует или имеет недопустимую структуру и детализация включена параметром конфигурации приложения plm.user_interface.scenario_hyperlink_enabled, то в ЛЮБОМ воспроизведенном сценарии, для ЛЮБОЙ его мультисферы контекстное меню факта НЕ ОТКРЫВАЕТСЯ, а в лог приложения записывается ошибка вида, соответственно:
Failed to get list of registered python scripts: linked scenario script 'Имя сценария' config file not exists Failed to get list of registered python scripts: Rapidjson assertion error |
Путь к файлу конфигурации для конкретного зарегистрированного скрипта устанавливается при регистрации скрипта или при редактировании файла-ресурса через утилиту plm-util (см. разделы «Регистрация скрипта» и «Обновление скрипта» ниже). Это позволяет иметь единственный файл с исходным кодом скрипта и отдельные файлы конфигурации для каждого конкретного зарегистрированного скрипта.
Для обратной совместимости сохранена поддержка скриптов, файлы конфигурации которых хранятся в директории /var/plmrepo/pyscripts/директория_зарегистрированного_python-скрипта. |
Регистрировать, обновлять и удалять можно только по одному скрипту за раз.
Остановить работу приложения:
systemctl stop polymatica.service |
Убедиться, что в файле конфигурации утилиты plm-util.conf указан параметр, определяющий путь до репозитория Polymatica Analytics, обычно это /var/plmrepo:
plm.manager.repo_directory = /var/plmrepo |
Открыть на редактирование файл plm-util.conf:
nano /etc/polymatica/plm-util.conf |
Добавить в него строки:
# Команда регистрации скрипта create-pyscript # Название регистрируемого скрипта Python pyscripts.create.name = Python Linked Scenario # Тип регистрируемого скрипта Python [Возможные типы: "formatted_export", "linked_scenario". Для скрипта детализации используется тип "linked_scenario".] pyscripts.create.type = linked_scenario # Путь до регистрируемого скрипта Python на диске pyscripts.create.script = /var/plmrepo/python-linked_scenario/link.py # Путь до файла конфигурации регистрируемого скрипта pyscripts.create.config = /path/to/python-linked-scenario/config.json # Идентификатор факта, для которого задан скрипт типа "linked_scenario". Функциональность временно выключена. pyscripts.create.measure_id = 07141982 |
Сохранить изменения в plm-util.conf и выполнить команду:
plm-util --create-pyscript |
Открыть на редактирование файл plm-util.conf:
nano /etc/polymatica/plm-util.conf |
Добавить (раскомментировать) строки:
# Команда обновления скрипта update-pyscript # Внесение изменений в зарегистрированный скрипт Python по имени # pyscripts.update.by_name = Python Linked Scenario # либо # Внесение изменений в зарегистрированный скрипт Python по идентификатору # pyscripts.update.by_id = 1a71ec1d # Новое наименование для скрипта Python pyscripts.update.new_name = New Python Linked Scenario # Новый тип скрипта Python pyscripts.update.new_type = linked_scenario # Путь до нового скрипта Python pyscripts.update.new_script = /var/plmscripts/linked_scenario/test_python_script_2.py # Путь до файла конфигурации нового скрипта pyscripts.update.new_config = /path/to/python-linked-scenario/config2.json |
Сохранить изменения в plm-util.conf и выполнить команду:
plm-util --update-pyscript |
Открыть на редактирование файл plm-util.conf:
nano /etc/polymatica/plm-util.conf |
Добавить в него строки:
delete-pyscript # Удаление зарегистрированного скрипта Python по имени # pyscripts.delete.by_name = Python Linked Scenario либо # Удаление зарегистрированного скрипта Python по идентификатору # pyscripts.delete.by_id = e654a03f |
Выполните команду:
plm-util --delete-pyscript |
Открыть на редактирование файл plm-util.conf:
nano /etc/polymatica/plm-util.conf |
Добавить (раскомментировать) строки:
# Напечатать информацию по имеющимся скриптам list_pyscripts # Напечатать информацию только по скриптам детализации (тип "linked_scenario") pyscripts.list.type = linked_scenario |
Сохранить изменения в plm-util.conf и выполнить команду:
plm-util --list-pyscripts |
В результате будет получен ответ с указанием количества скриптов и списком скриптов. В списке для каждого скрипта будут указаны его название, идентификатор, создатель, дата и время создания и обновления, тип, путь до скрипта и путь до файла конфигурации, а также статус файла конфигурации.
|
Для обратной совместимости сохранена поддержка скриптов, файлы конфигурации которых хранятся в директории /var/plmrepo/pyscripts/директория_зарегистрированного_python-скрипта. Так как такие скрипты были зарегистрированы без указания пути до файла конфигурации, при вызове списка зарегистрированных скриптов у такого скрипта соответствующая строка будет иметь следующий вид: [2025-07-30 14:25:57.167 +03:00][ info][util] -- script config path: "" (exists: false) |
После успешного завершения процедур регистрации, перерегистрации, удаления или вывода списка скриптов можно запустить сервисы Polymatica Analytics командой:
systemctl start polymatica.service |