- Модуль: 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;
}