Если действия в пакете должны выполняться несколько раз для разных объектов, для пакета нужно включить признак циклического выполнения.
Циклический смарт-пакет.
Для циклического пакета отображаются две дополнительные настройки:
•Список итерируемых объектов — список объектов, над которыми должен выполняться пакет. Список задается смарт-выражением, которое возвращает строку с ID объектов, перечисленными через запятую.
•Условие прерывания цикла — смарт-выражение с условием. Когда условие выполняется, цикл прерывается.
Каждому циклу неявным образом присваивается индекс итерации (счетчик повторов), который доступен в рамках смарт-пакета, вместе с текущим значением итератора (элемента списка итерируемых объектов).
Переменные циклического смарт-пакета.
Переменные цикла доступны в окне редактирования смарт-выражения только в том случае, если в пакете заданы выражения "Список итерируемых объектов" и "Условие прерывания цикла". |
---|
Индекс итерации начинается со значения 0. |
---|
Выполнение циклического пакета
•вычисляется список итерируемых объектов и запускается цикл, перебирающий эти объекты;
•значение текущего объекта из списка и индекс итерации передаются во все смарт-выражения в действиях пакета;
•выполнение прекращается, когда пакет выполнен для всех объектов списка или когда выполнено условие прерывания цикла.
Смарт-выражение возвращает список номеров строк ДП "Таблица". Например, если таблица содержит три строки, то смарт-выражение вернет список {1, 2, 3}. Список итерируемых объектов. |
Поскольку индекс итерации начинает считать с 0, а в данном примере таблица содержит три строки, соответственно после трех циклов интерации индекс итерации (0, 1, 2) станет равным 3 — условие прерывания. Условие прерывания цикла. Если вы обрабатываете все строки таблицы подряд, для обращения к нужной строке таблицы можно использовать индекс итерации — он всегда принимает значения от 0 и по порядку по возрастанию: |
Смарт-выражение генерирует комментарий с текстом из колонки таблицы. Однако если вы обрабатываете не все строки таблицы, а выборочные по определенному условию, то нужно обращаться к списку итерируемых объектов. Например, если под ваше условие подходят только 3 строки из 10, индекс итерации будет принимать значения 0, 1 и 2, а список итерируемых объектов будет возвращать номера 3,5 и 7 (номера строк, подходящих под условие). Обратите внимание, что список итерируемых объектов отдается как строка, а не как число. |