- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/bizprocdocument.php
- Класс: BitrixDiskBizProcDocument
- Вызов: BizProcDocument::startAutoBizProc
static function startAutoBizProc($storageId, $fileId, $autoExecuteType, array $workflowParameters = array())
{
$documentData = array(
'DISK' => array(
'DOCUMENT_TYPE' => BizProcDocument::generateDocumentComplexType($storageId),
'DOCUMENT_ID' => BizProcDocument::getDocumentComplexId($fileId),
),
'WEBDAV' => array(
'DOCUMENT_TYPE' => BizProcDocumentCompatible::generateDocumentComplexType($storageId),
'DOCUMENT_ID' => BizProcDocumentCompatible::getDocumentComplexId($fileId),
),
);
$error = array();
foreach($documentData as $nameModule => $data)
{
$filter = array(
"DOCUMENT_TYPE" => $data["DOCUMENT_TYPE"],
"AUTO_EXECUTE" => $autoExecuteType,
"ACTIVE" => "Y",
);
if ($workflowParameters)
{
$filter['!PARAMETERS'] = null;
}
else
{
$filter['PARAMETERS'] = null;
}
$workflowTemplateObject = CBPWorkflowTemplateLoader::getList(
array(),
$filter,
false,
false,
array("ID", "PARAMETERS")
);
while ($workflowTemplate = $workflowTemplateObject->getNext())
{
$workflowParameter = array();
foreach($workflowParameters as $idParameter => $valueParameter)
{
$search = $workflowTemplate['ID'];
$res = mb_strpos($idParameter, $search);
if($res === 7)
{
$parameterKey = end(explode('_', $idParameter));
$workflowParameter[$parameterKey] = $valueParameter;
}
}
$workflowParametersCheck = CBPWorkflowTemplateLoader::checkWorkflowParameters(
$workflowTemplate["PARAMETERS"],
$workflowParameter,
$data["DOCUMENT_TYPE"],
$error
);
CBPDocument::startWorkflow($workflowTemplate['ID'], $data["DOCUMENT_ID"], $workflowParametersCheck, $error);
}
}
}