• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/automation/engine/template.php
  • Класс: Bitrix\Crm\Automation\Engine\Template
  • Вызов: Template::saveRobotSettings
public function saveRobotSettings(array $robot, array $request)
{
	$saveResult = new Result();
	$documentType = array(
		'crm',
		\CCrmBizProcHelper::ResolveDocumentName($this->template['ENTITY_TYPE_ID']),
		\CCrmOwnerType::ResolveName($this->template['ENTITY_TYPE_ID'])
	);

	if (isset($robot['Properties']) && is_array($robot['Properties']))
	{
		$robot['Properties'] = $this->unConvertRobotProperties($robot['Properties'], $documentType);
	}

	if (is_array($request))
	{
		$request = $this->unConvertRobotProperties($request, $documentType);
	}

	$this->setRobots(array($robot));
	$raw = $this->getBizprocTemplate();

	$robotErrors = $v = $p = array();
	$result = \CBPActivity::CallStaticMethod(
		$robot['Type'],
		"GetPropertiesDialogValues",
		array(
			$documentType,
			$robot['Name'],
			&$raw['TEMPLATE'],
			&$v,
			&$p,
			$request,
			&$robotErrors
		)
	);

	if ($result)
	{
		$templateActivity = \CBPWorkflowTemplateLoader::FindActivityByName($raw['TEMPLATE'], $robot['Name']);

		if ($robot['Type'] === 'CrmSendEmailActivity') //Fix for WAF
		{
			$templateActivity['Properties'] = $this->unConvertRobotProperties($templateActivity['Properties'], $documentType);
		}

		$robotTitle = $robot['Properties']['Title'];
		$robot['Properties'] = $templateActivity['Properties'];
		$robot['Properties']['Title'] = $robotTitle;

		$saveResult->setData(array('robot' => $robot));
	}
	else
	{
		foreach ($robotErrors as $i => $error)
		{
			$saveResult->addError(new Error($error['message']));
		}
	}

	return $saveResult;
}