• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/classes/general/workflowtemplateloader.php
  • Класс: CBPWorkflowTemplateLoader
  • Вызов: CBPWorkflowTemplateLoader::validateTemplate
public function validateTemplate($arActivity, $user)
{
	$errors = CBPActivity::callStaticMethod(
		$arActivity['Type'],
		'ValidateProperties',
		[$arActivity['Properties'], $user]
	);

	$pref = '';
	if (isset($arActivity['Properties']['Title']))
	{
		$pref =
			Loc::getMessage('BPWTL_ERROR_MESSAGE_PREFIX', ['#TITLE#' => $arActivity['Properties']['Title']])
			. ' '
		;
	}

	foreach ($errors as $i => $e)
	{
		$errors[$i]['message'] = $pref . $e['message'];
		$errors[$i]['activityName'] = $arActivity['Name'];
	}

	if (array_key_exists('Children', $arActivity) && count($arActivity['Children']) > 0)
	{
		$bFirst = true;

		$childrenErrors = [];
		foreach ($arActivity['Children'] as $arChildActivity)
		{
			if (!isset($arChildActivity['Activated']) || $arChildActivity['Activated'] !== 'N')
			{
				$childErrors = CBPActivity::callStaticMethod(
					$arActivity['Type'],
					'ValidateChild',
					[$arChildActivity['Type'], $bFirst]
				);

				foreach ($childErrors as $i => $e)
				{
					$childErrors[$i]['message'] = $pref . $e['message'];
					$childErrors[$i]['activityName'] = $arActivity['Name'];
				}

				if ($childErrors)
				{
					$childrenErrors[] = $childErrors;
				}

				$bFirst = false;
				$validateErrors = $this->validateTemplate($arChildActivity, $user);
				if ($validateErrors)
				{
					$childrenErrors[] = $validateErrors;
				}
			}
		}

		$errors = array_merge($errors, ...$childrenErrors);
	}

	return $errors;
}