Поддерживаемые сущности Interactor

InteractionDispatcher выбирает фабрику по интерфейсу, на котором объявлен вызываемый метод. Наследник зарегистрированного интерфейса получает его обработчики: например, методы InstallationProcess : ProcessInteractor маршрутизируются через фабрику процессов.

Зарегистрированные корневые интерфейсы

Сущность Корневой интерфейс Дополнительные возможности

Процесс

ProcessInteractor

Все общие параметры; конфигурация типа; свойства процесса, статусы, исполнители, группы и привязки

Контрагент

CustomerInteractor

Общие параметры

CRM-параметры договора

ContractLinkInteractor

Общие параметры, включая number и objectList

Единый договор

CommonContractInteractor

Общие параметры

Пользователь

UserInteractor

Общие параметры и конфигурация пользователя

Группа пользователей

GroupInteractor

Общие параметры; BindConfig зарегистрирован с ограничением, описанным ниже

Город

CityInteractor

Общие параметры

Улица

StreetInteractor

Общие параметры

Дом

HouseInteractor

Общие параметры

Строка параметра objectList

ObjectListInteractor

ID, время создания/закрытия и общие параметры, включая вложенный objectList

Движения ТМЦ процесса

TmcProcessMovesInteractor

Только BindProcessTmcMoves

Остатки ТМЦ пользователя

TmcUserLeftoverInteractor

Только BindTmcUserLeftovers

Все имена приведены относительно пакета 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 и другие. Перед созданием своего аспекта проверьте этот пакет и динамический модуль проекта.