• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/lib/controller/activity.php
  • Класс: BitrixBizprocControllerActivity
  • Вызов: Activity::requestAction
public function requestAction(array $documentType, string $activity, array $params)
{
	try
	{
		$documentType = CBPHelper::ParseDocumentId($documentType);
		$activity = (new BizprocValidator(['activity' => $activity]))
			->validateString('activity')
			->getPureValues()['activity'];

		$dirtyParams = $params;
		$pureParams = (new BizprocValidator($params))
			//->validateRequire('lists_document_type')
			//->validateString('lists_document_type')
			->validateRequire('form_name')
			->validateString('form_name')
			->validateEnum('public_mode', ['Y', ''])
			->setDefault('public_mode', '')
			->getPureValues();

		$params = array_merge($dirtyParams, $pureParams);
	}
	catch (Throwable $e)
	{
		$this->addError(new Error($e->getMessage(), $e->getCode()));
		return null;
	}
	$user = $this->getCurrentUser();

	if (
		!CBPDocument::CanUserOperateDocumentType(
			CBPCanUserOperateOperation::CreateWorkflow,
			$user->getId(),
			$documentType
		)
	)
	{
		$this->addError(new Error(Loc::getMessage('BIZPROC_ACCESS_DENIED')));
		return null;
	}

	$runtime = CBPRuntime::GetRuntime();
	$runtime->StartRuntime();

	$activityDescription = $runtime->GetActivityDescription($activity);
	if (!$activityDescription)
	{
		$this->addError(new Error("Bad activity type!" . htmlspecialcharsbx($activity)));
		return null;
	}

	$runtime->IncludeActivityFile($activity);

	return CBPActivity::CallStaticMethod(
		$activity,
		"getAjaxResponse",
		[$params]
	);
}