Поддерживаемые сущности Interactor
InteractionDispatcher выбирает фабрику по интерфейсу, на котором объявлен вызываемый метод. Наследник зарегистрированного интерфейса получает его обработчики: например, методы InstallationProcess : ProcessInteractor маршрутизируются через фабрику процессов.
Зарегистрированные корневые интерфейсы
| Сущность | Корневой интерфейс | Дополнительные возможности |
|---|---|---|
Процесс |
|
Все общие параметры; конфигурация типа; свойства процесса, статусы, исполнители, группы и привязки |
Контрагент |
|
Общие параметры |
CRM-параметры договора |
|
Общие параметры, включая |
Единый договор |
|
Общие параметры |
Пользователь |
|
Общие параметры и конфигурация пользователя |
Группа пользователей |
|
Общие параметры; |
Город |
|
Общие параметры |
Улица |
|
Общие параметры |
Дом |
|
Общие параметры |
Строка параметра |
|
ID, время создания/закрытия и общие параметры, включая вложенный |
Движения ТМЦ процесса |
|
Только |
Остатки ТМЦ пользователя |
|
Только |
Все имена приведены относительно пакета ru.bgcrm.util.interactor.utils.
Группы общих обработчиков
Обычные параметризованные сущности поддерживают:
-
BindId; -
BindTextParam,BindTextParamAsNumber,BindTextParamAsCollection,BindTextParamAsJson; -
BindBooleanParam,BindDateParam,BindDateTimeParam,BindAddressParam; -
BindListParam,BindListCountParam,BindTreeParam; -
BindPhoneParam,BindEmailParam,BindFileParam.
BindNumberParam и BindObjectList дополнительно зарегистрированы только для ProcessInteractor, ContractLinkInteractor и ObjectListInteractor.
BindConfig зарегистрирован для процессов и пользователей. Для процесса он читает конфигурацию типа процесса, для пользователя — конфигурацию пользователя; useGlobalConfig = true переключает чтение на глобальную конфигурацию ERP.
В GroupInteractionDispatcherFactory аннотация BindConfig сейчас ошибочно связана с UserConfigInteractionHandler, хотя в коде существует GroupConfigInteractionHandler. Поэтому ID группы интерпретируется как ID пользователя. До исправления фабрики не используйте BindConfig в интерфейсах групп.
|
Процессные обработчики
Только наследникам ProcessInteractor доступны:
-
свойства:
BindCreateTime,BindCloseTime,BindCreateUser,BindProcessType,BindProcessDescription; -
статусы:
BindProcessStatus,BindProcessStatusCheck,BindProcessStatusSwitch; -
участники:
BindProcessGroups,BindProcessExecutors; -
привязки:
BindProcessLinkedObjects,BindProcessLinkedCustomers,BindProcessLinkedContracts,BindLinkedCommonContracts,BindLinkedProcesses; -
устаревший
BindProcessTypeConfig, заменённый наBindConfig.
Полный набор параметров и сигнатур приведён в справочнике обработчиков.
Готовые аспекты
В пакете utils.process уже есть небольшие переиспользуемые интерфейсы: HasSingleAddress, WithSingleCustomer, WithMultipleCustomers, WithSingleCctvContract, WithMultipleCctvContracts, WithProcessType, CanBeClosed, WithChoosePhoneNumber и другие. Перед созданием своего аспекта проверьте этот пакет и динамический модуль проекта.