mybpm!
Скачать в формате: PDF pdf DOCX word

Команды формы

В новой концепции почти все действия клиента контролируется апи.

Это реализовано с помощью команд.

После валидации формы клиенту будет отправлен объект BoiFormResultUpdate, который содержит различные виды команд.

Есть следующие виды команд:

BoiFormCommandUpdate

BoiFieldFormCommandUpdate

BoiFieldFormCommandUpdateSometimes

BoiFormCommandUpdate

Данный тип команды группирует в себе все команды, которые относятся к самой форме.

Пример: показ кнопок, показ уведомления по форме, закрытие формы.

BoiFieldFormCommandUpdate

Данные тип команды группирует в себе все команды, которые относятся к полям формы.

Пример: обновление значения поля, показ ошибок у поля.

BoiFieldFormCommandUpdateSometimes

Данные тип команды группирует в себе все команды, которые относятся к метаданным полей формы.

Пример: скрытие поля, показ поля, изменение объязательности или свойства "Только для чтения".

Разница между веб командами и мобильными командами

Из за того, что веб версия формы и мобильная версия формы архитектурно отличаются, команды для них тоже отличаются. Однако основая логика у них одинаковая, отличие - в path (путь).

Поэтому было принято решение конвертировать веб команды в мобильные команды вместо написания DRY кода.

Но разработчику не надо во всех местах конвертировать команды - достаточно над методом, который возвращает BoiFormResultUpdate написать аннотацию @CommandReturnConvert.

Есть одно ограничение: метод, надо которым пишется данная аннотация, в виде параметра должен принимать AuthUserInfo в любом порядке.

Данная логика реализована с помощью AOP.

Сама логика конвертации находится в InstanceCommandConvertRegister.convertToMobileCommands(), если добавится новая команда и команда требует другого подхода для мобильной версий, то надо именно сюда написать логику