Как настроить этот тип условия (для разработчика)
|
---|
Для того, чтобы можно было использовать данный тип условия, нужна реализация на стороне модуля, который работает с процессом. При старте процесса необходимо передавать массив изменившихся полей через параметр 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)); } |
Условие

Конструкция позволяет направить бизнес-процесс по разным сценариям в зависимости от заданного типа условия.
Проверка условий начинается слева направо. Если условие выполняется, то действия, расположенные в ветке под ним, будут исполнены. Если же какое-либо условие не выполняется, то будет произведен переход к условию, расположенному правее и так до тех пор, пока какое-либо условие не будет выполнено.
Типы условий
В списке типов могут отображаться не все типы условий перечисленные ниже (зависит от самого бизнес-процесса и наличия переменных/параметров).
- PHP код
В качестве условия указывается код Задавать PHP-код может только пользователь с правами администратора. . В случае если указанный PHP код вернет значение
true
, то будет выполнена ветка действий условия, если возвратитсяfalse
, то будет произведен переход к следующему условию.Внимание! Для этого типа условия можно использовать только PHP-код. Параметры типа{=Variable:Variable2_printable}
не поддерживаются. Также результатом выполнения кода в условии должно быть логическое выражение (true
илиfalse
). - Поле документа
Ветка действий условия будет выполнена, если совпадут параметры, связанные с полями документа.
Для этого необходимо выбрать Поле документа, указать оператор условия из списка и значение. Варианты доступных полей значения меняются в зависимости от выбранного поля документа.
Примечание: С версии 20.0.800 модуля Бизнес-процессы добавлены операторы условийне содержит
ине содержится в
. - Значение переменной
Ветка действий условия будет выполнена Примечание: В этом типе могут быть использованы значения, как переменных, так и параметров шаблона. , если совпадут значения, связанные с переменными бизнес-процесса.
Для этого необходимо выбрать Переменную/Параметр, указать оператор условия из списка и значение.
Примечание: С версии 20.0.800 модуля Бизнес-процессы добавлены операторы условийне содержит
ине содержится в
. - Истина
Ветка действий будет выполнена сразу. Это условие выполняется всегда.
- Было изменено
Если бизнес-процесс запускается при изменении документа, то есть возможность определять внутри него измененные поля. Ветка условий будет выполняться Примечание: Данный тип условий может быть применим только после дополнительных настроек модуля. , если в поле были внесены какие-то изменения.
- Смешанное
Тип условия Смешанное доступен с версии 20.100.0 модуля Бизнес-процессы.
Тип даёт возможность указать условие одновременно по полям документа, параметрам, переменным, константам или дополнительным результатам без необходимости создавать разные ветки и дополнительные переменные. При это условия объединяются по правилу И / ИЛИ. При выборе И ветка условий будет исполняться при выполнении обоих условий, а при ИЛИ - любого из указанных.
На скриншоте под номером 1 выбрано условие типа Поле документа, а под номером 2 - Переменная. Условия объединены правилом И.
Объединение условий
Для типов условия Поле документа и Значение переменной возможно создание нескольких условий объединенных по правилу И / ИЛИ. Добавление условия выполняется по нажатию на ссылку Добавить условие внизу формы. При выборе И ветка условий будет исполняться при выполнении обоих условий, а при ИЛИ - любого из указанных.
и Ваше мнение важно для нас