Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Цикл "Для каждого"

...

Версия 10 (Java)

Группа действий: Базовые действия

...

Описание

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

Иконка действия

Image Removed

...

Image Added

Параметры и их настройки

Свойство
Англ. наименование
ОписаниеТипПример заполнения
Обязательность заполнения
Обязательность заполнения поля
Параметры
Коллекция
Collection
Коллекция объектов, проход по которым будет осуществляться в цикле
.

Коллекция

Коллекция_значенийДаИдентификаторSequence Id

Идентификатор последовательности действий, которая должна выполняться на каждом шаге цикла.

!! Данный параметр не отображается и назначается системой автоматически.

Идентификатор последовательности действий

Да

Действия в последовательности должны быть
Robin.Collection
Да
Результаты
Объект
Object
Объект, в который будет помещен каждый элемент коллекции
.

Объект

ITERATION_ACTUAL_STATE
во время выполнения итерацииRobin.Object

Особые условия использования

...

Порядок работы с циклом

...

"Для каждого"

  1. Выбрать действие "Для каждого" из группы действий "Базовые действия" и перенести в сценарий

...

  1. . 

...

  1. Image Added

...

  1. Заполнить тело цикла необходимыми

...

  1. действиям.
    Пример заполнения:

...

  1. Image Added

...

  1. Заполнить параметры действия.
    1. Коллекция (список значений, которые будут обработаны в цикле).
      Пример заполнения параметров:

...

    1. Image Added


4. Результат работы цикла: объект, в который будет помещен каждый элемент коллекции во время выполнения итерации.

Сравнение циклов

...

"Для" и "Для каждого".

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

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

Задача

...

Существует коллекция переменных с типом "Массив чисел" и "Число", содержащие соответственно значение "(1988, 8, 2, 4)" и "0".
Необходимо завершить работу цикла, пока значение числовой переменной не будет равно значению "2".

Решение

...

  1. Добавить цикл "Для каждого".

  2. Добавить действие "Равно".

  3. Добавить условие "Если". В ветвь "

  4. Нет
  5. Истина" добавить

  6. прерывание цикла и
  7. сообщение в лог

  8. .Сообщение в лог
  9. и прерывание цикла.

Реализация

...

  1. Создаем

  2. и добавляем в коллекцию "Коллекция_значений"
  3. переменную с типом "

  4. Число", которая будет являться частью условия "Если" и содержать значение "0".Создаем и добавляем в коллекцию "Коллекция_значений" переменную с типом "Массив чисел" и элементами"
  5. Коллекция". В коллекцию вносим значения (1988, 8, 2, 4)

  6. ", проход по которым будет осуществляться в цикле.
  7. Открываем группу действий "Базовые действия".
  8. Помещаем
  9. типа "Число".
    Image Added
    Image Added

  10. Перемещаем в рабочее пространство студии действие

  11. "
  12. Цикл "Для каждого".


  13. Настройка действия: 
    1. Параметр "Коллекция".

  14. Выбираем
    1. Указываем созданную коллекцию"Коллекция_значений"

  15. , проход по объектам которой будет осуществляться в цикле
    1. . В ходе работы робота, цикл будет проходить по каждому из значений в коллекции.
      Image Added


  16. Перемещаем в рабочее пространство студии действие "Равно", внутрь цикла "Для каждого".

    1. Параметр "

  17. Объект
    1. Первый операнд".

  18. Выбираем переменную "ITERATION_ACTUAL_STATE", в которую будет помещен каждый элемент коллекции.Image Removed
    1. В данном параметре указываем объект текущей итерации цикла "Для каждого".

    2. Параметр "Второй операнд". В данном параметре указываем число "2". При нахождении числа 2 в цикле "Для каждого", цикл закончит свою работу.
      Image Added

  19. Перемещаем в рабочее пространство студии действие "Если", внутрь цикла "Для каждого".

    1. Параметр "Условие". В данном параметре указывается результат действия "Равно". Если результат действия "Равно" - true, то робот пойдет по ветке "Истина", если - false, то - по ветке "Ложь".
      Image Added

    2. В ветке "Истина" действия "Если" перемещаем

  20. Помещаем в рабочее пространство студии действие "Если" (см. описание действия "Если"). 
    1. Помещаем в рабочее пространство действия "Если" ветви "Нет" действие "Сообщение в лог" (см. описание действия "Сообщение в лог"). 
    2. Помещаем в рабочее пространство действия "Если" ветви "Нет" действие "Прервать цикл" (см. описание действия "Прервать цикл"). 
  21. Помещаем в рабочее пространство студии
    1. действие "Сообщение в лог"

  22.  (см. описание действия "Сообщение в лог"). 
    1. .
      Image Added

    2. В ветке "Истина" действия "Если" перемещаем действие "Прервать цикл"

  23. Запускаем робота по кнопке "Запуск" в верхней панели. Итоговая схема робота будет выглядеть следующим образом.
    Image Added

Результат

...

Робот отработал успешно. Алгоритм прошел по циклу и был прерван после установки переменной значения того как в коллекции было найдено значение "2".
Image Added

Кейс

...

"Сортировка". Цикл

...

"Для каждого"

Задача

: В папке находятся файлы с расширением .xls(x) и .docx. Необходимо создать папки с названием расширения и распределить файлы по папкам.
Image Added

Решение

...

  1. На рабочую область перенести действия

  2. «Получить
  3. "Получить содержимое

  4. папки» и «Для каждого». 

Image Removed

...

  1. папки" и "Для каждого".
    Image Added

  2. Заполнить параметры действий.

...

    1. Действие

...

    1. "Получить содержимое

...

    1. папки".
      В строке

...

    1. "Папка" указать путь до папки с файлами, которые необходимо рассортировать.
      В

...

    1. поле  "Тип объектов" указать значение  "только файлы".

...


Image Removed

...

    1. Image Added

    2. Действие "Для каждого".
      В строке

...

Image Removed

...

    1. "Коллекция" указать результат выполнения действия

...

    1. "Получить содержимое папки".
      Image Added

  1. В тело цикла поместить следующие действия в указанном порядке:

  2. «Получить
    1. "Получить информацию о

  3. файле»
    1. файле";

  4. «Извлечь
    1. "Извлечь с

  5. позиции»
    1. позиции";

  6. «Найти папку»
    1. "Найти папку";

  7. «Получить длину»
    1. "Получить длину";

  8. «Если»
    1. "Если";

    2. На ветвь

  9. «Истина» поставить
    1. "Истина" переместить действия:

...

    1. "Получить значение по

...

    1. индексу";

...

    1. "Конвертировать данные";

                                                                    iii.      «Переместить файл»;

                  g. На ветвь «Ложь» установить действия:

                                                                         i.      «Создать новую папку»;

                                                                       ii.      «Переместить файл»;

Image Removed

...

    1. "Переместить файл";

    2. На ветвь "Ложь" переместить действия:
      "Создать новую папку";
      "Переместить файл";

  1. Заполнить параметры действий.

    1. Для действия

...

    1. "Получить информацию о

...

    1. файле":
      Параметр

...

Image Removed

...

    1. "Файл" - ссылка на объект, обрабатываемый в момент итерации цикла.

...

    1. Image Added

    1. Для действия

...

    1. "Извлечь с

...

    1. позиции";
      Параметр

...

    1. "Исходный текст" - результат "Расширение" действия

...

    1. "Получить информацию о

...

    1. файле".
      Параметр

...

    1. "Позиция" - 1.
      Параметр

...

    1. "Длина" если данный параметр не заполнен, то текст извлекается с заданной позицией до конца.

...

    1. Image Added

...

    1. Для действия

...

    1. "Найти папку"
      Параметр

...

    1. "Папка для

...

    1. поиска" - путь до папки, где храниться подпапка для сортировки файлов.
      Параметр

...

    1. "Шаблон поиска" - результат действия

...

    1. "Извлечь с

...

    1. позиции".

...

    1. Image Added

...

    1. Для действия "Получить длину"
      Параметр

...

    1. "Коллекция или

...

    1. массив" - результат действия

...

Image Removed

...

    1. "Найти папку".
      Image Added

    2. Для действия "Если"
      С помощью инструмента построения выражения в параметр условия записать логический оператор

...

    1. "Больше чем", где первый операнд – результат действия

...

    1. "Получить длину", а второй – 0.
      Image Added

...

    1. Image Added

...

    1. Для действия "Получить значение по

...

    1. индексу".
      Параметр

...

    1. "Коллекция" - результат действия

...

    1. "Найти папку".
      Параметр

...

    1. "Индекс" - 0.

...


...

    1. Image Added

...

    1. Для действия

...

    1. "Конвертировать данные"
      Параметр

...

    1. "Источник" - результат действия

...

    1. "Путь к

...

    1. папке"
      Параметр

...

    1. "Тип" - путь к папке.

...


...

    1. Image Added

...

    1. Для действия "Переместить файл".
      Параметр

...

    1. "Файл" - ссылка на объект, обрабатываемый в момент итерации цикла.
      Параметр

...

    1. "Папка назначения" - результат действия

...

    1. "Конвертировать данные".

...

    1. Image Added

...

    1. Для действия

...

    1. "Создать новую

...

    1. папку"
      Параметр

...

    1. "Родительская папка" - путь до папки, где , где храниться подпапка для сортировки файлов.
      Параметр

...

    1. "Имя" - результат действия

...

    1. "Извлечь с

...

    1. позиции".

...

    1. Image Added

...

    1. Для действия "Переместить файл".
      Параметр

...

    1. "Файл" - ссылка на объект, обрабатываемый в момент итерации цикла.
      Параметр

...

    1. "Папка назначения" - результат действия

...

    1. "Создать новую

...

    1. папку".

...

    1. Image Added

Результат

Робот отработал успешно.
Image Added
Алгоритм прошел по циклу, рассортировывая файлы по папкам.
Image Added
Image Added
Image Added