Описание релизов/0.43.0: различия между версиями
(не показано 12 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
− | + | {{DISPLAYTITLE:0.43 - Фердинанд Пóрше}} | |
− | + | [[Файл:Ferdinand Porsche1.jpg|300px|link=https://ru.wikipedia.org/wiki/Порше,_Фердинанд]] <br> | |
=Критичные изменения= | =Критичные изменения= | ||
*Обновление версии Angular. '''Прикладным сервисам''', использующим библиотеки платформы, необходимо обновиться до Angular 13. | *Обновление версии Angular. '''Прикладным сервисам''', использующим библиотеки платформы, необходимо обновиться до Angular 13. | ||
Строка 72: | Строка 72: | ||
</gallery> | </gallery> | ||
− | Данная настройка вынесена в | + | Данная настройка вынесена в конструктор отчётов. |
[[Файл:вирт.эл. по умолчанию.png|слева|750px|border]] <br clear="both" /><br> | [[Файл:вирт.эл. по умолчанию.png|слева|750px|border]] <br clear="both" /><br> | ||
Строка 85: | Строка 85: | ||
== Формы == | == Формы == | ||
=== Новый элемент. Вкладки(trv-tabset и trv-tab) === | === Новый элемент. Вкладки(trv-tabset и trv-tab) === | ||
− | Реализован новый элемент Вкладки. Для вкладок появилась возможность | + | Реализован новый элемент Вкладки. Для вкладок появилась возможность располагать компонент горизонтально и вертикально. В названии вкладки можно задать отступы и иконку из [https://fonts.google.com/icons?selected=Material+Icons Material Icons]. [[Платформа_3V/Формы/Компоненты/Верстка/Вкладки|Подробнее...]]. А также реализована настройка заголовков, правил и прочего через конструктор. |
[[Файл:вкладка1.png|слева|border]] <br clear="both" /><br> | [[Файл:вкладка1.png|слева|border]] <br clear="both" /><br> | ||
Строка 96: | Строка 96: | ||
<br> | <br> | ||
− | |||
=== Новый элемент. Контекстное меню(trv-dropdown) === | === Новый элемент. Контекстное меню(trv-dropdown) === | ||
Реализован новый элемент Контекстное меню. Контекстное меню - элемент, который представляет собой некоторое количество выпадающих кнопок. Для того, чтобы задать выпадающие элементы, следует внутри компонента добавить Пункты меню. Также существует возможность добавить разделитель, для визуального отделения пунктов меню друг от друга. | Реализован новый элемент Контекстное меню. Контекстное меню - элемент, который представляет собой некоторое количество выпадающих кнопок. Для того, чтобы задать выпадающие элементы, следует внутри компонента добавить Пункты меню. Также существует возможность добавить разделитель, для визуального отделения пунктов меню друг от друга. | ||
Строка 121: | Строка 120: | ||
=== Операнд для расчета ячейки отчёта === | === Операнд для расчета ячейки отчёта === | ||
− | Добавлен операнд '''''EntryExpressionPivotSourceCellValueParameter''''' для | + | Добавлен операнд '''''EntryExpressionPivotSourceCellValueParameter''''' для расчёта ячейки отчёта, где<br> |
'''''pivotSourceId''''' - идентификатор отчета-источника данных, <br> | '''''pivotSourceId''''' - идентификатор отчета-источника данных, <br> | ||
'''''column''''' - номер столбца, <br> | '''''column''''' - номер столбца, <br> | ||
Строка 158: | Строка 157: | ||
== Показатели == | == Показатели == | ||
− | === | + | === Блокировка значений факта в выпадающем списке === |
Добавлено свойство блокировки значений факта показателя с типом "Элемент справочника". | Добавлено свойство блокировки значений факта показателя с типом "Элемент справочника". | ||
− | Для того, чтобы настроить данную функциональность следует в справочнике, который | + | Для того, чтобы настроить данную функциональность следует в связанном справочнике, который используется в качестве факта с типом "элемент справочник" добавить столбец логического типа и настроить связь на этот атрибут в '''''canSelectAttribute''''' показателе. |
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;"> | ||
Строка 207: | Строка 206: | ||
== Согласование == | == Согласование == | ||
=== Переход к любому состоянию для роли админа === | === Переход к любому состоянию для роли админа === | ||
− | Пользователь с ролью админ может перейти на любое состояние запущенного процесса. В конфигурационный файл добавлено свойство '''''ProcessAdminRole''''', в котором следует указать роль админа. | + | Пользователь с ролью админ может перейти на любое состояние запущенного процесса. В конфигурационный файл добавлено свойство '''''ProcessAdminRole''''', в котором следует указать роль админа. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Новый внешний источник для получения данных по процессу === | === Новый внешний источник для получения данных по процессу === | ||
− | Для согласования добавлен источник '''''ProcessStateV2''''', который отличается набором полей. | + | Для согласования добавлен источник '''''ProcessStateV2''''', который отличается набором полей.<br> |
+ | Изменены названия: | ||
+ | *'''''StateId'''''-->'''''Id ''''' - Идентификатор процесса. Также изменён тип данных на строковый. | ||
+ | *'''''ParentStateId'''''-->'''''ParentId ''''' - Идентификатор родительского процесса | ||
+ | *'''''StateName'''''-->'''''Name ''''' - Наименование состояния процесса или подпроцесса | ||
+ | Добавлено: | ||
+ | *'''''EntryId''''' - Идентификатор состояния процесса или подроцесса | ||
+ | Все дальнейшие доработки будут внесены в '''''ProcessStateV2'''''. '''''ProcessState''''' остаётся как устаревший источник. | ||
+ | <gallery mode="packed" margin=200px; heights=130px style="text-align:left;"> | ||
+ | Файл:согласование v1.png|<div style="text-align:center">'''ProcessState'''</div> | ||
+ | Файл:согласование v2.png|<div style="text-align:center">'''ProcessStateV2'''</div> | ||
+ | </gallery> | ||
+ | |||
+ | === Новые подстановки в название подпроцесса === | ||
+ | Добавлены подстановки для '''''SubProcessNameTemplate'''''<br> | ||
+ | *'''''SubProcessName''''' - наименование подпроцесса из модели родительского процесса<br> | ||
+ | *'''''StateName''''' - наименование текущего состояния подпроцесса. | ||
− | + | ''Пример шаблона'' | |
− | + | <nowiki>%SubProcessName% - %StateName%</nowiki> | |
− | |||
− | <div class=" | + | ''Пример уведомления в письме:'' |
− | + | Запустить проведение анализа - Анализ завершён | |
− | + | ||
− | [ | + | <div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;"> |
− | + | <div style="font-weight:bold;line-height:1.6;">JSON</div> | |
− | </div> | + | <div class="mw-collapsible-content mw-collapsed-content"> |
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "subProcesses": [ | ||
+ | { | ||
+ | "workflowId": 1, | ||
+ | "name": "Запустить проведение анализа", | ||
+ | ... | ||
+ | "parameterMappings": [ | ||
+ | { | ||
+ | "parentProcessParameterId": 1, | ||
+ | "subProcessParameterId": 2 | ||
+ | } | ||
+ | ], | ||
+ | "subProcessNameTemplate": "%SubProcessName% - %StateName%" | ||
+ | } | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
<br> | <br> | ||
Строка 274: | Строка 298: | ||
<div class="NavHead">Примеры</div> | <div class="NavHead">Примеры</div> | ||
<div class="NavContent"> | <div class="NavContent"> | ||
− | [https://study.3v-cloud.com/navigator/#/home?objectId=912 | + | [https://study.3v-cloud.com/navigator/#/home?objectId=912 Меню пользовательского навигатора] |
</div> | </div> | ||
</div> | </div> | ||
Строка 322: | Строка 346: | ||
|} | |} | ||
− | По умолчанию аудируются только изменения метаобъектов и структуры согласований. | + | По умолчанию аудируются только изменения метаобъектов и структуры согласований: |
+ | * Если в конфигурационном файле развертываемого приложения определен параметр "Level": "Default", то в аудит перестанут писаться изменения элементов справочника; при определении "Level": "Detailed" будет писаться все, как и раньше. | ||
+ | * Если в конфигурационном файле развертываемого приложения нет упоминания аудита, то начиная с 43 версии фиксируются минимальные изменения, связанные с редактированием метаданных | ||
== Общее == | == Общее == | ||
Строка 335: | Строка 361: | ||
*'''CurrentLocale()''' - вычисляет текущую локаль. | *'''CurrentLocale()''' - вычисляет текущую локаль. | ||
Подробнее об их использовании и настройке можно прочитать [[Платформа_3V/Выражение/Расчет_выражений|здесь]]. | Подробнее об их использовании и настройке можно прочитать [[Платформа_3V/Выражение/Расчет_выражений|здесь]]. | ||
+ | |||
+ | '''Отчеты:''' Новый операнд (PredefinedPivotOperandDto), позволяющий вычислить в отчетах уникальный GUID (инстанс) '''текущего открытого''' отчета ("value": "PivotInstanceId") и идентификатор текущего отчета "value": "PivotId" | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "expression": "[1]", | ||
+ | "operands": [ | ||
+ | { | ||
+ | "value": "PivotId", | ||
+ | "discriminator": "PredefinedPivotOperandDto", | ||
+ | "code": null, | ||
+ | "id": 1, | ||
+ | "name": null | ||
+ | } | ||
+ | ], | ||
+ | "id": 1, | ||
+ | "name": "Выражение", | ||
+ | "code": null | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | '''Формы:''' Новый операнд (EntryExpressionPredefinedParameter) в выражениях, позволяющий вычислить в формах уникальный GUID (инстанс) '''текущей открытой''' формы ("value": "CardInstanceId") и идентификатор текущей формы "value": "CardModelId" | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "expression": "[1]", | ||
+ | "operands": [ | ||
+ | { | ||
+ | "value": "CardInstanceId", | ||
+ | "discriminator": "EntryExpressionPredefinedParameter", | ||
+ | "id": 1, | ||
+ | "allowMultipleValues": false | ||
+ | } | ||
+ | ], | ||
+ | "id": 1, | ||
+ | "name": "Идентификатор инстанса карточки", | ||
+ | "code": null | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
= Конструкторы = | = Конструкторы = | ||
== Конструктор справочников == | == Конструктор справочников == | ||
=== Настройка локализованных названий === | === Настройка локализованных названий === | ||
− | + | Реализована возможность задания локализованных наименований и значений атрибутов через конструктор. | |
[[Файл:локализация в КС.gif|слева|border]] <br clear="both" /><br> | [[Файл:локализация в КС.gif|слева|border]] <br clear="both" /><br> | ||
Текущая версия на 07:54, 1 марта 2022
Содержание
Критичные изменения
- Обновление версии Angular. Прикладным сервисам, использующим библиотеки платформы, необходимо обновиться до Angular 13.
"@angular/animations": "~13.1.3",
"@angular/cdk": "^13.1.3",
"@angular/cdk-experimental": "^13.1.3",
"@angular/common": "~13.1.3",
"@angular/compiler": "~13.1.3",
"@angular/core": "~13.1.3",
"@angular/forms": "~13.1.3",
"@angular/platform-browser": "~13.1.3",
"@angular/platform-browser-dynamic": "~13.1.3",
"@angular/router": "~13.1.3",
а также версии других библиотек:
"@ag-grid-community/angular": "^26.2.0",
"@ag-grid-enterprise/all-modules": "^26.2.1",
"tslib": "^2.3.1",
"zone.js": "~0.11.4"
--devDependencies--
"@angular-devkit/build-angular": "~13.1.4",
"@angular/cli": "~13.1.4",
"@angular/compiler-cli": "~13.1.3",
"@types/jasmine": "~3.6.0",
"karma": "~6.3.11",
"ng-packagr": "^13.1.3",
"typescript": "~4.5.5"
- Не сохранена обратная совместимость между версиями клиентов и сервисов. При переходе на 43 релиз прикладным сервисам следует обновить клиенты до 43 версии.
- Отложенная загрузка справочников в формах: рекомендуем провести тестирование форм на корректность поведения.
- Удалены следующие свойства json в формах:
- BinaryConditionWorkFlowStateIn
- EntryExpressionJsonQueryParameter
- DataIndicatorDataSource
- JsonDataSource
- MetaObjectDataSource
- UiDataMetaObject
- UiDataSourceDataIndicator
- UiDataSourceJson
- BinaryConditionWorkFlowStateIn
- При использовании внешних справочников с нецелочисленными идентификаторами возможна перекодировка численных идентификаторов при сохранении модели такого справочника. Если фильтрация настроена явно на идентификатор, то следует перепроверить значения после сохранения.
Новая функциональность
Отчёты
Предпросмотр документа
Добавлена функциональность предпросмотра документов типа .pdf. Для того, чтобы открылся предпросмотр следует нажать иконку в ячейке отчёта. Функциональность реализована и в пользовательском навигаторе.
Автоматическое добавление виртуального элемента в боковик
Сейчас виртуальный элемент добавляется по умолчанию в сложные структуры боковика. Это сделано во избежание того, чтобы дочерние элементы не скрывались под родительскими.
Данная настройка вынесена в конструктор отчётов.
Формы
Новый элемент. Вкладки(trv-tabset и trv-tab)
Реализован новый элемент Вкладки. Для вкладок появилась возможность располагать компонент горизонтально и вертикально. В названии вкладки можно задать отступы и иконку из Material Icons. Подробнее.... А также реализована настройка заголовков, правил и прочего через конструктор.
Новый элемент. Контекстное меню(trv-dropdown)
Реализован новый элемент Контекстное меню. Контекстное меню - элемент, который представляет собой некоторое количество выпадающих кнопок. Для того, чтобы задать выпадающие элементы, следует внутри компонента добавить Пункты меню. Также существует возможность добавить разделитель, для визуального отделения пунктов меню друг от друга.
"Автоматическая высота" для линейных диаграмм
Для диаграмм реализован флаг "Автоматическая высота", включение которого позволяет диаграмме отстраиваться самостоятельно без задания высоты. Отстраивается она по размеру и количеству баров.
Операнд для расчета ячейки отчёта
Добавлен операнд EntryExpressionPivotSourceCellValueParameter для расчёта ячейки отчёта, где
pivotSourceId - идентификатор отчета-источника данных,
column - номер столбца,
row - номер строки.
Важно!!! Индексы строк и столбцов начинается с 0
1 {
2 "expression": "[1]",
3 "operands": [
4 {
5 "pivotSourceId": 1,
6 "column": 0,
7 "row": 2,
8 "discriminator": "EntryExpressionPivotSourceCellValueParameter",
9 "id": 1,
10 "allowMultipleValues": false
11 }
12 ],
13 "id": 1,
14 "name": "Выражение",
15 "code": null
16 }
Показатели
Блокировка значений факта в выпадающем списке
Добавлено свойство блокировки значений факта показателя с типом "Элемент справочника". Для того, чтобы настроить данную функциональность следует в связанном справочнике, который используется в качестве факта с типом "элемент справочник" добавить столбец логического типа и настроить связь на этот атрибут в canSelectAttribute показателе.
1 {
2 ...
3 "indicatorDictionaries": [
4 {
5 "mappings": [
6 {
7 "elementId": 1,
8 "columnId": 3,
9 "dictionaryElementsOptions": {
10 "displayAttributeId": 2,
11 "canSelectAttribute": {
12 "discriminator": "OwnAttributeDefinitionDto",
13 "id": 20
14 },
15 "dictionaryId": 1527,
16 "hierarchyId": null,
17 "limit": null
18 }
19 }
20 ],
21 "discriminator": "DataIndicatorFactDictionaryDto",
22 "dictionaryId": 1529
23 }
24 ],
25 }
Согласование
Переход к любому состоянию для роли админа
Пользователь с ролью админ может перейти на любое состояние запущенного процесса. В конфигурационный файл добавлено свойство ProcessAdminRole, в котором следует указать роль админа.
Новый внешний источник для получения данных по процессу
Для согласования добавлен источник ProcessStateV2, который отличается набором полей.
Изменены названия:
- StateId-->Id - Идентификатор процесса. Также изменён тип данных на строковый.
- ParentStateId-->ParentId - Идентификатор родительского процесса
- StateName-->Name - Наименование состояния процесса или подпроцесса
Добавлено:
- EntryId - Идентификатор состояния процесса или подроцесса
Все дальнейшие доработки будут внесены в ProcessStateV2. ProcessState остаётся как устаревший источник.
Новые подстановки в название подпроцесса
Добавлены подстановки для SubProcessNameTemplate
- SubProcessName - наименование подпроцесса из модели родительского процесса
- StateName - наименование текущего состояния подпроцесса.
Пример шаблона
%SubProcessName% - %StateName%
Пример уведомления в письме:
Запустить проведение анализа - Анализ завершён
1 "subProcesses": [
2 {
3 "workflowId": 1,
4 "name": "Запустить проведение анализа",
5 ...
6 "parameterMappings": [
7 {
8 "parentProcessParameterId": 1,
9 "subProcessParameterId": 2
10 }
11 ],
12 "subProcessNameTemplate": "%SubProcessName% - %StateName%"
13 }
14 ]
Навигатор
Доработка реестра согласования
Доработан реестр согласования:
- Убраны кнопки "Остановить" и "Перезапустить",
- Добавлена кнопка удаления экземпляра процесса согласования,
- Добавлена кнопка "Обновить" с пунктами:
- "Обновить реестр" - полностью обновляет реестр процессов.
- "Обновить шаблон" - обновляет шаблон экземпляра процесса в соответствии с основной модельною объекта согласования.
- "Обновить данные по субъектам" - обновляет кэш субъектов экземпляра процесса.
Контекстное меню навигатора
Реализовано контекстное меню для левого дерева навигатора. Контекстное меню позволяет:
- Создать папку или объект в выделенной папке
- Свернуть или развернуть выделенную папку
- Добавить в обновлению папку и всё её содержимое
- Копировать ссылку на папку или её идентификатор
- Вырезать выделенную папку
- Вставить в выделенную папку объекты в буфере обмена
- Переименовать
- Открыть панель прав доступа
- Открыть панель свойств папки
- Удалить папку
Переключение локализации до авторизации на стенде
Теперь выбор локализации для работы с платформой можно произвести до авторизации.
Пользовательский навигатор
Индикатор уведомлений
Реализован индикатор уведомлений, который показывает наличие уведомлений на пунктах меню пользовательского навигатора.
Для того, чтобы настроить уведомление в "Меню пользовательского навигатора" следует задать запрос, к методу, который возвращает целочисленное или логическое значение. Подробнее...
Для того, чтобы настроить дизайн уведомления в меню пользовательского навигатора нужно задать следующие настройки:
MENU_ITEM_NOTIFICATION_BOOL_CSS - Оформление уведомления элемента меню в формате CSS(для флага),
MENU_ITEM_NOTIFICATION_CSS - Оформление уведомления элемента меню в формате CSS(для числа).
Подробнее...
Аудит
Гранулярный аудит
Реализована возможность более гибко настраивать аудирование системы с помощью задания действий, которые нужно записывать. В конфигах в секции AuditSettings добавлено два новых параметра:
Enabled - логическое значение, определяющее, включен ли аудит,
Actions - массив элементов, задающий аудируемые действия.
Элемент массива Actions | Описание записываемых действий |
---|---|
None | Действия не записываются в аудит |
MetaObjectChanges | Изменение метаобъекта |
DictionaryDataSaved | Сохранение данных справочника |
DictionaryElementChanges | Изменение элемента справочника |
IndicatorDataSaved | Сохранение данных показателя |
IndicatorDataChanges | Изменение данных показателя |
CalculationExecutions | Расчёт методики |
PivotOpenings | Открытие отчёта |
DbStructureChanges | Изменение структуры базы данных |
UserOperations | Пользовательские операции |
SchedulerTaskExecutions | Выполнение запланированной задачи |
WorkflowStateChanges | Изменение состояния согласования |
WorkflowProcessesChanges | Изменение согласования |
All | Все действия |
DictionaryDataSaved | Сохранены данные справочника |
IndicatorDataSaved | Сохранены данные показателя |
По умолчанию аудируются только изменения метаобъектов и структуры согласований:
- Если в конфигурационном файле развертываемого приложения определен параметр "Level": "Default", то в аудит перестанут писаться изменения элементов справочника; при определении "Level": "Detailed" будет писаться все, как и раньше.
- Если в конфигурационном файле развертываемого приложения нет упоминания аудита, то начиная с 43 версии фиксируются минимальные изменения, связанные с редактированием метаданных
Общее
Новые функции
Добавлены новые функции в NCalc:
- Median() - вычисляет медиану набора чисел,
- AddMinutes() - добавление минут к дате,
- AddHours() - добавляет часы к дате,
- AddDays() - добавляет дни к дате,
- AddMonths() - добавляет месяцы к дате,
- AddYears() - добавляет годы к дате.
- CurrentLocale() - вычисляет текущую локаль.
Подробнее об их использовании и настройке можно прочитать здесь.
Отчеты: Новый операнд (PredefinedPivotOperandDto), позволяющий вычислить в отчетах уникальный GUID (инстанс) текущего открытого отчета ("value": "PivotInstanceId") и идентификатор текущего отчета "value": "PivotId"
1 {
2 "expression": "[1]",
3 "operands": [
4 {
5 "value": "PivotId",
6 "discriminator": "PredefinedPivotOperandDto",
7 "code": null,
8 "id": 1,
9 "name": null
10 }
11 ],
12 "id": 1,
13 "name": "Выражение",
14 "code": null
15 }
Формы: Новый операнд (EntryExpressionPredefinedParameter) в выражениях, позволяющий вычислить в формах уникальный GUID (инстанс) текущей открытой формы ("value": "CardInstanceId") и идентификатор текущей формы "value": "CardModelId"
1 {
2 "expression": "[1]",
3 "operands": [
4 {
5 "value": "CardInstanceId",
6 "discriminator": "EntryExpressionPredefinedParameter",
7 "id": 1,
8 "allowMultipleValues": false
9 }
10 ],
11 "id": 1,
12 "name": "Идентификатор инстанса карточки",
13 "code": null
14 }
Конструкторы
Конструктор справочников
Настройка локализованных названий
Реализована возможность задания локализованных наименований и значений атрибутов через конструктор.
Конструктор форм
Полная локализация конструктора форм
Реализована локализация левой и правой панели настройки для всех элементов форм.