• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/classes/general/stateservice.php
  • Класс: CBPStateService
  • Вызов: CBPStateService::getWorkflowState
static function getWorkflowState($workflowId)
{
	global $DB;

	$workflowId = trim($workflowId);
	if ($workflowId == '')
		throw new Exception("workflowId");

	$dbResult = $DB->Query(
		"SELECT WS.ID, WS.WORKFLOW_TEMPLATE_ID, WS.STATE, WS.STATE_TITLE, WS.STATE_PARAMETERS, ".
		"	".$DB->DateToCharFunction("WS.MODIFIED", "FULL")." as MODIFIED, ".
		"	WS.MODULE_ID, WS.ENTITY, WS.DOCUMENT_ID, ".
		"	WT.NAME, WT.DESCRIPTION, WP.OBJECT_ID, WP.PERMISSION, WI.STATUS, ".
		"	WS.STARTED, WS.STARTED_BY, ".$DB->DateToCharFunction("WS.STARTED", "FULL")." as STARTED_FORMATTED ".
		"FROM b_bp_workflow_state WS ".
		"	LEFT JOIN b_bp_workflow_permissions WP ON (WS.ID = WP.WORKFLOW_ID) ".
		"	LEFT JOIN b_bp_workflow_template WT ON (WS.WORKFLOW_TEMPLATE_ID = WT.ID) ".
		"	LEFT JOIN b_bp_workflow_instance WI ON (WS.ID = WI.ID) ".
		"WHERE WS.ID = '".$DB->ForSql($workflowId)."' "
	);

	$arStates = array();
	while ($arResult = $dbResult->Fetch())
		self::__ExtractState($arStates, $arResult);

	$keys = array_keys($arStates);
	if (count($keys) > 0)
		$arStates = $arStates[$keys[0]];

	return $arStates;
}