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

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"]."
";
}
?>


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

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
5
Юрий Кривопустов
Данные для $documentId смотрим в таблице b_bp_workflow_template.
Для шаблона списка это:
Код
$documentId => array('lists', 'Bitrix\Lists\BizprocDocumentLists', $id_element)
© «Битрикс», 2001-2025, «1С-Битрикс», 2025
Наверх