• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/lib/automation/engine/template.php
  • Класс: BitrixBizprocAutomationEngineTemplate
  • Вызов: Template::unConvertTemplate
protected function unConvertTemplate()
{
	$documentType = $this->getDocumentType();
	$this->template = [
		'ID' => $this->getId(),
		'MODULE_ID' => $documentType[0],
		'ENTITY' => $documentType[1],
		'DOCUMENT_TYPE' => $documentType[2],
		'DOCUMENT_STATUS' => $this->template['DOCUMENT_STATUS'],
		'NAME' => $this->template['NAME'] ?? $this->makeTemplateName(),
		'AUTO_EXECUTE' => $this->autoExecuteType,
		'TEMPLATE'     => [[
			'Type' => 'SequentialWorkflowActivity',
			'Name' => 'Template',
			'Properties' => ['Title' => 'Bizproc Automation template'],
			'Children' => [],
		]],
		'PARAMETERS' => $this->template['PARAMETERS'],
		'CONSTANTS' => $this->template['CONSTANTS'],
		'SYSTEM_CODE'  => 'bitrix_bizproc_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->convertRobotToSequenceActivity($robot);
			}
			else
			{
				$sequence['Children'] = array_merge(
					$sequence['Children'],
					$this->convertRobotToSequenceActivity($robot)['Children']
				);
			}
		}

		$parallelActivity['Children'][] = $sequence;

		if (count($parallelActivity['Children']) < 2)
		{
			$parallelActivity['Children'][] = $this->createSequenceActivity();
		}

		$this->template['TEMPLATE'][0]['Children'][] = $parallelActivity;
	}
	$this->robots = null;
	$this->isConverted = false;
}