Описание релизов/0.45.0: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 32: Строка 32:
  
 
=Новая функциональность=
 
=Новая функциональность=
== Отчет ==
 
===Возможность в параметре для гиперссылки указывать отметку справочника столбца===
 
Реализована возможность передавать в параметр, для формирования гиперссылки, элемент справочника столбца. Данная возможность позволяет формировать более сложные гиперссылки, которые будут зависеть как от параметра строки, так и столбца. Для формирования такой ссылки необходимо в блоке "parameterSources" задать два параметра.
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
 
<div style="font-weight:bold;line-height:1.6;">Пример задания параметров</div>
 
<div class="mw-collapsible-content mw-collapsed-content">
 
<syntaxhighlight lang="JSON" line>
 
            "parameterSources": [
 
              {
 
                "parameterId": 1,
 
                "valueSource": {
 
                  "dictionaryAttribute": {
 
                    "dictionaryId": 1,
 
                    "attribute": {
 
                      "discriminator": "OwnAttributeDefinitionDto",
 
                      "id": 1
 
                    }
 
                  },
 
                  "discriminator": "AttributeValueSourceDto"
 
                }
 
              },
 
              {
 
                "parameterId": 2,
 
                "valueSource": {
 
                  "dictionaryAttribute": {
 
                    "dictionaryId": 2,
 
                    "attribute": {
 
                      "discriminator": "OwnAttributeDefinitionDto",
 
                      "id": 1
 
                    }
 
                  },
 
                  "discriminator": "AttributeValueSourceDto"
 
                }
 
              }
 
            ],
 
</syntaxhighlight>
 
</div></div>
 
 
[[Файл:гиперссылки.gif|слева|800px|border]]<br clear="both" /><br>
 
  
 
== Формы ==
 
== Формы ==
Строка 109: Строка 69:
 
</div></div>
 
</div></div>
  
===Объединение модели клиента и сервера формы===
+
 
Теперь при создании формы создается 1 объект - форма, вместо двух отдельных - клиентской и серверной. Создаваемая форма объединяет в себе клиентскую и серверную часть: серверная часть располагается в блоке "serverModel", клиентская часть в блоке "data".
 
[[Файл:форма клиент сервер.png|слева|500px|border]]<br clear="both" /><br>
 
  
 
== Согласование ==
 
== Согласование ==
Строка 161: Строка 119:
 
<br>
 
<br>
  
===Отправка смс-уведомлений из согласований на разных языках===
 
Для согласований добавлена возможность отправки sms-уведомлений, а также локализации данных уведомлений. Номер телефона для отправки уведомлений заполняется в атрибутах пользователя.<br>
 
 
В шаблонах согласования был добавлен признак, определяющий как отправляется уведомление: email или sms.
 
<syntaxhighlight lang="JSON" line>
 
  "messageTypes": [
 
    "Email",
 
    "Sms"
 
  ]
 
</syntaxhighlight>
 
 
Для sms была добавлена настройка "localizedShortMessage", которая позволяет локализовать sms-уведомления.
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
 
<div style="font-weight:bold;line-height:1.6;">Пример настройки локализации sms-уведомлений</div>
 
<div class="mw-collapsible-content mw-collapsed-content">
 
<syntaxhighlight lang="JSON" line>
 
          "localizedShortMessage": {
 
            "defaultValue": "Default short message",
 
            "items": [
 
              {
 
                "language": "ru",
 
                "value": "Ru short message"
 
              },
 
              {
 
                "language": "en",
 
                "value": "En short message"
 
              }
 
            ]
 
          },
 
</syntaxhighlight>
 
</div></div>
 
  
 
== Навигатор ==
 
== Навигатор ==

Версия 10:10, 19 апреля 2022

Критичные изменения

Формы

Для прикладных приложений:

Удалено публичное API "IFormsDataService.getUpdatedBsModel" - вместо него, следует использовать getChangeControlValue(..) и generateBsModelFromOnlyChangeElements(..) в одном потоке.

Выставление значения в поле формы

При настройке значения поля через выражение, нельзя указывать это же поле в качестве источника формы. Будет осуществляться проверка на цикл и такая форма не откроется.

Пример выражения
 1     {
 2       "expression": "if(isNullOrEmpty([1]),Today(), [1])",
 3       "returnFirstParameterValue": false,
 4       "operands": [
 5         {
 6           "uiSourceId": 21,
 7           "discriminator": "EntryExpressionUiSourceParameter",
 8           "id": 1,
 9           "allowMultipleValues": false
10         }
11       ],
12       "id": 2011,
13       "name": "Установить текущую дату",
14       "code": null
15     }

В случае выставления значения в поле при открытии, необходимо настраивать через действие дискриминатор 'CalculateControlValueAction'. При установке значения по умолчанию в поле, источник которого атрибут справочника, необходимо задать значения атрибуту в источнике.

Новая функциональность

Формы

Возможность в выражении вычислить состояние и шаг подпроцесса

Реализована возможность в выражениях в формах вычислять состояния и шаги подпроцесса. Для вычисления в выражениях необходимо использовать дискриминатор "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   }


Согласование

Отправка уведомлений из согласований на разных языках

Реализована отправка уведомлений из согласования на языке пользователя.
Уведомление отправляются пользователю на том языке, который определен в атрибутах данного пользователя.
Для настройки возможности отправки локализованных уведомлений согласования необходимо локализовать текста уведомлений в настройках согласования. В поле "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           },



Навигатор

Работа с деревом объектов навигатора через клавиатуру

Для центрального дерева в навигаторе:

  • При нажатии на кнопки вверх/вниз в режиме просмотра "Список" меняется выделение на вышележащий/нижележащий элемент
  • При нажатии на кнопки вверх/вниз/вправо/влево в режиме просмотра "Плитка" меняется выделение на соответствующий элемент
  • При нажатии на Enter на папке происходит открытие данной папки и выделение первого элемента в ней
  • При нажатии на Backspace производится переход на уровень выше и выделение встает на папку, из которой был совершен переход.
управление с клавиатуры.gif




Пользовательский навигатор

Отображение доступных языков

Если в конфигурационном файле для пользовательского навигатора определены один или два языка, то их отображение не изменится, то есть языки будут расположены перечислением в одной строке.

2 языка.png



Если же языков 3 и более, они отображаются раскрывающимся списком.

комбик.png



Возможность открыть метаобъект

Если в форме c помощью действия OpenMetaObjectAction на кнопки настроено открытие метаобъектов, таких как форма или отчет, то открыть этот метаобъект можно через пользовательский навигатор.

открытие метаобъекта 3.gif



Файловое хранилище

Возможность хранения файлов репозитория в одном бакете S3

Сервис файлохранилища(FileStorage) теперь поддерживает возможность сохранять файлы разных приложений в одном бакете, но в разных папках. Для этого в конфигурационный файл добавлен признак, который по умолчанию выключен:

  1. UseOneBucket - Признак, что для хранения файлов по всем приложениям используется один бакет.
  2. BucketName - Наименование бакета, которое используется для хранения файлов по всем приложениям. Данный бакет будет использоваться только при включении признака UseOneBucket.

Данная возможность была реализована для переноса данных на Яндекс.Cloud. В Яндексе имя бакета(корзины) должно быть уникальным, соответственно возникала проблема, так как наименования бакетов совпадают с наименованием приложения.