Общие сведения

Данное действие осуществляет запуск внешней программы на выбранном сервере домена.

Не рекомендуется запускать на сервере программы с графическим интерфейсом. При возникновении проблем с запуском интерактивных служб рекомендуется обратиться к инструкциям Windows.

Настройка макрокоманды

Для настройки необходимо:

  1. Разрешить взаимодействие серверной службы ITV Host Servise с рабочим столом (Компьютер → Управление → Службы → Свойства службы → Вход в систему).

    Для типа установки Отказоустойчивый сервер и клиент (см. Установка) необходимо разрешить взаимодействие для службы ITV RaFT supervisor service.

  2. Добавить в папку <Директория установки ПК Интеллект X>\UserScripts\ один или несколько пакетных файлов bat с командой запуска приложения. Команда должна содержать путь к исполняемому файлу программы. Разрешается задание сетевого пути, параметров командной строки (см. Запустить стороннее приложение на клиенте) и использование шаблонов (см. Текстовые шаблоны в настройках действий).
  3. Перейти на вкладку Программирование.
  4. Нажать на кнопку Создать... в списке Правила по событиям или Циклические правила (см. Конфигурирование макрокоманд).
  5. Выбрать условие запуска, которое вызовет срабатывание макрокоманды (см. Настройка условий запуска).
  6. Нажать на кнопку под условиями запуска.
  7. Из выпадающего списка выбрать действие Общее: Запустить стороннее приложение на сервере.
  8. В параметре Запуск внешней программы на сервере выбрать сервер, на котором необходимо запускать программу.
  9. В параметре Исполняемые файлы выбрать пакетный файл с командой запуска.
  10. В параметре Параметры запуска ввести шаблоны, если они были заданы в bat-файле.

    Если ожидается, что в результате запроса подстановочный знак будет содержать пробелы и/или некоторые специальные символы оболочки (> & | < и т. д.), то шаблон должен быть заключен в кавычки (""). Например, "{rectangles}". Необходимо брать в кавычки всю строку шаблона.

  11. Нажать на кнопку Применить .

Настройка действия Запустить стороннее приложение на сервере завершена.

Примеры использования

Пример 1

При использовании bat-файла с содержимым

SET "datatime=%1"
SET "cameraIpAddress=%2"

msg * Current time is %datatime%, IP-address: %cameraIpAddress%

сработка макрокоманды приведет к следующему сообщению:

 

Пример 2

Экспорт событий об изменении статуса камер (связь потеряна/восстановлена) в формат csv, bat-файл с содержимым:

SELECT "timestamp"
	,REGEXP_REPLACE("object_id", 'hosts/', '') as device,
	CASE
								WHEN ("any_values"::json->>'state') = '4' THEN 'Signal Lost' 
								WHEN ("any_values"::json->>'state') = '3' THEN 'Signal Restored'
								ELSE ''
		END as state
FROM public."t_json_event" 
WHERE type = '0' AND ("any_values"::json->>'state'='3' OR "any_values"::json->>'state'='4') AND timestamp >= '20200211T0000'
ORDER by timestamp DESC

Пример 3

Экспорт сработок всех датчиков в формат csv, bat-файл с содержимым: 

SELECT "timestamp", 
		REGEXP_REPLACE("object_id", 'hosts/', '') as device, 
		CASE
								WHEN ("any_values"::json->>'phase') = '1' THEN 'Closed' 
								WHEN ("any_values"::json->>'phase') = '2' THEN 'Opened'
								ELSE ''
		END as state
FROM public."t_json_event"
WHERE type = '1' AND timestamp >= '20200209T110000' AND "object_id" LIKE '%ray%'
ORDER by timestamp DESC