Утилиты

Описание

Утилиты - дополнительные программы для более специализированного применения.

Утилиты ядра

Утилиты ядра являются самыми необходимыми утилитами от установки до эксплуатации приложения и лежат в папке 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-runner
  • bin/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.