Документация для разработчиков
Темная тема

StartWorkflow

Описание и параметры

string
public static function CBPDocument::StartWorkflow(
	integer workflowTemplateId,
	array documentId,
	array arParameters,
	array &arErrors
);

Метод запускает рабочий поток по коду его шаблона. Это рекомендуемый метод для запуска бизнес-процессов.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

ПараметрОписание
workflowTemplateIdКод шаблона рабочего потока.
documentIdМассив из 3 элементов. id модуля, сущность (класс) и непосредственно ID документа, например:
['crm', 'CCrmDocumentLead', 'LEAD_1']
['lists', 'BizprocDocument', '22']
['disk', 'Bitrix\Disk\BizProcDocument', '490']
['tasks', 'Bitrix\Tasks\Integration\Bizproc\Document\Task', '13']

Для бизнес-процессов:

$documentId => array('lists', 'BizprocDocument', $id_element)

Для шаблона списка:

$documentId => array('lists', 'Bitrix\Lists\BizprocDocumentLists', $id_element)
arParametersМассив параметров запуска рабочего потока.

Примечание: если процесс запускается из другого процесса через API, и при этом передается значение множественного параметра, то оно должно передаваться в виде массива.

arErrorsМассив ошибок, которые произошли при запуске рабочего потока в виде
array(
	array(
		"code" => код_ошибки,
		"message" => сообщение,
		"file" => путь_к_файлу
	),
	...
)

Возвращаемое значение

Возвращается идентификатор запущенного бизнес-процесса. В случае ошибки заполняется массив ошибок.

Смотрите также

Примеры использования

<?
// Запустим бизнес-процесс по шаблону $workflowTemplateId с входящими параметрами $arWorkflowParameters
// для документа array("bizproc", "CBPVirtualDocument", $documentId)
$arErrorsTmp = array();
$wfId = CBPDocument::StartWorkflow(
	$workflowTemplateId,
	array("bizproc", "CBPVirtualDocument", $documentId),
	array_merge($arWorkflowParameters, array("TargetUser" => "user_".intval($GLOBALS["USER"]->GetID()))),
	$arErrorsTmp
);
if (count($arErrorsTmp) > 0)
{
	foreach ($arErrorsTmp as $e)
		$errorMessage .= "[".$e["code"]."] ".$e["message"]."
";
}
?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
kodder
Сообщение не промодерировано, возможны ошибки и неточности.
Чтобы бизнес процесс корректно привязался к элементу инфоблока и отображался корректно во вкладке Бизнес Процессы,
$documentId должен быть такой array('iblock', 'CIBlockDocument', $ELEMENT_ID)

Если вы укажите ENTITY неверное, БП запустится, но у элемента не будет привязки к заданию бизнес процесса, хотя оно создаться.
1
Avdal
Сообщение не промодерировано, возможны ошибки и неточности.
Цитата
пишет:
("crm", "Bitrix\Crm\Integration\BizProc\Document\Dynamic", "DYNAMIC_157_263")
А можно так же универсально запускать для старых entity (1-лид, 2 - сделка, 3- contact, ...) или для них нужно городить разный запрос для каждой сущности?  
7
Владимир Сергеев
Сообщение не промодерировано, возможны ошибки и неточности.
Для запуска в смарт-процессах:

$documentId => array("crm", "Bitrix\Crm\Integration\BizProc\Document\Dynamic", "DYNAMIC_157_263"),

где 157 - это ID смарт-процесса, 263 - это ID элемента смарт-процесса.
5
Юрий Кривопустов
Данные для $documentId смотрим в таблице b_bp_workflow_template.
Для шаблона списка это:
Код
$documentId => array('lists', 'Bitrix\Lists\BizprocDocumentLists', $id_element)
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх