Команда
Действие приостанавливает исполнение процесса, пока пользователь вручную не выберет дальнейший вариант продолжения.
Параметры
Выполнить команду могут - кто будет выполнять команду.
Пример использования действия
В данном примере бизнес процесс остановится и будет ждать, пока пользователь не выберет команду для продолжения работы.
Для этого ему нужно зайти в сам созданный элемент (все бизнес-процессы и их элементы можно найти на странице Процессы в ленте). И во вкладке Бизнес-процессы выбрать команду.
Условие
Действие направляет бизнес-процесс по разным веткам в зависимости от выполнения условий.
Тип условия - Поле документа
Ветка действий будет выполнена, если совпадут параметры, связанные с полями документа.
Тип условия - Значение переменной
Ветка действий условия проверяет параметры и переменные бизнес-процесса.
Тип условия - Смешанное
С помощью данной ветки можно задать условие для нескольких источников. Вам не нужно создавать отдельные ветки для проверки каждого условия.
Тип условия - Истина
Эта ветка действий выполняется всегда. Ее удобно использовать как дежурный вариант, если ни одно из условий не будет выполнено.
Тип условия - PHP код
В качестве условия указывается код.
В случае если указанный PHP код вернет значение true
, то будет выполнена ветка действий условия, если возвратится false
, то будет произведен переход к следующему условию.
Тип условия - Было изменено
Если бизнес-процесс запускается при изменении документа, то есть возможность определять внутри него измененные поля. Ветка условий будет выполняться, если в поле были внесены какие-то изменения.
Как настроить этот тип условия (для разработчика)
Для того, чтобы можно было использовать данный тип условия, нужна реализация на стороне модуля, который работает с процессом. При старте процесса необходимо передавать массив изменившихся полей через параметр CBPDocument::PARAM_MODIFIED_DOCUMENT_FIELDS
:
CBPDocument::StartWorkflow( $arDocumentState["TEMPLATE_ID"], BizProcDocument::getDocumentComplexId($arParams["IBLOCK_TYPE_ID"], $arResult["ELEMENT_ID"]), array_merge($arBizProcParametersValues[$arDocumentState["TEMPLATE_ID"]], array( CBPDocument::PARAM_TAGRET_USER => "user_".intval($GLOBALS["USER"]->GetID()), CBPDocument::PARAM_MODIFIED_DOCUMENT_FIELDS => $modifiedFields )), $arErrorsTmp );
А для того, чтобы новое условие появилось в редакторе для настройки, необходимо реализовать в документе его поддержку:
public static function isFeatureEnabled($documentType, $feature) { return in_array($feature, array(\CBPDocumentService::FEATURE_MARK_MODIFIED_FIELDS)); }
Параллельное ожидание действия
Действие направляет бизнес-процесс по разным веткам в зависимости от того, какое событие наступит раньше.
Для выполнения ветки действий в этой конструкции первыми должны быть обязательно использованы действия Команда или Пауза в выполнении.
Действие Пауза позволяет продолжить выполнение бизнес-процесса через определенное время в случае, если ни одна из команд не будет выполнена. Иначе бизнес-процесс просто остановится и будет ожидать выполнения какой-то команды.
Параллельное выполнение
Действие настраивает одновременное выполнение веток действий. Если какая-либо из веток внутри конструкции не будет выполнена, то бизнес-процесс остановится и будет ожидать ее исполнения.
Установить статус
Действие переводит бизнес-процесс в другой статус.
В действии также доступна опция Прервать выполнение текущего статуса, которая позволяет немедленно перейти к новому статусу, не дожидаясь полной отработки предыдущего.
Итератор
Действие позволяет организовать обработку множественной переменной. С помощью него можно создать цикл действий, которые будут выполняться с очередным её значением.
В настройках действия укажите переменную, с которой вы планируете работать.
После этого можно легко организовать выполнение целого ряда однотипных действий со всеми значениями множественной переменной. Например, у вас имеется переменная с типом Пользователь, представляющая собой список сотрудников. И вы хотите создать последовательно каждому их них задачу. Укажите в настройках Итератора переменную со списком, а в сам цикл добавьте действие Задача.
Цикл
При тестировании цикла не используйте действие "Почтовое сообщение". Если возникнет ошибка и процесс зациклится, то почтовое сообщение отработает 1000 раз и вашему клиенту уйдет 1000 писем. Остановить их отправку будет нельзя.
Сначала убедитесь, что цикл работает правильно, а потом используйте его для отправки писем.
Цикл повторяется до тех пор, пока выполняется заданное условие.
Тип условия - Поле документа
Цикл будет проверять поля документа.
Тип условия - Значение переменной
Цикл проверяет указанные параметры и переменные бизнес-процесса.
Тип условия - Смешанное
С помощью данной ветки можно задать условие для нескольких источников. Вам не нужно создавать отдельные ветки для проверки каждого условия.
Тип условия - PHP код
В качестве условия указывается код.
Тип условия - Истина
В этом случае цикл будет выполняться всегда.