- Модуль: 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]
);
}