Общие сведения
Python-скрипт экспорта (далее — скрипт) обеспечивает экспорт данных из окна мультисферы в форматах XLSX и ODS по шаблону, заданному в файле конфигурации в формате JSON. Скрипт необходимо зарегистрировать для приложения при помощи утилиты plm-util, чтобы приложение могло с ним работать.
При регистрации скрипта необходимо указывать его название, которое в приложении будет отображаться в списке шаблонов при экспорте с отметкой чекбокса «Выбрать формат перед экспортом» (см. раздел «Экспорт» в руководстве пользователя).
В приложении может быть зарегистрировано сколько угодно много скриптов. Для каждого зарегистрированного скрипта обязательно должен быть предоставлен файл конфигурации в формате JSON (далее — файл конфигурации). Структура файла конфигурации подробно описана на странице «Экспорт данных» в текущем руководстве.
Если для какого-либо зарегистрированного скрипта файл конфигурации отсутствует или имеет недопустимую структуру, то при попытке экспорта по соответствующему шаблону будет отображаться сообщение об ошибке экспорта. Если в пути до файла конфигурации будет содержаться ошибка, то приложение попытается использовать путь, заданный по умолчанию, то есть попытается применить файл config.json, лежащий в той же папке, в которой находится сам скрипт (/var/plmrepo/python-export-excel/src/).
При первоначальной установке пакета со скриптом в папке /var/plmrepo/python-export-excel/src/ можно увидеть пример файла конфигурации config.json.example. Можно использовать этот файл конфигурации как файл конфигурации по умолчанию, настроив его нужным образом и переименовав в config.json.
На его основе можно создавать другие файлы конфигурации и указывать путь до каждого из них при регистрации соответствующих скриптов.
Путь к файлу конфигурации для конкретного зарегистрированного скрипта устанавливается при регистрации скрипта или при редактировании файла-ресурса через утилиту 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
Регистрация скрипта
Открыть на редактирование файл plm-util.conf:
nano /etc/polymatica/plm-util.conf
Добавить в него строки:
# Команда регистрации скрипта create-pyscript # Название регистрируемого скрипта Python pyscripts.create.name = Шаблон1 # Тип регистрируемого скрипта Python (Возможные типы: "formatted_export", "linked_scenario". Для скрипта экспорта используется тип "formatted_export".) pyscripts.create.type = formatted_export # Путь до регистрируемого скрипта Python на диске pyscripts.create.script = /var/plmrepo/python-export-excel/src/main.py # Путь до файла конфигурации регистрируемого скрипта pyscripts.create.config = /path/to/python-export_excel/config1.json # Формат экспортируемого файла (Возможные форматы: "xls", "ods") pyscripts.create.format = xls
Сохранить изменения в plm-util.conf и выполнить команду:
plm-util --create-pyscript
Обновление скрипта
Открыть на редактирование файл plm-util.conf:
nano /etc/polymatica/plm-util.conf
Добавить (раскомментировать) строки:
# Команда обновления скрипта update-pyscript # Внесение изменений в зарегистрированный скрипт Python по имени # pyscripts.update.by_name = Шаблон1 # либо # Внесение изменений в зарегистрированный скрипт Python по идентификатору # pyscripts.update.by_id = 1a71ec1d # Новое наименование для скрипта Python pyscripts.update.new_name = Шаблон2 # Новый тип скрипта Python pyscripts.update.new_type = formatted_export # Путь до нового скрипта Python pyscripts.update.new_script = /path/to/new_folder_with_source_script/src/main.py # Путь до файла конфигурации нового скрипта pyscripts.update.new_config = /path/to/python-export_excel/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 = Шаблон1 либо # Удаление зарегистрированного скрипта Python по идентификатору # pyscripts.delete.by_id = e654a03f
Выполните команду:
plm-util --delete-pyscript
Вывод списка зарегистрированных скриптов
Открыть на редактирование файл plm-util.conf:
nano /etc/polymatica/plm-util.conf
Добавить (раскомментировать) строки:
# Напечатать информацию по имеющимся скриптам list_pyscripts # Напечатать информацию только по скриптам экспорта (тип "formatted_export") pyscripts.list.type = formatted_export
Сохранить изменения в 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