Разберём учебную задачу без чтения и изменения CRM: получить список чисел и удвоить каждое. Такая схема помогает понять устройство цикла до добавления портальных операций.
Что получает и возвращает цикл
У цикла есть входной массив и внутренняя схема, которую называют телом цикла. На каждом проходе ей доступен текущий элемент. Итог тела добавляется в общий список результатов.
Для учебного примера входом служит массив [100, 200, 300]. Во внутренней схеме число умножается на 2, а её выход назовём doubled. Список результатов должен содержать значения 200, 400 и 600 в соответствующих результатах проходов.
Форма элемента результата зависит от объявленных выходов тела. Если тело возвращает объект с полем doubled, итоговый список содержит такие объекты. Учитывайте эту форму при настройке следующего блока.
Сам цикл возвращает список items, число успешных и ошибочных обработок и признак полноты complete. Одного непустого списка недостаточно для вывода «обработано всё».
Форма списка результатов зависит от объявленных выходов тела. Счётчики и complete проверяют полноту.
Подготовьте параметры робота
В «Параметрах робота» объявите вход для списка. Для учебного массива используйте JSON со значениями в квадратных скобках. Одна строка «100, 200, 300» остаётся текстом и сама по себе не становится массивом.
Объявите выходы, которые нужны вызывающему шагу: результаты обработки и, если они важны процессу, счётчики и признак полноты. Названия должны объяснять смысл пользователю. Например, «Удвоенные значения» понятнее, чем «Данные 2».
В учебном контракте снимите «Обязательное» у входного списка и выходного items, чтобы разрешить пустой массив на входе и в результате; у двух счётчиков и признака полноты оставьте этот флаг включённым.
До настройки блоков договоритесь о допустимом составе списка. В этом примере каждый элемент должен быть числом. Объект, пустой текст и число требуют разной обработки; смешивать их без правила нельзя. Для настоящих данных подготовьте отдельное поведение при неверном элементе.
Настройте тело цикла
Создайте основную последовательность «Начало» → цикл → «Результат». Источником списка цикла укажите входной параметр робота.
Откройте внутреннюю схему цикла. Для нашего примера ей нужны начало, арифметическая операция и результат:
- В арифметическом блоке выберите умножение.
- Первое значение возьмите из текущего элемента цикла.
- Вторым значением задайте число 2.
- В «Результате» внутренней схемы передайте вычисленное число в выход
doubled.
Затем вернитесь в основную схему. Её «Результат» должен брать готовый список из выхода цикла. Если выбрать входной массив, робот вернёт исходные числа, хотя внутренняя обработка могла пройти правильно.
Не копируйте одно и то же действие три раза ради трёх чисел. Цикл нужен именно для одинакового правила с меняющимся количеством элементов.
Первое число берётся из текущего элемента, второе задано константой 2. Эта привязка действует внутри тела цикла.
Проверьте обычный и пустой список
Начните с проверки схемы и моделирования на синтетических данных. Для учебной арифметики ответы внешних блоков не нужны.
| Вход | Что проверить |
|---|---|
[100, 200, 300] |
Три результата, значения 200, 400, 600, порядок сохранён |
[100] |
Один результат без лишних элементов |
[] |
Ноль проходов тела и пустой список результатов |
[0, -10] |
Результаты 0 и −20, если отрицательные числа разрешены вашим правилом |
| Список с текстом вместо числа | Предусмотренная ошибка вместо случайного расчёта |
Пустой массив может быть нормальным входом: например, подходящих значений не оказалось. Решите отдельно, считается ли это успешной обработкой для вашей задачи. Не добавляйте искусственный элемент только ради непустого результата.
Сопоставьте счётчики с входным списком. Если вы меняли тело, источники или типы, повторите моделирование для текущей редакции.
Модель показывает три результата doubled со значениями 200, 400 и 600: успешных проходов 3, ошибок 0, обработка полная. Тип сериализованных значений по этому экрану не утверждается.
В этом учебном контракте пустой вход и пустой результат разрешены. Модель вернула пустой список, 0 успешных проходов, 0 ошибок и полную обработку. Обязательный непустой вход из другой статьи устроен иначе.
Что делать с ошибкой элемента
В настройках цикла предусмотрено поведение при ошибке: остановиться или продолжить. Для первого учебного примера проще выбрать остановку. Тогда ошибка числа не потеряется среди остальных результатов.
Продолжение требует отдельной проверки итогов: успешные и ошибочные элементы нужно различать, а complete и число ошибок передавать в дальнейшее решение. Частичный результат нельзя использовать как полный без проверки.
Для операций записи последствия серьёзнее. Если несколько элементов уже изменили CRM, ошибка следующего элемента не отменяет подтверждённые записи. Перед новым запуском сверяйте журнал и фактические данные.
Перед дальнейшей обработкой проверяйте список результатов, оба счётчика и complete. Подтверждённые записи не откатываются после ошибки элемента.
Внешний цикл получает список из параметра робота. Выбраны остановка при ошибке и запрет неполной выборки; это настройки данного примера.
Где проходит граница этой схемы
Учебный цикл обрабатывает элементы последовательно, без параллельной обработки и вложенных циклов. Для большого списка проверяйте длительность и объём результата на реалистичном наборе. Трёх чисел для такой проверки недостаточно.
Моделирование чистой арифметики подтверждает расчёт на заданном входе. Оно не доказывает доступ к карточкам CRM. При добавлении внешних действий потребуются имитации для моделирования и отдельная проверка настоящего запуска на тестовом портале.
Частые вопросы
Цикл нужен для любого массива?
Нет. Если задачу целиком решает готовая операция массива, например фильтрация или суммирование, отдельное тело цикла может быть лишним. Цикл полезен для повторяемой последовательности действий над элементом.
Почему следующий блок видит объекты вместо чисел?
Результат прохода хранит объявленные выходы тела. Проверьте его структуру и выберите нужное поле для следующего преобразования.
Можно считать частичный результат успешной обработкой списка?
Только если ваше бизнес-правило допускает частичную обработку и явно проверяет ошибки. Список результатов сам по себе не подтверждает полноту.
Подробнее о работе с блоками и проверке схем см. на странице приложения.





