Команда
Действие приостанавливает исполнение процесса, пока пользователь вручную не выберет дальнейший вариант продолжения.
Параметры
Выполнить команду могут - кто будет выполнять команду.
Пример использования действия
В данном примере бизнес процесс остановится и будет ждать, пока пользователь не выберет команду для продолжения работы.
Для этого ему нужно зайти в сам созданный элемент (все бизнес-процессы и их элементы можно найти на странице Процессы в ленте). И во вкладке Бизнес-процессы выбрать команду.
Условие
Действие направляет бизнес-процесс по разным веткам в зависимости от выполнения условий.
Тип условия - Поле документа
Ветка действий будет выполнена, если совпадут параметры, связанные с полями документа.
Тип условия - Значение переменной
Ветка действий условия проверяет параметры и переменные бизнес-процесса.
Тип условия - Смешанное
С помощью данной ветки можно задать условие для нескольких источников. Вам не нужно создавать отдельные ветки для проверки каждого условия.
Тип условия - Истина
Эта ветка действий выполняется всегда. Ее удобно использовать как дежурный вариант, если ни одно из условий не будет выполнено.
Тип условия - 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 писем и остановить рассылку будет невозможно.
Сначала проверьте, что цикл работает верно, и только потом используйте действие «Почтовое сообщение».
Заголовок. Отображается в конструкторе бизнес-процесса.
Тип условия. Выберите тип условия, который подходит для вашей задачи:
- Поле документа — проверяет значение полей документа.
- Смешанное — проверяет сразу несколько параметров одновременно, без создания отдельных условий. Например, вы можете отслеживать значения переменных, полей документа и констант, задавая для них одно условие. Это упрощает настройку и ускоряет процесс.
- Истина — цикл действий будет выполнен сразу, без проверки условий.
- PHP код — условие задается в виде кода. Задавать PHP-код может только администратор. Доступно только в коробочной версии Битрикс24.
В облачной версии Битрикс24 цикл может выполняться не более 1000 раз. При превышении лимита:
- цикл и все его подциклы завершаются с ложным условием,
- ошибка фиксируется в журнале бизнес-процесса,
- сам бизнес-процесс продолжает работу.