Утилиты¶
Описание¶
Утилиты - дополнительные программы для более специализированного применения.
Утилиты ядра¶
Утилиты ядра являются самыми необходимыми утилитами от установки до эксплуатации приложения и лежат в папке 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.