Операция
Операция – набор предопределённых действий, которые могут выполняться по запросу пользователя или при смене состояния объекта.
Создание и удаление операций
Операции для объектов и связей создаются в секции Операции. Также, в этой секции можно изменить, удалить и запустить существующие операции.
Также, можно задать операции по умолчанию для классов объектов в окне конфигурации системы.
Все новые объекты будут созданы с настроенными в классах операциями.
Создать операции для классов и сущностей также можно через REST API.
Выполнение операций
Запуск операции может быть вызван одним из следующих способов:
Событие запуска и результат выполнения операции записываются в журнал с указанием времени и инициатора. |
Использование переменных в операциях
В топике и сообщении операций типа MQTT-сообщение, а также в скрипте операций типа Выполнение программы/скрипта – Скрипт с указанным текстом можно использовать переменные, чтобы передавать в них некоторую системную информацию.
Система позволяет использовать следующие переменные:
-
{{id}}
– идентификатор объекта, в котором запущена операция; -
{{properties.имя_свойства}}
– значение свойства объекта, в котором запущена операция (в переменной указывается имя свойства); -
{{jobId}}
– идентификатор запущенной операции;Идентификатор уникален для каждого запуска – подробности в документации по REST API. -
{{user.id}}
– идентификатор пользователя, который запустил операцию; -
{{user.login}}
– логин пользователя, который запустил операцию.
Запрос аргументов операции у пользователя
Перед выполнением операции у пользователя можно запросить аргументы, которые будут передаваться в скрипт. Для этого в скрипте нужно указать макрос {{ask.имя_аргумента}}
.
Для операций подтипа "Программа/скрипт в ФС" и "Скрипт из репозитария" этот макрос можно добавлять только в поле "Аргументы". Для подтипа "Скрипт с указанным текстом" {{ask.имя_аргумента}} можно указывать как в списке "Аргументы", так и в теле скрипта.
Запрос аргументов работает только для операций типа "Выполнение программы / скрипта". Для операций типа "MQTT-сообщение" макрос {{ask.имя_аргумента}} заменяется на пустую строку.
|
Например, операция, которая вызывает следующий скрипт, запросит у пользователя, который её запустил, переменные packets_count
и ip_address
:
#!/bin/bash
ping -c {{ask.packets_count}} {{ask.ip_address}}
При запуске этой операции, система покажет пользователю следующее окно, в котором он сможет ввести значения переменных packets_count
и ip_address
:


Также этот макрос можно использовать в поле "Аргументы":


Для того, чтобы пример выше мог работать с аргументами, его нужно модифицировать следующим образом:
#!/bin/bash
ping -c "$1" "$2"