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

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


© «Битрикс», 2001-2024, «1С-Битрикс», 2024