elma365pm — это CI/CD утилита командной строки для работы с объектами конфигурации и модулями ELMA365. Она позволяет экспортировать и распаковывать Решение, Раздел или Модуль из площадки в файловую структуру, а также упаковывать и импортировать их на площадку.
Утилита нужна для реализации этапов Continuous integration / Continuous delivery в рамках культуры DevOps при разработке решений.
Обратите внимание, экспортировать платные системные решения с помощью утилиты elma365pm нельзя.
С примером по организации цикла разработки и выкладки с использованием системы контроля версий git и нескольких окружений dev-test-prod можно ознакомиться в ELMA365 Community в статье «Рекомендации по Low-code DevOps».
Загрузка утилиты
По ссылкам ниже вы можете загрузить версию утилиты, совместимую с нашим публичным облаком и самой последней версией On-Premises:
Возможности утилиты
Для получения справки после загрузки выполните команду:
elma365pm --help
На текущий момент доступны следующие функции:
elma365pm unpack |
Распаковать пакет экспорта .e365 в файловую систему |
elma365pm pack |
Упаковать директорию в пакет .e365 |
elma365pm export solution |
Экспортировать решение из ELMA365 в директорию файловой системы |
elma365pm export namespace |
Экспортировать раздел из ELMA365 в директорию файловой системы |
elma365pm export module |
Экспортировать модуль из ELMA365 в директорию файловой системы |
elma365pm import |
Импортировать объекты в ELMA365 |
elma365pm export configuration |
Экспортировать конфигурацию ELMA365 в директорию файловой системы. Команда работает в ELMA365 On-premises 2022.11 и выше |
Чтобы получить более подробные инструкции по использованию каждой команды выполните:
elma365pm <command> --help
Например, для экспорта решения с площадки в папку на диске можно выполнить команду:
elma365pm export solution --token=TOKEN --host=https://dev-elma365.myorg --out=my_solution --code=my_solution_code
Обратите внимание, если в экспортируемом решении есть связь с компонентами другого решения, в функции экспорта нужно использовать параметр --allow-deps
со значением true
:
elma365pm export solution --token= TOKEN --host= https://dev-elma365.myorg --out= my_solution --code= my_solution_code --allow-deps=true
Если не использовать параметр --allow-deps
или установить для него значение false
, решение со связанными компонентами не экспортируется.
Для упаковки с диска и импорта обратно на площадку:
elma365pm import --token=TOKEN --host=https://dev-elma365.myorg --src=my_solution --version-up
Где TOKEN
— это веб-токен, который создан для пользователя с правами администратора.
Файловая структура решения
При распаковке решения в файлы командой export вы увидите в целевой папке примерно следующую структуру (в данном случае мы взяли готовое бизнес-решение Служебные записки):
PS InternalDocuments> tree /F |
На верхнем уровне находятся папки сервисов, т. к. архитектура системы микросервисная. В каждой папке сервиса обычно есть файл manifest.json
и 2 папки entities
и resources
. В корне также лежит файл package.json
, в котором описаны основные данные выгруженного решения или раздела.
В основном файлы в структуре делятся на 3 типа:
- Файлы описаний конфигурации — это файлы формата .json или файлы без расширения, также являющиеся JSON-файлами. В этих файлах можно найти описание полей и настройки приложения, описание процесса, виджеты и модули.
- Файлы скриптов — это файлы формата .ts, в которых хранятся тексты скриптов процессов, виджетов, модулей.
Файлы скриптов распаковываются для удобного просмотра и совместного ревью кода. Содержимое этих файлов не упаковывается в пакет при импорте.
Обратите внимание, с версии ELMA365 2022.11 вы можете редактировать распакованные файлы скриптов, а также использовать файлы-автодополнения для удобства работы в редакторах кода.
- Прочие файлы ресурсов или локализации. Такие файлы обычно находятся в папке
resources
. Локализация пакетов решений в будущем будет переработана, поэтому сейчас файлы локализации используются ровно один раз при первом импорте пакета. Вы можете вносить изменения прямо в эти файлы, и они будут упакованы утилитой.