• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/classes/general/workflowtemplateloader.php
  • Класс: CBPWorkflowTemplateLoader
  • Вызов: CBPWorkflowTemplateLoader::parseWorkflowTemplate
private function parseWorkflowTemplate($arWorkflowTemplate, &$arActivityNames, CBPActivity $parentActivity = null)
{
	if (!is_array($arWorkflowTemplate))
	{
		throw new CBPArgumentOutOfRangeException('arWorkflowTemplate');
	}

	foreach ($arWorkflowTemplate as $activityFormatted)
	{
		if (in_array($activityFormatted['Name'], $arActivityNames))
		{
			throw new Exception('DuplicateActivityName');
		}

		$arActivityNames[] = $activityFormatted['Name'];
		$activity = $this->createActivity($activityFormatted);
		if ($activity === null)
		{
			throw new Exception('Activity is not found.');
		}

		$activity->InitializeFromArray($activityFormatted['Properties']);
		if ($parentActivity)
		{
			$parentActivity->FixUpParentChildRelationship($activity);
		}

		if (!empty($activityFormatted['Children']))
		{
			$this->parseWorkflowTemplate($activityFormatted['Children'], $arActivityNames, $activity);
		}
	}

	return $activity;
}