Описание релизов/0.45.0
Содержание
Критичные изменения
Формы
Для прикладных приложений:
Удалено публичное API "IFormsDataService.getUpdatedBsModel" - вместо него, следует использовать getChangeControlValue(..) и generateBsModelFromOnlyChangeElements(..) в одном потоке.
Новая функциональность
Формы
Возможность в выражении вычислить состояние и шаг подпроцесса
Реализована возможность в выражениях в формах вычислять состояния и шаги подпроцесса. Для вычисления в выражениях необходимо использовать дискриминатор "EntryExpressionWorkflowContainsStatesBooleanParameter", а при настройке у источника согласования "WorkflowStepValidateRules".
Если параметры подпроцесса для получения состояний/шагов не заданы, то настроенная валидация или выражение срабатывает для всех экземпляров подпроцесса.
Пример указания состояния подпроцесса в операндах выражения:
1 "operands": [
2 {
3 "workflowSourceId": 1,
4 "workflowStateIds": [
5 2
6 ],
7 "subProcess": {
8 "workflowId": 201681,
9 "parameters": [
10 {
11 "id": 1,
12 "expressionId": null,
13 "value": 1
14 }
15 ]
16 },
17 "discriminator": "EntryExpressionWorkflowContainsStatesBooleanParameter",
18 "id": 1,
19 "allowMultipleValues": false
20 }
Объединение модели клиента и сервера формы
Теперь при создании формы создается 1 объект - форма, вместо двух отдельных - клиентской и серверной. Создаваемая форма объединяет в себе клиентскую и серверную часть.
Согласование
Отправка уведомлений из согласований на разных языках
Реализована отправка уведомлений из согласования на языке пользователя.
Уведомление отправляются пользователю на том языке, который определен в атрибутах данного пользователя.
Для настройки возможности отправки локализованных уведомлений согласования необходимо локализовать текста уведомлений в настройках согласования.
В поле "language" необходимо прописать необходимый язык, а в поле "value" - текст уведомления на заданном языке.
Пример настройки локализации:
1 "localizedTitle": {
2 "defaultValue": "Default title",
3 "items": [
4 {
5 "language": "ru",
6 "value": "Ru title"
7 },
8 {
9 "language": "en",
10 "value": "En title"
11 }
12 ]
13 },
14 "localizedBody": {
15 "defaultValue": "Default body",
16 "items": [
17 {
18 "language": "ru",
19 "value": "Ru body"
20 },
21 {
22 "language": "en",
23 "value": "En body"
24 }
25 ]
26 },
[тут будет ссылка на пример]
Отправка смс-уведомлений из согласований на разных языках
Для согласований добавлена возможность отправки sms-уведомлений, а также локализации данных уведомлений. Номер телефона для отправки уведомлений заполняется в атрибутах пользователя.
В шаблонах согласования был добавлен признак, определяющий как отправляется уведомление: email или sms.
1 "messageTypes": [
2 "Email",
3 "Sms"
4 ]
Для sms была добавлена настройка "localizedShortMessage", которая позволяет локализовать sms-уведомления.
1 "localizedShortMessage": {
2 "defaultValue": "Default short message",
3 "items": [
4 {
5 "language": "ru",
6 "value": "Ru short message"
7 },
8 {
9 "language": "en",
10 "value": "En short message"
11 }
12 ]
13 },
Навигатор
Работа с деревом объектов навигатора через клавиатуру
Для центрального дерева в навигаторе:
- При нажатии на кнопки вверх/вниз в режиме просмотра "Список" меняется выделение на вышележащий/нижележащий элемент
- При нажатии на кнопки вверх/вниз/вправо/влево в режиме просмотра "Плитка" меняется выделение на соответствующий элемент
- При нажатии на Enter на папке происходит открытие данной папки и выделение первого элемента в ней
- При нажатии на Backspace производится переход на уровень выше и выделение встает на папку, из которой был совершен переход.
Пользовательский навигатор
Отображение доступных языков
Если в конфигурационном файле для пользовательского навигатора определены один или два языка, то их отображение не изменится, то есть языки будут расположены перечислением в одной строке.
Если же языков 3 и более, они отображаются раскрывающимся списком.
Возможность открыть метаобъект
Если в форме c помощью действия OpenMetaObjectAction на кнопки настроено открытие метаобъектов, таких как форма или отчет, то открыть этот метаобъект можно через пользовательский навигатор.
Файловое хранилище
Возможность хранения файлов репозитория в одном бакете S3
Сервис файлохранилища(FileStorage) теперь поддерживает возможность сохранять файлы разных приложений в одном бакете, но в разных папках. Для этого в конфигурационный файл добавлен признак, который по умолчанию выключен:
- UseOneBucket - Признак, что для хранения файлов по всем приложениям используется один бакет.
- BucketName - Наименование бакета, которое используется для хранения файлов по всем приложениям. Данный бакет будет использоваться только при включении признака UseOneBucket.
Данная возможность была реализована для переноса данных на Яндекс.Cloud. В Яндексе имя бакета(корзины) должно быть уникальным, соответственно возникала проблема, так как наименования бакетов совпадают с наименованием приложения.