- Модуль: bizproc
- Путь к файлу: ~/bitrix/modules/bizproc/classes/general/stateservice.php
- Класс: CBPStateService
- Вызов: CBPStateService::AddWorkflow
public function AddWorkflow($workflowId, $workflowTemplateId, $documentId, $starterUserId = 0)
{
global $DB;
$arDocumentId = CBPHelper::ParseDocumentId($documentId);
$workflowId = trim($workflowId);
if ($workflowId == '')
throw new Exception("workflowId");
$workflowTemplateId = intval($workflowTemplateId);
if ($workflowTemplateId <= 0)
throw new Exception("workflowTemplateId");
$starterUserId = intval($starterUserId);
if ($starterUserId <= 0)
$starterUserId = "NULL";
$dbResult = $DB->Query(
"SELECT ID ".
"FROM b_bp_workflow_state ".
"WHERE ID = '".$DB->ForSql($workflowId)."' "
);
if ($arResult = $dbResult->Fetch())
throw new Exception("WorkflowAlreadyExists");
$DB->Query(
"INSERT INTO b_bp_workflow_state (ID, MODULE_ID, ENTITY, DOCUMENT_ID, DOCUMENT_ID_INT, WORKFLOW_TEMPLATE_ID, MODIFIED, STARTED, STARTED_BY) ".
"VALUES ('".$DB->ForSql($workflowId)."', ".(($arDocumentId[0] <> '') ? "'".$DB->ForSql($arDocumentId[0])."'" : "NULL").", '".$DB->ForSql($arDocumentId[1])."', '".$DB->ForSql($arDocumentId[2])."', ".intval($arDocumentId[2]).", ".intval($workflowTemplateId).", ".$DB->CurrentTimeFunction().", ".$DB->CurrentTimeFunction().", ".$starterUserId.")"
);
if (is_int($starterUserId))
self::cleanRunningCountersCache($starterUserId);
}