Циклы

Циклы позволяют проверять зависимости между переменными, действиями и условиями. Они используются, чтобы повторять определенную последовательности действий несколько раз.

Чтобы настроить цикл, перетащите его со вкладки Палитра на активити, после которого требуется создать цикл, заполните требуемые поля и нажмите на кнопку Сохранить. Внутри цикла разместите нужные активити.

Чтобы удалить цикл с графической модели процесса, нажмите на кнопку удалить переходв правом нижнем углу окна настройки цикла или на кнопку delete-activity-icon слева от цикла.

Для каждого цикла можно создать эскалацию при помощи кнопки ELMARP~1_img19. Подробнее об эскалации читайте в статье «Поток исполнения».

Чтобы было удобнее работать с графической моделью процесса, вы можете свернуть элементы, добавленные внутрь цикла. Для этого нажмите на кнопку minimize-icon.

Пока

Цикл Пока позволяет выполнять определенную последовательность действий, пока выполняется заданное условие. Когда условие не выполняется, цикл завершается. Например, нам требуется обработать всех новых контрагентов. Заданная последовательность действий для обработки контрагентов будет выполняться, пока количество новых контрагентов будет больше 0. Также с помощью цикла удобно проверять статусы запросов. Например, бот создает новый запрос в системе Oracle. Его статус проверяется в цикле. После того как для запроса установился статус «Завершено», цикл завершается, и процесс двигается дальше.

Чтобы избежать бесконечного выполнения цикла, добавьте в теле цикла активити, которое будет менять условие.

Окно настроек этого цикла представлено на рисунке ниже.

loops-1

Название * — название цикла на графической модели процесса.

Переход — указание условия для выполнения последовательности действий в цикле.

Условие можно задать по доступности сайта или программы на компьютере пользователя, а также при помощи контекстной переменной:

  • Адрес — адрес сайта, который должен быть доступен для подключения, чтобы выполнился этот цикл;
  • Программа — название программы, которая должна быть доступна на компьютере пользователя для выполнения этого цикла;
  • Свойство — цикл выполняется, пока значение контекстной переменной соответствует заданному условию. Переменная сравнивается с другой переменной или задается ее точное значение при помощи операторов. Операторы сравнения, доступные для выбора, аналогичны операторам при настройке исключающего ИЛИ-шлюза.
    В поле Свойство выберите контекстную переменную, для которой задается условие, и укажите, с чем она будет сравниваться:
    • Свойство — другая контекстная переменная;
    • Значение — точное значение, с которым будет сравниваться выбранная переменная.

Для каждого

Цикл Для каждого позволяет выполнять определенную последовательность действий для каждого элемента, заданного в массиве. Подробнее о работе с массивом читайте в статье «Контекст процесса».

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

Окно настроек этого цикла представлено на рисунке ниже.

loops-2

Название * — название цикла на графической модели процесса.

Массив для перебора — выбор переменной, в которой заданы элементы массива.

Переменная итератор — выбор переменной, в которой при выполнении цикла будет временно храниться значение одного из элементов массива.

При этом каждое значение элемента обрабатывается отдельно. Заданная последовательность действий будет выполняться для всех элементов массива.

Для каждого элемента

Цикл Для каждого элемента позволяет задавать определенную последовательность действий для каждого выбранного элемента интерфейса. Цикл выполняется для тех элементов, параметры которых указываются в блоке Элемент управления.

Например, когда вы работаете с таблицами в 1C, нужно выполнить определенные действия для каждой записи в таблице. Вы можете выбрать запись таблицы и при помощи регулярных выражений задать, какие элементы бот должен найти в интерфейсе. При этом для каждой записи бот выполнит заданный вами набор действий.

Окно настроек этого цикла представлено на рисунке ниже.

loops-3

Название * — название цикла на графической модели процесса.

Переменная с названием — выбор переменной, в которую сохраняется имя элемента интерфейса при каждом повторении цикла.

Переменная с типом — выбор переменной, в которую сохраняется тип элемента интерфейса при каждом повторении цикла.

Переменная со значением — выбор переменной, в которую сохраняется значение элемента интерфейса при каждом повторении цикла.

Имя, тип и значение элемента указываются в блоке Элемент управления. Значение указывается в поле Текст.

В окне настроек отображается скриншот элемента интерфейса, с которым настраивается взаимодействие. Вы можете задать метод поиска, количество попыток поиска и интервал. Такие же настройки задаются и при работе с активити. Подробнее об этом читайте в статье «Общие принципы настройки активити».

Блок «Элемент управления»

В этом блоке можно задать, для каких элементов интерфейса будет выполняться цикл. Например, в поле Имя при помощи регулярного выражения можно указать шаблон названия, по которому бот будет искать нужные элементы. Параметры элементов задаются так же, как и при работе с активити. Подробнее об этом читайте в статье «Общие принципы настройки активити».

Вложенные циклы

Вы можете создавать вложенные циклы. Внутри одного цикла можно поместить только два других цикла. Цветовое обозначение циклов на графической модели процесса помогает отследить уровни их вложенности:

  • зеленый цвет — цикл не вложен в другие циклы;
  • синий цвет — цикл находится внутри другого цикла;
  • желтый цвет — цикл находится внутри двух других циклов.

loops-4

Нашли опечатку? Выделите текст, нажмите ctrl + enter и оповестите нас