Утилиты¶
Описание¶
Утилиты - дополнительные программы для более специализированного применения.
Утилиты ядра¶
Утилиты ядра являются самыми необходимыми утилитами от установки до эксплуатации приложения и лежат в папке bin
. Перед их запуском необходимо указать переменную окружения NODE_PATH
, если она не задана заранее (с указанием на папку ядра).
В состав ядра входят утилиты:
bin/acl.js
- для импорта и редактирования настроек безопасности приложения (ресурсы, роли, пользователи, права доступа). Параметры запуска:--u
- указывается пользователь--res
- указывается ресурс--role
- указывается роль--p
- указывается доступ--m
- указывается метод применения доступа--d
- указывается для импорта директория с настройками безопасности
bin/adduser.js
- для добавления новых пользователей в настройки безопасности приложения. Параметры запуска:--name
- указывается логин пользователя (по умолчанию admin)--pwd
- указывается пароль пользователя (по умолчанию admin)
bin/bg.js
- для запуска фоновых процедур с низким приоритетом, требующих больших мощностей от процессора или выполняющихся относительно длительно по времениbin/export.js
- для экспорта приложения в локальную директорию. Параметры запуска:--dst
- путь к директории, в которую будет записан результат экспорта (по умолчанию ../out)--ns
- указывается неймспейс приложения--file-dir
- путь к директории, в которую будут экспортированы файлы из файловых атрибутов--acl
- дополнительно экспортировать настройки безопасности--nodata
- пропустить экспорт для всех созданных объектов в приложении--nofiles
- пропустить экспорт файловых атрибутов--ver
- версия (последняя версия -last)
bin/import.js
- для импорта метаданных приложения. Параметры запуска:--src
- путь к директории, из которой будет происходить импорт (по умолчанию ../in)--ns
- неймспейс приложения--ignoreIntegrityCheck
- при импорте игнорируется целостность данных
bin/import-data.js
- для импорта данных приложения. Параметры запуска:--src
- путь к директории, из которой будет происходить импорт (по умолчанию ../in)--ns
- неймспейс приложения
bin/job-runner.js
- для запуска задач по расписаниюbin/job.js
- для запуска рабочего компонента задания из утилиты job-runnerbin/meta-update.js
- для конвертации меты приложения из одной версии в другуюbin/schedule.js
- для ручного запуска задач по расписаниюbin/setup.js
- для установки настроекdeploy
из приложения. Параметры запуска:--reset
- предварительный сброс всех настроекdeploy
в приложении--sms
- при сбросе настроек, не зачищаются настройкиdeploy
помеченные как важные--rwa
- переопределять, а не дополнять массивы в настройкахdeploy
Утилиты приложения¶
Утилиты приложения реализуют специфичный функционал приложения на этапе эксплуатации, которое пока не реализовано в ядре в унифицированном виде для различных приложений. Как правило, данные утилиты находятся в директории lib
и подключаются к приложению через deploy
.
Примеры реализованных утилит для приложения sakh-pm
:
lib/actions/createIndicatorValueHandler.js
- утилита создания показателей в коллекции за выбранный периодlib/actions/createProjectReportsHandler.js
- утилита автоматического создания печатных форм по проекту с сохранением файлов в облакоlib/actions/assignmentToEventOnly.js
- утилита, формирующая из поручения контрольную точку
Создание утилиты для приложения на примере createIndicatorValueHandler¶
Реализация¶
Для реализации как правило используется язык JavaScript с использованием доступного функционала модулей, входящих в приложение.
При реализации утилит в приложении с относительно большим функционалом сами файлы могут быть разбиты на несколько зависимых файлов.
В приведенном примере в главном файле утилиты lib/actions/createPlanIndicatorsHandler.js
должен быть экспорт последней строкой:
module.exports = CreatePlanIndicatorsHandler;
Подключение к приложению¶
Для запуска утилиты при эксплуатации приложения нужно настроить параметры подключения в deploy
.
Для примера нужно сначала для утилиты добавить элемент интерфейса в представлении, который будет запускать утилиту. Для этого в файле views/indicatorFinancial/item.json
нужно добавить кнопку CREATE_INDICATOR_VALUE
:
{
"id": "CREATE_INDICATOR_VALUE",
"caption": "Сформировать собираемые значения",
"visibilityCondition": null,
"enableCondition": null,
"needSelectedItem": false,
"signBefore": false,
"signAfter": false,
"isBulk": false
}
Затем нужно добавить настройки в deploy
, чтобы связать кнопку в интерфейсе CREATE_INDICATOR_VALUE
и утилиту createIndicatorValueHandler
:
"modules": {
"registry": {
"globals": {
"di": {
"createIndicatorValueHandler": {
"module": "applications/sakh-pm/lib/actions/createIndicatorValueHandler",
"initMethod": "init",
"initLevel": 2,
"options": {
"data": "ion://securedDataRepo",
"workflows": "ion://workflows",
"log": "ion://sysLog",
"changelogFactory": "ion://changelogFactory",
"state": "onapp"
}
},
"actions": {
"options": {
"actions": [
{
"code": "CREATE_INDICATOR_VALUE",
"handler": "ion://createIndicatorValueHandler"
}
]
}
}
В примере все настройки хранятся для модуля registry, так как из него будет вызвана утилита при нажатии на кнопку CREATE_INDICATOR_VALUE
в форме объекта класса indicatorFinancial
.