- Модуль: bizproc
- Путь к файлу: ~/bitrix/modules/bizproc/lib/automation/engine/template.php
- Класс: BitrixBizprocAutomationEngineTemplate
- Вызов: Template::saveRobotSettings
public function saveRobotSettings(array $robot, array $request)
{
$saveResult = new Result();
$documentType = $this->getDocumentType();
if (isset($robot['Properties']) && is_array($robot['Properties']))
{
$robot['Properties'] = AutomationHelper::unConvertProperties($robot['Properties'], $documentType);
}
$request = AutomationHelper::unConvertProperties($request, $documentType);
$copy = clone $this;
$copy->setRobots([$robot]);
$raw = $copy->template['TEMPLATE'];
$robotErrors = $v = $p = array();
$result = CBPActivity::callStaticMethod(
$robot['Type'],
"GetPropertiesDialogValues",
[
$documentType,
$robot['Name'] ?? null,
&$raw,
&$v,
&$p,
$request,
&$robotErrors,
]
);
if ($result || (isset($robot['Activated']) && $robot['Activated'] === 'N'))
{
$templateActivity = CBPWorkflowTemplateLoader::findActivityByName($raw, $robot['Name'] ?? null);
$robotTitle = $robot['Properties']['Title'] ?? null;
$robot['Properties'] = $templateActivity['Properties'];
$robot['Properties']['Title'] = $robotTitle;
$saveResult->setData(['robot' => $robot]);
}
else
{
foreach ($robotErrors as $i => $error)
{
$errorMessage = $error['message'] ?? null;
$errorCode = $error['code'] ?? null;
$errorParameter = $error['parameter'] ?? null;
$saveResult->addError(new Error($errorMessage, $errorCode, ['parameter' => $errorParameter]));
}
}
return $saveResult;
}