...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_bizproc.php
- Класс: \CCrmBizProc
- Вызов: CCrmBizProc::StartWorkflow
public function StartWorkflow($ID, $arBizProcParametersValues = false) { if(!CModule::IncludeModule('bizproc') || !CBPRuntime::isFeatureEnabled()) return true; global $USER; $arBizProcWorkflowId = array(); $bresult = true; foreach ($this->arDocumentStates as $arDocumentState) { if ($arDocumentState['ID'] == '') { $arErrorsTmp = array(); $arBizProcWorkflowId[$arDocumentState['TEMPLATE_ID']] = CBPDocument::StartWorkflow( $arDocumentState['TEMPLATE_ID'], array('crm', $this->sDocument, $this->sEntityType.'_'.$ID), $arBizProcParametersValues[$arDocumentState['TEMPLATE_ID']], $arErrorsTmp ); if (count($arErrorsTmp) > 0) { $this->LAST_ERROR = ''; foreach ($arErrorsTmp as $e) $this->LAST_ERROR .= $e['message'].'
'; $bresult = false; } } } if ($bresult) { $bizprocIndex = (int) $_REQUEST['bizproc_index']; if ($bizprocIndex > 0) { for ($i = 1; $i <= $bizprocIndex; $i++) { $bpId = trim($_REQUEST['bizproc_id_'.$i]); $bpTemplateId = intval($_REQUEST['bizproc_template_id_'.$i]); $bpEvent = trim($_REQUEST['bizproc_event_'.$i]); if ($bpEvent <> '') { if ($bpId <> '') { if (!array_key_exists($bpId, $this->arDocumentStates)) continue; } else { if (!array_key_exists($bpTemplateId, $this->arDocumentStates )) continue; $bpId = $arBizProcWorkflowId[$bpTemplateId]; } $arErrorTmp = array(); CBPDocument::SendExternalEvent( $bpId, $bpEvent, array('Groups' => $this->arCurrentUserGroups, 'User' => $USER->GetID()), $arErrorTmp ); if (count($arErrorsTmp) > 0) { foreach ($arErrorsTmp as $e) $this->LAST_ERROR .= $e['message'].'
'; $bresult = false; } } } } } return $bresult; }