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