Документация для разработчиков
Темная тема

Кастомизация

Переопределение логики

Модуль позволяет использовать свои классы вместо предустановленных (Bitrix\Rpa\Driver).

Таким образом можно изменить поведение модуля.

Чтобы это сделать, необходимо подписаться на событие onDriverCollectClasses модуля rpa.

В результате события должен прийти массив, где ключ - это имя класса, а значение - это ваш наследник.

Например, вы хотите использовать свою реализацию менеджера сценариев (например, чтобы добавить больше полей в черновик процесса).

Для этого создаете своего наследника:

class MyDirector extends Bitrix\Rpa\Director 
{
	public function getDraftTypeScenarios(): Bitrix\Rpa\Scenario\Collection
	{
		// MyDraftTypeScenario - ваш сценарий
		return new Bitrix\Rpa\Scenario\Collection([new MyDraftTypeScenario()]);
	}
}

После этого в init.php подписываетесь на событие:

Bitrix\Main\EventManager::getInstance()->addEventHandler(
	'rpa',
	'onDriverCollectClasses', 
	static function(\Bitrix\Main\Event $event) {
		return new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, [
			'director' => MyDirector::class,
		]);
	}
);

Теперь Bitrix\Rpa\Driver::getInstance()->getDirector() вернет инстанс вашего класса.

Классы, которые можно подменить, их имена и классы, которые надо наследовать:

[
	'factory' => Bitrix\Rpa\Factory::class,
	'urlManager' => Bitrix\Rpa\UrlManager::class,
	'director' => Bitrix\Rpa\Director::class,
	'pullManager' => Bitrix\Rpa\Integration\PullManager::class,
	'taskManager' => Bitrix\Rpa\Integration\TaskManager::class,
];

Переопределение адресов

Один из вариантов изменения адресов страниц - переопределить класс Bitrix\Rpa\UrlManager.

В своем классе можно переопределить все методы или только их часть и получить новые адреса.

Другой вариант - это указать свои шаблоны ссылок.

$templates['bitrix:rpa.panel'] = 'panel/';

\Bitrix\Rpa\Driver::getInstance()->getUrlManager()->saveCustomUrlTemplates($templates);

Теперь вместо старого адреса списка процессов будет открываться новый.

По новому адресу вы можете вставить свой компонент вместо стандартного, а со старого адреса на новый сделать редирект.



© «Битрикс», 2001-2024, «1С-Битрикс», 2024