Орион про + сценарии.

FORUM_NAME: АРМ Орион Про версии до 1.20
Описание: АРМ "Орион Про" — пакет программного обеспечения для аппаратно-программного комплекса ИСО "Орион", на котором реализуются системы охранной сигнализации, контроля и управления доступом, охранного видеонаблюдения, автоматика противопожарных систем, сопряженные с инженерными системами объектов.
Справочная информация, руководства для АРМ Орион Про версии до 1.20
Модератор: Модераторы
manand
Автор темы
manand
Автор темы
Репутация: 0
Сообщения: 5
Зарегистрирован: 11.01.2013
С нами: 3 года 10 месяцев
Профессия: системный администратор

Непрочитанное сообщение #1 manand » 11.01.2013, 18:36

Хочу написать один общий сценарий, отвечающий за отправление сообщения на электронную почту о событии (к примеру снятия объекта с охраны).
Вопрос - как в скрипте можно получить текущий раздел, который вызвал данный скрипт?

Спойлер
Сценарий
Переменные
Перем Компьютеры1;
Перем Компьютер1;
Перем РабочиеМеста1;
Перем РабочееМесто1;

Перем Разделы1;
Перем Раздел1;
НачалоСценария
Компьютеры1=СоздатьОбъект("Компьютеры");
Компьютер1 = Компьютеры1.ПолучитьПоСетевомуАдресу( "х.х.x.x");

Разделы1 = СоздатьОбъект( "Разделы" );
Если Не ПустоеЗначение( Разделы1 ) Тогда
Сообщить( "Создали РАЗДЕЛЫ1", 0 );
Раздел1 = Разделы1.Текущий(); // !!!!!!!!!!! не срабатывает, тк он походу не инициализирован??

Если Не ПустоеЗначение( Раздел1 ) Тогда

РабочиеМеста1 = Компьютер1.РабочиеМеста();РабочееМесто1 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста( "ЯДРО" );
РабочееМесто1.ВыслатьПисьмо("x.x.x.x", "user@mail.ru", "user", "user@mail.ru", "Снятие охраны", Строка( Раздел1.Название()), "user@mail.ru");

КонецЕсли;
КонецЕсли;

КонецСценария

AlexRuden
AlexRuden
Возраст: 39
Репутация: 0
Сообщения: 1096
Зарегистрирован: 13.01.2012
С нами: 4 года 10 месяцев
Профессия: Наёмник.
Откуда: Россия.

Непрочитанное сообщение #2 AlexRuden » 11.01.2013, 20:36

manand писал(а):Хочу написать один общий сценарий, отвечающий за отправление сообщения на электронную почту о событии (к примеру снятия объекта с охраны).
Вопрос - как в скрипте можно получить текущий раздел, который вызвал данный скрипт?
Ну если скрипт позвали, то он узнает об этом так -

Спойлер
Сценарий
Переменные
Перем Компьютеры1;
Перем Компьютер1;
Перем РабочиеМеста1;
Перем РабочееМесто1;
Перем Событие1;
Перем Разделы1;
Перем Раздел1;
НачалоСценария
Компьютеры1=СоздатьОбъект("Компьютеры");
Компьютер1 = Компьютеры1.ПолучитьПоСетевомуАдресу( "х.х.x.x");

Разделы1 = СоздатьОбъект( "Разделы" );
Если Не ПустоеЗначение( Разделы1 ) Тогда
Сообщить( "Создали РАЗДЕЛЫ1", 0 );

Событие1= ПолучитьСобытие();
Раздел1 = Событие1.Объект();


Если Не ПустоеЗначение( Раздел1 ) Тогда

РабочиеМеста1 = Компьютер1.РабочиеМеста(); РабочееМесто1 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста( "ЯДРО" );
РабочееМесто1.ВыслатьПисьмо("x.x.x.x", "user@mail.ru", "user", "user@mail.ru", "Снятие охраны", Строка( Раздел1.Название()), "user@mail.ru");

КонецЕсли;
КонецЕсли;

КонецСценария
Курите man'ы , господа.

manand
Автор темы
manand
Автор темы
Репутация: 0
Сообщения: 5
Зарегистрирован: 11.01.2013
С нами: 3 года 10 месяцев
Профессия: системный администратор

Непрочитанное сообщение #3 manand » 12.01.2013, 08:00

Спасибо, все работает!!

manand
Автор темы
manand
Автор темы
Репутация: 0
Сообщения: 5
Зарегистрирован: 11.01.2013
С нами: 3 года 10 месяцев
Профессия: системный администратор

Непрочитанное сообщение #4 manand » 13.01.2013, 09:57

ЕЩЕ вопрос:
Как можно получить данные о текущем пользователе на конкретном компьютере где запущен Монитор? (чтобы можно было именно ему отправить сообщение...)

AlexRuden
AlexRuden
Возраст: 39
Репутация: 0
Сообщения: 1096
Зарегистрирован: 13.01.2012
С нами: 4 года 10 месяцев
Профессия: Наёмник.
Откуда: Россия.

Непрочитанное сообщение #5 AlexRuden » 13.01.2013, 12:47

Оператор ОЗ или залогиненный пользователь ПК?
Курите man'ы , господа.

manand
Автор темы
manand
Автор темы
Репутация: 0
Сообщения: 5
Зарегистрирован: 11.01.2013
С нами: 3 года 10 месяцев
Профессия: системный администратор

Непрочитанное сообщение #6 manand » 13.01.2013, 16:24

ОЗ запущена на сервере.
Монитор на охране, где в Мониторе логинятся пользователь из списка доступных Сотрудников.
Вот этого пользователя и надо, чтобы через email на sms отправлять именно ему сообщения о происходящих событиях.

AlexRuden
AlexRuden
Возраст: 39
Репутация: 0
Сообщения: 1096
Зарегистрирован: 13.01.2012
С нами: 4 года 10 месяцев
Профессия: Наёмник.
Откуда: Россия.

Непрочитанное сообщение #7 AlexRuden » 13.01.2013, 19:50

В предыдущем сценарии перед отправкой SMS найти пользователя посредством выполнения внешнего приложения.

Код: Выделить всё

Ядро1.ЗапуститьПрограмму( "ПолноеИмяФайла" ) - запустить внешнюю программу.

1. Создать нулевой файл logon.txt
2. Заморозить сценарий бесконечным циклом с проверкой размера файла logon.txt и самоуничтожением через 5 минут(на всякий случай при сбоях)

Внешняя программа - сценарий запроса MSSQL

Пример: logon.cmd

Код: Выделить всё

sqlcmd -S .\SQLSERVER2008 -Q "SELECT NumCom,Event,HozOrgan FROM demo.dbo.pLogData WHERE Event LIKE '1035'" -o d:\logon.txt

Где demo - имя БД.
Этапы логона будут в файле d:\logon.txt , где HozOrgan - ID пользователя.

3. Сценарий продолжит работу (т.к. файл logon.txt ненулевой)
4. В сценарии пропарсить последнюю строку файла logon.txt и узнать ID последнего пользователя.
5. В сценарии - (*)ПолучитьПоИД( ИДСотрудника ) : Объект - возвращает объект Сотрудник по ИД
Далее используйте:

Код: Выделить всё

(*)Имя() : Строка - возвращает имя сотрудника.
(*)Фамилия() : Строка - возвращает фамилию сотрудника.
(*)Отчество() : Строка - возвращает отчество сотрудника.
(*)ФИО() : Строка - возвращает ФИО сотрудника.


-----
Можно получить данные залогиненного пользователя по паролю, хранящемуся в невидимом окне логина в ОЗ, но это другая история :ps_ih:
Курите man'ы , господа.

manand
Автор темы
manand
Автор темы
Репутация: 0
Сообщения: 5
Зарегистрирован: 11.01.2013
С нами: 3 года 10 месяцев
Профессия: системный администратор

Непрочитанное сообщение #8 manand » 14.01.2013, 05:55

Сделал 2 файл - отличие только в том что зашел под разными пользователями.
По общему количеству строк видно, что больше на 1.
Но последняя строка осталась неизменна - так что вопрос: как найти из полученных данных именно последнего пользователя.

И кстати, может возникнуть еще проблема: мест Мониторинга более чем одно. Запрос выгружает из БД всех залогиненых пользователей с любых компов, а мне необходим с определенного (охрана).
Вложения
logon.rar
(2.41 КБ) 69 скачиваний

AlexRuden
AlexRuden
Возраст: 39
Репутация: 0
Сообщения: 1096
Зарегистрирован: 13.01.2012
С нами: 4 года 10 месяцев
Профессия: Наёмник.
Откуда: Россия.

Непрочитанное сообщение #9 AlexRuden » 14.01.2013, 08:31

manand писал(а):Сделал 2 файл - отличие только в том что зашел под разными пользователями.
По общему количеству строк видно, что больше на 1.
Но последняя строка осталась неизменна - так что вопрос: как найти из полученных данных именно последнего пользователя.
Ну в моём случае была последняя строка, у вас нужно столбец NumCom отсортировать по возрастающей - смотрите сами :

Код: Выделить всё

NumCom      Event       HozOrgan   
----------- ----------- -----------

9494        1035           4
9495        1035          11

manand писал(а):И кстати, может возникнуть еще проблема: мест Мониторинга более чем одно. Запрос выгружает из БД всех залогиненых пользователей с любых компов, а мне необходим с определенного (охрана).
Пользователи на "охране" логинятся только на этом ПК (например ИД= 4, 11, 1, 2)? Тогда фильтруйте в сценарии ИД пользователей и ищите последнего подходящего к данному критерию.

Если этот путь вам очень сложен - могу предложить второй путь со скрытым окном логина за пинту пива :ps_ih:
Курите man'ы , господа.

sizov82
sizov82
Репутация: 0
Сообщения: 1
Зарегистрирован: 28.04.2015
С нами: 1 год 7 месяцев
Профессия: наладчик

Непрочитанное сообщение #10 sizov82 » 28.04.2015, 13:58

Подскажите пожалуйста как из сценария запустить программу с нужными параметрами ?


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «АРМ Орион Про версии до 1.20»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость

forum-bolid.ru : Отказ от ответственности