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

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

	$dbResult = $DB->Query(
		"SELECT STATE_PARAMETERS ".
		"FROM b_bp_workflow_state ".
		"WHERE ID = '".$DB->ForSql($workflowId)."' "
	);

	if ($arResult = $dbResult->Fetch())
	{
		$stateParameters = array();
		if ($arResult["STATE_PARAMETERS"] <> '')
			$stateParameters = unserialize($arResult["STATE_PARAMETERS"], ['allowed_classes' => false]);

		$ar = array();
		foreach ($stateParameters as $v)
		{
			if ($v["NAME"] != $name)
				$ar[] = $v;
		}

		$stateParameters = "";
		if (count($ar) > 0)
			$stateParameters = serialize($ar);

		$DB->Query(
			"UPDATE b_bp_workflow_state SET ".
			"	STATE_PARAMETERS = ".($stateParameters <> '' ? "'".$DB->ForSql($stateParameters)."'" : "NULL").", ".
			"	MODIFIED = ".$DB->CurrentTimeFunction()." ".
			"WHERE ID = '".$DB->ForSql($workflowId)."' "
		);
	}
}