Всем привет!
В техподдержку часто приходят обращения с вопросом "как запустить из одного бизнес процесса другой"? Через интерфейс дизайнера бизнес процессов это сделать нельзя, придется делать API запросы. В данной статье мы рассмотрим как можно программно запустить из одного бизнес процесса другой.
[spoiler]
Как многие уже поняли, нам придется иметь дело с действием "PHP код". Итак, создаем произвольный бизнес процесс при помощи дизайнера бизнес процессов и добавляем в него действие "PHP код".
В данном действии вызываем более сложный бизнес процесс, например "Ознакомление с документом".
Содержимое действия PHP код буде следующим:
Немного поясним, что передается в метод, который создает бизнес процесс.
1) Первый аргумент - это ID запускаемого бизнес процесса (в нашем примере это "Ознакомление с документом")
2) второй параметр это параметры документа для которого создается бизнес процесс. Тут мы задаем то, что бизнес процесс будет доступен в административной части и ID документа для которого создается БП.
3) Последний, третий параметр, это массив параметров запускаемого БП. В нашем случае, это тот пользователь, которого необходимо ознакомить с документом. В примере, это администратор сайта.
После сохранения нашего миниатюрного БП, нам надо его запустить:
Как видим, у нас в админке появляется новый бизнес процесс на утверждение
В техподдержку часто приходят обращения с вопросом "как запустить из одного бизнес процесса другой"? Через интерфейс дизайнера бизнес процессов это сделать нельзя, придется делать API запросы. В данной статье мы рассмотрим как можно программно запустить из одного бизнес процесса другой.
[spoiler]
Как многие уже поняли, нам придется иметь дело с действием "PHP код". Итак, создаем произвольный бизнес процесс при помощи дизайнера бизнес процессов и добавляем в него действие "PHP код".
В данном действии вызываем более сложный бизнес процесс, например "Ознакомление с документом".
Содержимое действия PHP код буде следующим:
CBPDocument::StartWorkflow( 6, array("iblock","CIBlockDocument","720"), array("Voters"=>array("user_1"))); |
Немного поясним, что передается в метод, который создает бизнес процесс.
1) Первый аргумент - это ID запускаемого бизнес процесса (в нашем примере это "Ознакомление с документом")
2) второй параметр это параметры документа для которого создается бизнес процесс. Тут мы задаем то, что бизнес процесс будет доступен в административной части и ID документа для которого создается БП.
3) Последний, третий параметр, это массив параметров запускаемого БП. В нашем случае, это тот пользователь, которого необходимо ознакомить с документом. В примере, это администратор сайта.
После сохранения нашего миниатюрного БП, нам надо его запустить:
Как видим, у нас в админке появляется новый бизнес процесс на утверждение