Основные действия, не связанные с используемыми программами.
Поддерживает синтаксис С# (Подробнее об операторах и синтаксисе языка C# см. https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/index):
Тип оператора | Оператор | Значение | Типы | Пример использования | Комментарий |
---|---|---|---|---|---|
Операторы равенства | == | Равенство | Строка, Число, Логический | x==y | Оператор равенства "==" возвращает значение "true", если его операнды равны. В противном случае возвращается значение "false". |
Операторы равенства | != | Неравенство | Строка, Число, Логический | x!=y | Оператор неравенства "!=" возвращает значение "true", если его операнды не равны. В противном случае возвращается значение "false". |
Операторы сравнения | > | Больше чем | Число | x>y | Оператор "<" возвращает "true", если его левый операнд меньше правого. В противном случае возвращается "false" |
Операторы сравнения | < | Меньше чем | Число | x<y | Оператор ">" возвращает "true", если его левый операнд больше правого. В противном случае возвращается "false". |
Операторы сравнения | >= | Больше или равно | Число | x>=y | Оператор "<=" возвращает "true", если его левый операнд меньше правого или равен ему. В противном случае возвращается "false". |
Операторы сравнения | <= | Меньше или равно | Число | x<=y | Оператор ">=" возвращает "true", если его левый операнд больше правого или равен ему. В противном случае возвращается "false" |
Логические операторы | & | Логическое И | Строка, Число, Логический | x&y | Оператор "&" вычисляет оба операнда, даже если левый операнд имеет значение "false". При этом операция должна вернуть значение "false", независимо от значения правого операнда. Результат операции "x&y" принимает значение "true", если оба оператора "x" и "y" имеют значение "true". В противном случае результат будет "false". |
Логические операторы | && | Условное (Укороченное) логическое И | Строка, Число, Логический | x&&y | Оператор "&&" вычисляет логическое И для своих операндов, но не вычисляет правый операнд, если левый операнд имеет значение "false". Результат операции "x&&y" принимает значение "true", если оба оператора "x" и "y" имеют значение "true". В противном случае результат будет "false". |
Логические операторы | | | Логическое ИЛИ | Строка, Число, Логический | x|y | Оператор "|" вычисляет логическое ИЛИ для всех своих операндов, даже если левый операнд имеет значение "true". При этом операция должна вернуть значение "true", независимо от значения правого операнда. Результат операции "x | y" принимает значение "true", если хотя бы один из операторов "x" или "y" имеет значение "true". В противном случае результат будет "false". |
Логические операторы | || | Условное (Укороченное) логическое ИЛИ | Строка, Число, Логический | x||y | Оператор "||" вычисляет логическое ИЛИ для всех своих операндов, но не вычисляет правый операнд, если левый операнд имеет значение " Результат операции "x | y" принимает значение "true", если хотя бы один из операторов "x" или "y" имеет значение "true". В противном случае результат будет "false". |
Логические операторы | ! | Логическое отрицание НЕ | Логический | !x | Оператор логического отрицания "!" выполняет логическое отрицание операнда, возвращая "true", если операнд имеет значение "false", и "false", если операнд имеет значение "true". |
Логические операторы | ^ | Логическое исключающее ИЛИ | Логический | x^y | Оператор "^" вычисляет логическое исключение ИЛИ для всех своих операндов, возвращая "true" для "x ^ y", если "x" имеет значение "true" и "y" имеет значение "false" или "x" имеет значение "false" и "y" имеет значение "true". В противном случае результат будет "false", т.е. оператор "^" возвращает тот же результат, что и оператор неравенства "!=". |
Данное действие предназначено для выбора выполнения одного раздела ветвления из списка вариантов, сравнивая их с выражением соответствия. Для добавления нового условия необходимо нажимать на кнопку "", расположенной на самом действии.
Свойство | Англ. наименование | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|---|
Входные параметры | |||||
Условие | Condition | Выражение, которое будет проверяться на соответствие условиям (несколькими константными значениями). Если значение не указано, то Система выведет сообщение "Такая переменная не найдена". | Число, строка | Числовая_переменная | Да |
На каждой ветви нужно указать результат выражения, по которому будет осуществлять переход на данную ветвь. У ветви следующие настройки:
Свойство | Англ. наименование | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|---|
Входные параметры | |||||
Условие (switch) | Условие (switch) | Результат выражения, который будет сравниваться со значением в поле "Условия" действия "Ветвление". Если указана переменная с типом "Число", то по умолчанию устанавливается значение "0". Допустимы значения в формате "Число" (Целое/дробное), в противном случае Система выведет сообщение:
Если две ветви содержат одинаковое условие, то действие завершится ошибкой: The switch statement contains multiple cases with the label value '<<Условие>>' in line...'" | Число, строка | 10 Строковый текст | Да |
Пример использования
Задача:
Существует переменная с типом "Строка", содержащая значение "Red".
Необходимо перейти на соответствующий раздел ветвления и вывести в лог сообщение.
Решение:
Реализация:
Результат:
Алгоритм, согласно логам, прошел по ветви№2.
Данное действие предназначено для создания цикла действий, который выполняется до тех пор, пока логическое условие равно "true". Для добавления в тело цикла последовательности действий необходимо переместить их на контур действия "Цикл "Пока".
Свойство | Англ. наименование | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|---|
Входные параметры | |||||
Условие | Condition | Логическое выражение, описывающее последовательность действий до тех пор, пока условие равно значению true. Так как это логическое выражение оценивается перед каждым выполнением цикла, цикл "Пока" выполняется ноль или несколько раз. Допустимы значения типа "Логический", в противном случае Система выведет сообщение:
| Число, строка | i < 5 true false | Да |
Отсутствуют.
Пример использования
Задача:
Существует переменная с типом "Число", содержащая значение "1".
Необходимо завершить работу цикла, пока значение переменной не будет равно или больше 3.
Решение:
Реализация:
Результат:
Алгоритм, согласно логам, прошел по циклу и был завершен после установки переменной значения "3".
Данное действие предназначено для обеспечения заданной итерации по элементам массива. Для добавления в тело цикла последовательности действий необходимо переместить их на контур действия "Цикл "Для каждого".
Свойство | Англ. наименование | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|---|
Входные параметры | |||||
Массив | Array | Массив элементов с типом "Массив чисел", "Массив строк", "Массив общий", "Массив логический" или "Массив дата/время", проход по которым будет осуществляться в цикле. Если значение не указано, то Система выведет сообщение "Не задана переменная". | Выпадающий список | Массив_чисел | Да |
Переменная | Variable | Переменная с типом "Число", "Строка", "Общий", "Логический" или "ДатаВремя", в которую будет помещен каждый элемент массива. Если значение не указано, то Система выведет сообщение "Не задана переменная". | Выпадающий список | Строковая_переменная | Да |
Отсутствуют.
Задача:
Существуют переменные с типом "Массив чисел" и "Число", содержащие соответственно значение "(1988, 8, 2, 4)" и "0".
Необходимо завершить работу цикла, пока значение числовой переменной не будет равно значению "2".
Решение:
Реализация:
Результат:
Алгоритм, согласно логам, прошел по циклу и был прерван после установки переменной значения "2".
Данное действие предназначено для определения какой оператор будет выполняться при выполнении условия, заданного логическим выражением.
Свойство | Англ. наименование | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|---|
Входные параметры | |||||
Условие | Condition | Логическое выражение. Результатом выполнения оператора отношения или логического оператора является логическое значение типа "Логический". | логическое выражение | Числовая_переменная<=2 | Да |
Условие "Если" может иметь только две ветви. На каждой ветви уже указан результат выражения ("Да"/ "true") и "Нет"/ "false"), по которому будет осуществлять переход на данную ветвь. Для добавления в тело ветви последовательности действий необходимо переместить их на контур соответствующего действия.
Задача:
Существуют переменные с типом "Массив чисел" и "Число", содержащие соответственно значение "(1988, 8, 2, 4)" и "0".
Необходимо завершить работу цикла пока значение числовой переменной не будет равно значению "2".
Решение:
Реализация:
Результат:
Алгоритм, согласно логам, прошел по циклу и был прерван после установки переменной значения "2".
Данное действие предназначено для группировки элементов/действий.
Отсутствуют.
Отсутствуют.
Задача:
Существуют переменные с типом "Массив чисел" и "Число", содержащие соответственно значение "(1988, 8, 2, 4)" и "0".
Необходимо завершить работу цикла пока значение числовой переменной не будет равно значению "2".
Все добавленные действия должны быть сгруппированы в одну последовательность.
Решение:
Реализация:
Результат:
Действия сгруппированы. Алгоритм, согласно логам, прошел по циклу и был прерван после установки переменной значения "2".
Данное действие предназначено для прерывания текущей итерации цикла и начала следующей итерации. Действия в цикле, установленные после действия "Продолжение цикла", завершены не будут.
Отсутствуют.
Должен использоваться внутри цикла, в противном случае Система выведет сообщение "Действие "Продолжить цикл" находится вне цикла.".
Задача:
Существуют переменные с типом "Массив чисел" и "Число", содержащие соответственно значение "(1988, 8, 2, 4)" и "0".
Необходимо завершить работу цикла пока значение числовой переменной не будет равно значению "2".
Если элемент массива не равен значению "2", то текущая итерация должна быть прервана.
Решение:
Реализация:
Результат:
Алгоритм, согласно логам, прошел по циклу и был прерван после установки переменной значения "2" при этом, если элемент массива был не равен значению "2", то текущая итерация прерывалась и переходила на следующую.
Данное действие предназначено для прерывания текущей итерации цикла/ветвления и выхода из цикла/ветвления. Действия в цикле, установленные после действия "Продолжение цикла", завершены не будут.
Отсутствуют.
Должен использоваться внутри цикла или ветвления, в противном случае Система выведет сообщение "Действие "Прервать цикл" находится вне цикла или действия "Ветвления".".
Задача:
Существуют переменные с типом "Массив чисел" и "Число", содержащие соответственно значение "(1988, 8, 2, 4)" и "0".
Необходимо завершить работу цикла пока значение числовой переменной не будет равно значению "2".
Решение:
Реализация:
Результат:
Алгоритм, согласно логам, прошел по циклу и был прерван после установки переменной значения "2".
Данное действие предназначено для установки ожидания на заданное время в момент выполнения сценария.
Свойство | Англ. наименование | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|---|
Входные параметры | |||||
Время | Sleep time | Время ожидания перехода алгоритма на следующий шаг. Указывается в миллисекундах. По умолчанию значение равно "0" | Число | 1000 | Да |
Отсутствуют.
Задача:
Существуют переменные с типом "Массив чисел" и "Число", содержащие соответственно значение "(1988, 8, 2, 4)" и "0".
Необходимо завершить работу цикла пока значение числовой переменной не будет равно значению "2".
При переходе на ветвь "Да" необходимо установить время ожидание перехода алгоритма на следующий шаг, равное 1 секунду.
Решение:
Реализация:
Результат:
Алгоритм, согласно логам, прошел по циклу и был прерван после установки переменной значения "2". При переходе на ветвь "Да" время ожидания перехода алгоритма на следующий шаг составило 1 секунду.
Данное действие предназначено для выполнения C# кода.
Свойство | Англ. наименование | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|---|
Входные параметры | |||||
Код | Code | Открывает окно для написания кода | - | DateTime Date=DateTime.Today; string strDate = DateTime.Now.ToString("dd-MM-yyyy"); | Да |
Отсутствуют (Примеры использования отображены в разделе Полезный код C#).
Задача:
Существуют переменные с типом "Массив чисел" и "Число", содержащие соответственно значение "(1988, 8, 2, 4)" и "0".
При переходе на ветвь "Нет" должен быть запущен код С# для фиксации текущей даты, полученное строковое значение необходимо будет конвертировать в дату.
Необходимо завершить работу цикла пока значение числовой переменной не будет равно значению "2".
Решение:
Реализация:
Результат:
Запущен код С# для получения текущей даты/времени. Полученное строковое значение сконвертировано в переменную с типом "ДатаВремя".
Алгоритм, согласно логам, прошел по циклу и был прерван после установки переменной значения "2".
Данное действие предназначено для присваивания значения переменной.
Свойство | Англ. наименование | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|---|
Входные параметры | |||||
Новое значение | Value | Значение, которое будет присвоено переменной поля "Переменная". Если указана переменная с типом:
| Любой | new DateTime(2018,11,21,3,11,11) 1.45 Сообщение {Переменная} DateTime.MaxValue 01.01.2018 12:00:00 AM | Нет |
Выходные параметры | |||||
Переменная | Переменная | Переменная с любым типом, в которую будет записано новое значение из поля "Новое значение". Если переменная не выбрана, то при запуске робота Система выведет сообщение: "Не задана переменная". | Выпадающий список | Числовая_переменная | Да |
Отсутствуют.
Задача:
Существует переменная с типом "Число", содержащая значение "1".
Необходимо завершить работу цикла пока значение переменной не будет равно или больше 3.
Решение:
Реализация:
Результат:
Алгоритм, согласно логам, прошел по циклу и был завершен после установки переменной значения "3".
Данное действие предназначено для конвертирования переменной одного типа данных в другой.
Свойство | Англ. наименование | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|---|
Входные параметры | |||||
Источник | Source | Переменная с типом "Строка", "Число" или "Дата.Время", значение которой будет конвертироваться для присваивания переменной поля "Результат". Если значение не указано, то Система выведет сообщение: "Не задана переменная". | Выпадающий список | Числовая_переменная | Да |
Выходные параметры | |||||
Результат | Result | Переменная с типом "Строка", "Число" или "Дата.Время", в которую будет записано сконвертированное значение из поля "Источник". Если значение не указано, то Система выведет сообщение: "Такая переменная не найдена". | Выпадающий список | Строковая_переменная | Да |
Возможна конвертация из типа "Строка" в "Число", из "Число" в "Строка", из типа "ДатаВремя" в тип "Строка".
Задача:
Существуют переменные с типом "Массив чисел" и "Число", содержащие соответственно значение "(1988, 8, 2, 4)" и "0".
При переходе на ветвь "Нет" должен быть запущен код С# для фиксации текущей даты, полученное строковое значение необходимо будет конвертировать в дату.
Необходимо завершить работу цикла пока значение числовой переменной не будет равно значению "2".
Решение:
Реализация:
Результат:
Запущен код С# для получения текущей даты/времени. Полученное строковое значение сконвертировано в переменную с типом "ДатаВремя".
Алгоритм, согласно логам, прошел по циклу и был прерван после установки переменной значения "2".
Данное действие предназначено для отправки в лог-файл сообщения.
Свойство | Англ. наименование | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|---|
Входные параметры | |||||
Сообщение | Message | Текст, который будет выведен в лог-файл сообщения | Текстовое поле | Текстовое собщение | Нет |
Отсутствуют.
Задача:
Существует переменная с типом "Строка", содержащая значение "Red".
Необходимо перейти на соответствующий раздел ветвления и вывести в лог сообщение.
Решение:
Реализация:
Результат:
Алгоритм, согласно логам, прошел по ветви№2.
Данное действие предназначено для принудительного завершения работы робота, в связи с тем, что алгоритм на этом шаге продолжаться не должен.
Свойство | Англ. наименование | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|---|
Входные параметры | |||||
Сообщение | Message | Текст, который будет выведен в лог-файл сообщения | Текстовое поле | Сообщение об ошибке | Нет |
Отсутствуют.
Задача:
Существует переменная с типом "Строка".
Необходимо перейти на соответствующий раздел ветвления и вывести в лог сообщение об ошибке.
Решение:
Реализация:
*предварительно необходимо скопировать текст "Yellow" в буфер обмена (как вариант: создать на рабочем столе текстовый документ, содержащий текст "Yellow". Выделить текст Red" и с помощью ПКМ открыть контекстное меню и выбрать "Копировать").
Результат:
Алгоритм, согласно логам, прошел по ветви №3. В результате был завершен после сообщения об ошибке.
Данное действие предназначено для скриншота экрана.
Свойство | Англ. наименование | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|---|
Входные параметры | |||||
Type | Type | Типы скриншота области. Справочник содержит следующие значения:
По умолчанию значение равно "FullScreen". | Выпадающий список | Window | Да |
Height | Height | Высота, обозначенной области для скриншота (отсчет идет сверху вниз от начальной координаты области скриншота). По умолчанию значение равно "0". Если значение в поле "Type" заполнено значением "FullScreen" или "Windows", то значение поля "Height" игнорируется. Если поле содержит нечисловое значение/выражение, то при запуске робота Система выведет сообщение "Не задана переменная". | Число | 1+x | Да |
Widht | Widht | Ширина, обозначенной области для скриншота (отсчет идет слева направо от начальной координаты области скриншота). По умолчанию значение равно "0". Если значение в поле "Type" заполнено значением "FullScreen" или "Windows", то значение поля "Widht" игнорируется. | Число | 400 | Да |
X | X | Положение начальной координаты (координата левого верхнего угла области для скриншота) определяется двумя координатами Х и Y. Начальная координата, обозначенной области для скриншота, по горизонтали. По умолчанию значение равно "0". Если значение в поле "Type" заполнено значением "FullScreen" или "Windows", то значение поля "X" игнорируется. | Число | 500 | Да |
Y | Y | Положение начальной координаты (координата левого верхнего угла области для скриншота) определяется двумя координатами Х и Y. Начальная координата, обозначенной области для скриншота, по вертикали. По умолчанию значение равно "0". Если значение в поле "Type" заполнено значением "FullScreen" или "Windows", то значение поля "Y" игнорируется. | Число | x-y | Да |
Путь к файлу | File path | Путь к скриншоту, который будет сохранен в формате "<<имя файла>>.jpeg" (доступен ввод вручную, либо выбор папки в модальном окне "Сохранить как" по кнопке ).Если поле остается пустым, то файл сохраняется в той же папке в формате ".jpeg", из которой был открыт исходный файл (см. папку ".../logs/<<ГГГГММДДЧЧССММ>>", где "ГГГГММДДЧЧССММ" время запуска робота. | Поиск и выбор файла в новом окне | Скрин C:\Users\RLABUTIN\Documents\RobinStudio\1.1) Base action (RUS)\Base action (RUS)\Скрин1.jpeg | Нет |
Отсутствуют.
Задача:
Существуют переменные с типом "Массив чисел", содержащая значение "(1988, 8, 2, 4)", и "Число", содержащее значение по умолчанию, равное "0" .
Необходимо завершить работу цикла пока значение числовой переменной не будет равно значению "2". При переходе на ветвь "Нет" должен быть запущен код С# для фиксации текущей даты, полученное строковое значение необходимо будет конвертировать в дату.
Решение:
Реализация:
Результат:
Сделан скриншот активного окна. Алгоритм, согласно логам, прошел по циклу и был прерван после установки переменной значения "2".
Данное действие предназначено для cохранения текста из буфера в переменную типа "Строка".
Свойство | Англ. наименование | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|---|
Выходные параметры | |||||
Результат | Result | Переменная с типом "Строка", в которую будет сохранен текст из буфера. Если значение не указано, то Система выведет сообщение "Такая переменная не найдена". | Выпадающий список | Строковая_переменная | Да |
С версии ROBIN 1.3.1 добавлена обработка блокировки буфера обмена. В случаях, когда при обращении к буферу возникает ошибка из-за того, что буфер уже используется каким-то приложением, действие автоматически будет с периодичностью раз в 10 секунд обращаться к буферу и пытаться получить данные из него.
Задача:
Существует переменная с типом "Строка".
Необходимо перейти на соответствующий раздел ветвления после получения текста из буфера.
Решение:
Реализация:
*предварительно необходимо скопировать текст "Red" в буфер обмена (как вариант: создать на рабочем столе текстовый документ, содержащий текст "Red". Выделить текст Red" и с помощью ПКМ открыть контекстное меню и выбрать "Копировать").
Результат:
Алгоритм, согласно логам, прошел по ветви№2 после получения данных из буфера.
Данное действие предназначено для cохранения текста в буфер.
Свойство | Англ. наименование | Описание | Тип | Пример заполнения | Обязательность заполнения поля |
---|---|---|---|---|---|
Входные параметры | |||||
Текст | Text | Переменная с типом "Строка", которая будет сохранена в буфер. Если значение не указано, то Система выведет сообщение "Такая переменная не найдена". | Строка | Строковая_переменная или текст | Да |
Отсутствуют.
Задача:
Существует переменная с типом "Строка".
Необходимо записать данные из переменной в буфер.
Решение:
Реализация:
Результат:
Согласно логам, текст из переменной записан в буфер