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