- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/automation/engine/template.php
- Класс: Bitrix\Crm\Automation\Engine\Template
- Вызов: Template::unConvertTemplate
protected function unConvertTemplate()
{
$this->bizprocTemplate = array(
'ID' => isset($this->template['TEMPLATE_ID']) ? $this->template['TEMPLATE_ID'] : 0,
'AUTO_EXECUTE' => \CBPDocumentEventType::Automation,
'TEMPLATE' => array(array(
'Type' => 'SequentialWorkflowActivity',
'Name' => 'Template',
'Properties' => array('Title' => 'CRM Automation template'),
'Children' => array()
)),
'SYSTEM_CODE' => 'bitrix_crm_automation'
);
if ($this->robots)
{
$parallelActivity = $this->createParallelActivity();
$sequence = $this->createSequenceActivity();
foreach ($this->robots as $i => $robot)
{
if ($i !== 0 && !$robot->isExecuteAfterPrevious())
{
$parallelActivity['Children'][] = $sequence;
$sequence = $this->createSequenceActivity();
}
$delayInterval = $robot->getDelayInterval();
if ($delayInterval && !$delayInterval->isNow())
{
$delayName = $robot->getDelayName();
if (!$delayName)
{
$delayName = Robot::generateName();
$robot->setDelayName($delayName);
}
$sequence['Children'][] = $this->createDelayActivity(
$delayInterval->toActivityProperties(),
$delayName
);
}
$activity = $robot->getBizprocActivity();
$condition = $robot->getCondition();
if ($condition && count($condition->getItems()) > 0)
{
$activity = $condition->createBizprocActivity($activity);
}
$sequence['Children'][] = $activity;
}
$parallelActivity['Children'][] = $sequence;
if (count($parallelActivity['Children']) < 2)
{
$parallelActivity['Children'][] = $this->createSequenceActivity();
}
$this->bizprocTemplate['TEMPLATE'][0]['Children'][] = $parallelActivity;
}
}