Запуск роботов в разных режимах, горячие клавиши¶
Запуск робота из робота¶
Для решения некоторых задач требуется запуск одного робота в ходе работы другого робота. Шаги по выполнению данного процесса описаны ниже:
Экспортировать готового робота, которого необходимо запустить с помощью другого робота (расширение «.robin-robot»):
В схеме робота, из которого будет запущен другой робот, выбрать действие «Запустить процесс» из группы действий «Процессы».
В параметрах действия в строке «Задать процесс» выбрать «По пути к файлу» из выпадающего списка. В строке файл процесса указать путь к экспортированному ранее готовому роботу.
Запуск отладки робота с произвольного места¶
Иногда могут возникнуть ситуации, когда робота необходимо запустить не с начала, а с определенного шага. Такой функционал встроен в ROBIN Studio. Примеры по запуску робота с произвольного места описаны ниже.
Пример 1. Неуспешный запуск
При запуске робота с определенного действия в схеме и при отсутствии информации о связанных контекстах и результатах предыдущих действий, запуск будет невозможен, будет выведена ошибка.
Задача: запустить робота с 2 шага в роботе, который устанавливает закладку в документе.
Реализация:
Щелкнуть правой кнопкой мыши по действию «Установить закладку» и нажать на кнопку «Начать отсюда».
Запуск робота невозможен, так как отсутствует информация о предыдущих запусках.
При нажатии кнопки «Начать отсюда» на действии, будет выполнена попытка запуска сценария с указанного действия. Запуск действия возможен, если ранее были получены и сохранены результаты предыдущих запусков сценария. Сохранить результаты предыдущих запусков можно, установив флажок «Сохранять результаты» в панели отладки.
Пример 2. Успешный запуск
Задача: существует робот, который выводит сообщения в диалоговые окна. Необходимо начать выполнения робота с 2 шага.
Релизация:
Щелкнуть правой кнопкой мыши по действию «Сообщение 2» и нажать на кнопку «Начать отсюда».
Выполнение робота начнется с указанного действия.
Передача параметров между роботами¶
При запуске одного Программного робота из другого робота иногда требуется передача некоторых параметров.
Подготовка запускающего робота для передачи параметров¶
В роботе, который передает параметр, необходимо использовать действие «Запустить процесс».
В разделе «Свойства» (блок «Параметры») необходимо заполнить поля:
Задать - выбрать значение «Имя» или «Путь к файлу» (какое приложение запускаем);
Файл процесса (производится запуск плеера)
Аргументы - шаблон аргумента: -r «путь до готового робота» -p «путь до файла с параметрами»
Шаблон файла с параметрами:
В шаблоне необходимо изменить значение, которое нужно передать второму роботу и название переменной в которую это значение запишется у второго робота. Изменения необходимо внести в параметр InOutResource.
Далее, необходимо указать тип переменной. В данном случае указана переменная «Строка» (RobinString).
Ниже перечислен формат записи для указания типа передаваемого значения:
- RobinBoolean - Логическая переменная
- RobinCollection - переменная типа Коллекция
- RobinDataTable - переменная типа Таблица
- RobinDateTime - переменная типа Время/Дата
- RobinDictionary - переменная типа Словарь
- RobinFilePath - переменная типа Путь к файлу
- RobinFolderPath - переменная типа Путь к папке
- RobinHotKeys - переменная типа Горячие клавиши
- RobinString - переменная типа Строка
- RobinPassword - переменная типа Пароль
- RobinNumeric - переменная типа Число
- RobinLocationPoint - переменная типа Координаты точки
- RobinObject - переменная типа Объект
- RobinRectangleLocation - переменная типа Область
При передаче сразу нескольких значений небходимо добавить эти значения строкой ниже.
Подготовка запускаемого робота¶
Необходимо зайти во второго робота (которому нужно передать пераметры) и создать те переменные, которые ранее были указаны в xml-файле.
Укажите в переменной значение «Входной параметр робота». Запустите робота.
Запуск робота с параметром¶
Для решения некоторых задач требуется передача каких-либо параметров роботу. Решить данную задачу можно посредством запуска робота из робота, запуском робота с помощью приложения ROBIN Robot Player и с помощью командной строки.
Запуск робота из робота с передачей параметров¶
В роботе, в которого будет передан параметр, необходимо создать переменную, в которую будет записан параметр и выбрать опцию «Входной параметр робота»:
Экспортировать готового робота, которого необходимо запустить с помощью другого робота (расширение «.robin-robot»):
В схеме робота, из которого будет запущен другой робот, выбрать действие «Запустить процесс» из группы действий «Процессы».
В параметрах действия в строке «Задать процесс» выбрать «По пути к файлу» из выпадающего списка.
В строке «файл процесса» указать путь до приложения ROBIN Robot Player (%USERPROFILE%/AppData/Local/Programs/RobinPlatform/2.0.0/RobotPlayer/RobotPlayer.exe).
В поле «Аргументы» указать строку следующего формата: -r «путь до готового робота» -p «путь до файла с параметрами».
Параметры передаются посредством xml-файла. Такой xml-файл может иметь любое название, но порядок и название его элементов должны быть неизменны. Пользователь изменяет значения только в строке с элементом InOutResource:
- значение атрибута «name» – это название переменной, в которую передаем параметр. Эта переменная должна быть создана именно в том роботе, которому передаем параметр. Робот, который передает параметр, может и не иметь такой переменной;
- в значении элемента InOutResource необходимо указать тип переменной, в которую будет записан передаваемый параметр, и передаваемое значение, т.е. сам параметр;
- если роботу требуется передать несколько параметров, нужно скопировать элемент InOutResource необходимое количество раз и записать в него значения параметров.
Структура xml-файла
Запуск робота посредством командной строки¶
Экспортировать готового робота, которому будут переданы параметры (расширение «.robin-robot»).
Подготовить xml-файл с параметрами, которые будут переданы роботу.
Открыть командную строку, нажав комбинацию клавиш Win+R и в появившемся окне ввести cmd, после чего нажать Enter (также командную строку можно открыть, введя в поиске windows cmd.exe).
В командной строке ввести следующее:
«%USERPROFILE%/AppData/Local/Programs/RobinPlatform/2.0.0/RobotPlayer/RobotPlayer.exe» -r «путь до готового робота» -p «путь до файла с параметрами».
После этого начнется выполнение программного робота. В приложение ROBIN Robot Player на вкладке «Запущенные» появится информация о выполнении запускаемого робота:
Запуск и работа роботов в консольном режиме¶
Когда необходим перевод машины в консольный режим¶
Есть несколько типов задач, которые программные роботы могут выполнить только при наличии активной графической сессии (т.е. не в фоновом режиме):
- Создание скриншота экрана
- Выполнение действий из группы «Имитация устройств»
- Выполнение некоторых действий их группы «Машинное зрение»: «Ждать исчезновения», «Ждать появления», «Существует на экране»
- Выполнение действий из подгруппы «Работа с win-элементами»
Если роботов запускают на машинах исполнения удаленно через приложение ROBIN Management Console (RMC), то проблем с выполнением таких задач не возникнет, т.к. там будет поднята графическая RDP-сессия. Однако если по каким-либо причинам запуск роботов планируется осуществлять вне RMC (вручную или по локальному расписанию) на удаленной машине, а окно с RDP-соединением пользователь не планирует оставлять в открытом виде, необходимо перевести текущую RDP-сессию в режиме console (консольный режим).
В консольном режиме графическая сессия остается активной, но при этом RDP-соединение закрыто и не мешает пользователю.
Способы перевода машины в консольный режим¶
Вручную
Запустить робота на удаленной машине. Если запуск предполагается производить по расписанию, настроенному на этой машине, то этот шаг можно пропустить.
Открыть cmd и выполнить команду query session. Необходим номер сессии (ID) у текущего пользователя:
Этот номер меняется при каждом новом подключении к машине, поэтому запоминать его для постоянного использования не имеет смысла.
Выполнить команду tscon.exe <ID> /dest:console
Результат: открытая сессия переведется в консольный режим, подключение к удаленному столу закрывается, а робот остается работать или будет запущен по расписанию в нужное время.
При помощи робота
Выполнять самостоятельно все команды, которые описаны в первом способе, необязательно. Их точно также может выполнить и сам робот. Просто необходимо добавить в начало целевого алгоритма действия по исполнению этих команд через cmd. Но перед запуском робота нужно перезапустить ROBIN Agent от имени администратора. Закрывать RDP-соединение самостоятельно не надо, необходимо дождаться, пока это сделает сам робот.
При помощи bat-файла
Чтобы каждый раз не открывать cmd и не вводить команды вручную, можно просто запускать заранее созданный bat-файл, в котором уже указаны необходимые команды. Запуск файл стоит производить также от имени администратора и только после выполнения шага №1 из первого способа. ID сессии менять в файле не надо, его определение происходит автоматически. Этот же bat-файл может запускать и сам робот, при помощи действия «Исполнить скрипт» (пример заполнения действия в схеме, приложенной выше). Но перед запуском робота нужно перезапустить ROBIN Agent от имени администратора. Закрывать RDP-соединение самостоятельно не надо, необходимо дождаться, пока это сделает сам робот.
Ограничения при использовании консольного режима¶
При запуске и работе роботов в консольном режиме нужно учитывать также несколько особенностей:
- Чаще всего исполнение команды по переводу машины в консольный режим должно происходить от имени администратора (в редких случаях необходимая учетная запись уже может обладать необходимым уровнем прав).
- В политиках удаленной машины должна быть отключена автоматическая блокировка экрана и переход в спящий режим при бездействии. Это требование должно быть выполнено, если время бездействия робота (например, между его запусками по расписанию) превышает установленный лимит бездействия, после которого учетная запись блокируется или переводится в спящий режим. Дело в том, что при заблокированной учетной записи, робот сможет запуститься, но корректно исполнит только те действия, которые выполняются в фоновом режиме. Самостоятельно же разблокировать учетную запись робот не сможет.
- Необходимо, чтобы в консольном режиме разрешение экрана оставалось таким же, какое оно было при активной RDP-сессии, когда аналитик производил создание исходника робота (не влияет только при исполнении действия по созданию скриншота). Это правило должно всегда соблюдаться. Если разрешение при переходе в консольный режим все же меняется, можно попробовать немного модифицировать команду:
tscon.exe <ID> /dest:console & <Путь до QRes.exe> /x:<Значение по X> /y:<Значение по Y>, где первая команда - это переход в консольную сессию, вторая - установка разрешения при помощи специализированной утилиты. Исходники утилиты здесь: https://sourceforge.net/projects/qres/
Седует учитывать, что на некоторых виртуальных средах после отключения RDP-соединения может не сохранятся то разрешение, с которым работал пользователь. В консольном режиме может происходить автоматическая установка того разрешения, с каким в последний раз заходили администраторы в консоль управления виртуальной средой.
Такая проблема, например, существует в виртуальных средах VMware. Предлагаемое решение описано по ссылке: VM Console Display Resolution Change - vGemba.net: https://www.vgemba.net/vmware/powercli/VMConsole-Resolution-Change/
Для решеия проблемы необходимо:
а) войти на необходимую машину через консоль управления и поменять на машине разрешение на необходимое:
б) прописать в настройках виртуальной машины (через консоль управления) следующие параметры:
guestInfo.svga.wddm.modeset=”FALSE”
guestInfo.svga.wddm.modesetCCD=”FALSE”
guestInfo.svga.wddm.modesetLegacySingle=”FALSE”
guestInfo.svga.wddm.modesetLegacyMulti=”FALSE”
В таком режиме манипуляции с размером консоли VMware не влияют на разрешение, которое будет на машине в консольном режиме при работе робота.
Принудительная остановка робота¶
Необходимость в принудительном завершении работы робота возникает в связи с тем, что алгоритм на этом шаге продолжаться не должен. Остановить робота можно следующими способами:
- Остановка робота в приложении ROBIN Studio посредством нажатия кнопки «Стоп».
Во время отладки робота, когда запущено его выполнение в Студии, в тот момент, когда необходимо прервать работу робота, нажмите на кнопку «Стоп». Она находится на верхней панели (во время работы сценария панель окрашена в зеленый цвет). После ее нажатия робот прекратит выполнения алгоритма без ошибок. Аналогично, робот остановится по нажатию на кнопку «Мягкий стоп» или «Жесткий стоп» во время выполнения робота.
- Остановкка робота в приложении ROBIN Player посредством нажатия кнопки «Стоп».
Во время исполнения готового робота в ROBIN Robot Player его также можно остановить. Для этого:
Открыть приложение ROBIN Player;
Выбрать робот, исполнение которого необходимо остановить, на вкладке «Запущенные», справа доступны кнопки «Пауза» и «Стоп»;
Нажмите на кнопку «Стоп» для принудительной остановки работы робота.
При нажатии на эту кнопку робот завершит свою работу без ошибки.
- С помощью действия студии «Вывести ошибку».
Из группы действий «Базовые действия» выбрать действие «Вывести ошибку» и перенести его в схему робота.
В параметрах действия в строке «Сообщения» указать текст ошибки, который будет выведен в лог. Если оставить это поле пустым, то в логе будет выведена «Неизвестная ошибка».
После настройки действия запустить робота нажатием кнопки запуска.
Когда робот дойдет до действия «Вывести ошибку», в логе в студии появится запись об ошибке и робот завершит работу.
Оповещение пользователя о возникновении ошибки робота¶
При работе робота могут возникнуть какие-либо ошибки, в результате которых выполнение сценария завершиться. Существует несколько способов оповещения пользователя о возникновении ошибки, рассмотрим их подробнее.
Обработка ошибок внутри сценария¶
Обработка ошибки с помощью Try-Catch
При возникновении ошибок среди действий, помещенных в блок «Try» в лог будет выведено сообщение. Работа робота не прекратиться, а будут выполнены либо действия из блоков «Сatch» или «Finally», либо робот продолжит выполнение сценария вне действия «Try-Catch».
- Обработка ошибки с действием «Вывести ошибку»
Из группы действий «Базовые действия» выбрать действие «Вывести ошибку» и перенести его в схему робота;
В параметрах действия в строке «Сообщения» указать текст ошибки, который будет выведен в лог. Если оставить это поле пустым, то в логе будет выведена «Неизвестная ошибка»;
После настройки действия запустить робота нажатием кнопки запуска;
Когда робот дойдет до действия «Вывести ошибку», в логе в студии появится запись об ошибке и робот завершит свою работу;
Обработка ошибки действием Информационное сообщение
Сценарий робота может быть настроен таким образом, что в случае возникновения ошибки можно вывести информационное сообщение посредством действия «Сообщения» из группы действий «Диалоговые окна».
Пример: Установить в «Сatch» данное действие, тогда перед тем, как робот перейдет к обработке ошибки, на экране появится информационное сообщение.
- Отправка письма на почту пользователя в случае возникновения ошибки.
Сценарий робота можно организовать таким образом, что в случае возникновении ошибки пользователю будет направлено письмо на электронный почтовый сервис. Отправка письма осуществляется посредством действий из группы действий «Почта».
Выбрать действие «Настройка подключения»:
Заполнить параметры действия, пример:
Выбрать действие «Отправить сообщение»:
Заполнить параметры действия, в поле «Тело письма» указать необходимую информацию. Пример заполнения:
Настройка оповещения пользователя о возникновении ошибки в Robin Player.¶
Компонент Robin Player позволяет настраивать отправку сообщений на почту в случае корректного или некорректного завершения работы робота. Для того, чтобы настроить информирование пользователя в случае, если робот завершил свою работу с ошибкой, необходимо выполнить следующие действия:
Перейти на вкладку «Настройки» в Robin Player:
Перейти на вкладку «Отправка писем при завершении выполнения»:
Заполнить требуемые параметры:
Заполнить «Список получателей уведомлений о выполнении роботов», в поле «Неуспешные выполнения» указать почтовый адрес пользователя, которому будет направлено уведомление. При выборе опции «Прикрепить лог», пользователь получит лог работы робота.
Укажите почтовый адрес в графе «Успешные выполнения», и пользователь получит информацию о том, что робот завершил свою работу без ошибок.
Комбинации горячих клавиш¶
Горячие клавиши | Действие | Использование |
---|---|---|
Ctrl + N | Создать новый проект | Для создания нового проекта нажмите Ctrl + N. Студия запросит решение о сохранению открытой схемы. После будет открыто окно выбора проектов, в котором можно будет создать новый проект и начать работу с ним. |
Ctrl + S | Сохранить открытую схему | Для сохранения текущей схемы нажмите Ctrl + S |
Ctrl + O | Опубликовать схему в хранилище | Для публикации текущей схемы нажмите Ctrl + O |
Ctrl + Shift + O | Публикация готового робота | Для публикации готового робота нажмите Ctrl + Shift + O |
Ctrl + Shift + E | Экспорт готового робота | Для экспорта готового робота нажмите Ctrl + Shift + E |
ЛКМ | Переместить действие на схеме | Для того чтобы переместить действие (или выделенную группу действий) в другую часть схемы, необходимо выделить действие кликом ЛКМ и сохраняя нажатие переместить его в нужную часть схемы. Группа действий на новом месте воссоздаст порядок, с которым действия были выделены. |
Ctrl + клик ЛКМ | Выделить несколько действий схемы | Дли того, чтобы выделить несколько действий необходимо зажать Ctrl и выполнить клик ЛКМ по нужным действиям. |
Shift + клик ЛКМ | Выделить отрезок схемы | Дли того, чтобы выделить отрезок схемы на рабочей области, необходимо зажать Shift и выполнить клик ЛКМ по первому и последнему действию нужного отрезка. |
Ctrl + А | Выделить все действия на схеме | Для выделения всех действий на рабочей области необходимо нажать Ctrl + А |
Ctrl + С | Копировать в буфер | Для копирования в буфер ранее выделенного действия или группы действий необходимо нажать Ctrl + C |
Ctrl + V | Вставить из буфера | Для вставки из буфера скопированного ранее действия или группы действий необходимо нажать Ctrl + V. Действия будут добавлены после выделенного действия, если такое есть на схеме, или в ее конец, если выделенных действий нет. |
Ctrl + X | Вырезать из схемы | Для вырезания ранее выделенного действия или группы действий необходимо нажать Ctrl + Х |
Delete | Удалить из схемы | Для удаления ранее выделенного действия или группы действий необходимо нажать Delete. |
Ctrl + ЛКМ | Переместить рабочую область относительно окна просмотра | Для того чтобы переместить рабочую область в окне просмотра, необходимо зажать Ctrl + ЛКМ на белом поле области и переместить ее в нужную сторону. |
Ctrl + скролл | Изменение масштаба отображения | Для того чтобы изменить масштаб отображения рабочей области, зажмите клавишу Ctrl и прокручивайте скролл в нужном направлении, увеличивая или уменьшая масштаб. Позволяет изменять масштаб относительно выбранного действия схемы, сохраняя его в центре экрана. |
Alt | Выбор области приближения | Чтобы выделить область, которая будет увеличена во все окно, нажмите Alt и появившимся указателем выделите нужную область. |
Ctrl + G | Сгруппировать действия | Для группировки действий на рабочей области необходимо выделить нужные действия и нажать Ctrl + G. |
Ctrl + Shift + G | Разгруппировать действия | Для разгруппировки действий на рабочей области необходимо выделить нужную группу и нажать Ctrl + Shift + G. |
Alt + P | Play/Pause в режиме отладки | Для Play/Pause в режиме Debug нажмите Alt + P. |
Alt + ↓ | Шаг вперед при запуске в режиме отладки | Для шаг вперед при запуске в режиме Debug нажмите Alt + стрелка вниз. |
Alt + S | Стоп в режиме отладки | Для Stop в режиме Debug нажмите Alt + S. |