CCrmBizProcHelper::AutoStartWorkflows

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmBizProcHelper
  4. AutoStartWorkflows
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_bizproc_helper.php
  • Класс: \CCrmBizProcHelper
  • Вызов: CCrmBizProcHelper::AutoStartWorkflows
static function AutoStartWorkflows($ownerTypeID, $ownerID, $eventType, &$errors, $parameters = array())
{
	if (!(IsModuleInstalled('bizproc') && CModule::IncludeModule('bizproc') && CBPRuntime::isFeatureEnabled()))
	{
		return false;
	}

	$ownerTypeID = (int)$ownerTypeID;
	$ownerID = (int)$ownerID;
	$eventType = (int)$eventType;

	$docName = self::ResolveDocumentName($ownerTypeID);
	if($docName === '')
	{
		return false;
	}

	$ownerTypeName = CCrmOwnerType::ResolveName($ownerTypeID);
	if($ownerTypeName === '')
	{
		return false;
	}

	$documentId = array('crm', $docName, $ownerTypeName.'_'.$ownerID);

	if (!$parameters)
	{
		CBPDocument::AutoStartWorkflows(
			array('crm', $docName, $ownerTypeName),
			$eventType,
			$documentId,
			array(),
			$errors
		);
	}
	else
	{
		if (is_string($parameters))
		{
			$parameters = CBPDocument::unsignParameters($parameters);
		}

		$templates = CBPWorkflowTemplateLoader::SearchTemplatesByDocumentType(array('crm', $docName, $ownerTypeName), $eventType);
		foreach ($templates as $template)
		{
			$workflowParameters = isset($parameters[$template["ID"]]) && is_array($parameters[$template["ID"]])
				? $parameters[$template["ID"]] : array();

			\CBPDocument::StartWorkflow(
				$template["ID"],
				$documentId,
				$workflowParameters,
				$errors
			);
		}
	}

	return true;
}

Добавить комментарий