Описание релизов/0.43.0: различия между версиями
(не показано 28 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
+ | {{DISPLAYTITLE:0.43 - Фердинанд Пóрше}} | ||
+ | [[Файл:Ferdinand Porsche1.jpg|300px|link=https://ru.wikipedia.org/wiki/Порше,_Фердинанд]] <br> | ||
+ | =Критичные изменения= | ||
+ | *Обновление версии Angular. '''Прикладным сервисам''', использующим библиотеки платформы, необходимо обновиться до Angular 13. | ||
− | + | <div class="NavFrame collapsed" style="width:700px;"> | |
− | = | + | <div class="NavHead"> Библиотеки, которые следует обновить </div> |
− | + | <div class="NavContent"> | |
"@angular/animations": "~13.1.3",<br> | "@angular/animations": "~13.1.3",<br> | ||
"@angular/cdk": "^13.1.3",<br> | "@angular/cdk": "^13.1.3",<br> | ||
Строка 28: | Строка 32: | ||
"ng-packagr": "^13.1.3",<br> | "ng-packagr": "^13.1.3",<br> | ||
"typescript": "~4.5.5"<br> | "typescript": "~4.5.5"<br> | ||
+ | </div></div> | ||
+ | <br> | ||
+ | *Не сохранена обратная совместимость между версиями клиентов и сервисов. При переходе на 43 релиз '''прикладным сервисам''' следует обновить клиенты до 43 версии. | ||
+ | <br> | ||
+ | *Отложенная загрузка справочников в формах: рекомендуем провести тестирование форм на корректность поведения. | ||
<br> | <br> | ||
− | * | + | *Удалены следующие свойства json в формах: |
+ | *#BinaryConditionWorkFlowStateIn<br> | ||
+ | *#EntryExpressionJsonQueryParameter<br> | ||
+ | *#DataIndicatorDataSource<br> | ||
+ | *#JsonDataSource<br> | ||
+ | *#MetaObjectDataSource<br> | ||
+ | *#UiDataMetaObject<br> | ||
+ | *#UiDataSourceDataIndicator<br> | ||
+ | *#UiDataSourceJson<br> | ||
<br> | <br> | ||
− | * | + | *При использовании внешних справочников с нецелочисленными идентификаторами возможна перекодировка численных идентификаторов при сохранении модели такого справочника. Если фильтрация настроена явно на идентификатор, то следует перепроверить значения после сохранения. |
<br> | <br> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
= Новая функциональность = | = Новая функциональность = | ||
Строка 57: | Строка 59: | ||
<div class="NavHead">Примеры</div> | <div class="NavHead">Примеры</div> | ||
<div class="NavContent"> | <div class="NavContent"> | ||
− | [https://study.3v-cloud.com/navigator/#/home?objectId= Отчёт с файлом(.pdf)] | + | [https://study.3v-cloud.com/navigator/#/home?objectId=1518 Отчёт с файлом(.pdf)] |
</div> | </div> | ||
</div> | </div> | ||
Строка 63: | Строка 65: | ||
=== Автоматическое добавление виртуального элемента в боковик === | === Автоматическое добавление виртуального элемента в боковик === | ||
− | Сейчас виртуальный элемент добавляется по умолчанию в сложные структуры боковика. Это сделано во избежание того, чтобы дочерние элементы не скрывались под родительскими. | + | Сейчас виртуальный элемент добавляется по умолчанию в сложные структуры боковика. Это сделано во избежание того, чтобы дочерние элементы не скрывались под родительскими. |
+ | |||
+ | <gallery mode="packed" margin=200px; heights=400px style="text-align:left;"> | ||
+ | Файл:автоматический виртуальный элемент.png|<div style="text-align:center">'''Иерархия с виртуальным элементом'''</div> | ||
+ | Файл:нет вир.элемент.png|<div style="text-align:center">'''Иерархия без виртуального элемента'''</div> | ||
+ | </gallery> | ||
+ | |||
+ | Данная настройка вынесена в конструктор отчётов. | ||
[[Файл:вирт.эл. по умолчанию.png|слева|750px|border]] <br clear="both" /><br> | [[Файл:вирт.эл. по умолчанию.png|слева|750px|border]] <br clear="both" /><br> | ||
Строка 69: | Строка 78: | ||
<div class="NavHead">Примеры</div> | <div class="NavHead">Примеры</div> | ||
<div class="NavContent"> | <div class="NavContent"> | ||
− | [https://study.3v-cloud.com/navigator/#/ | + | [https://study.3v-cloud.com/navigator/#/?viewId=1488 Отчёт с автоматическими виртуальными элементами] |
</div> | </div> | ||
</div> | </div> | ||
<br> | <br> | ||
− | + | ||
== Формы == | == Формы == | ||
=== Новый элемент. Вкладки(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> | ||
Строка 87: | Строка 96: | ||
<br> | <br> | ||
− | |||
=== Новый элемент. Контекстное меню(trv-dropdown) === | === Новый элемент. Контекстное меню(trv-dropdown) === | ||
Реализован новый элемент Контекстное меню. Контекстное меню - элемент, который представляет собой некоторое количество выпадающих кнопок. Для того, чтобы задать выпадающие элементы, следует внутри компонента добавить Пункты меню. Также существует возможность добавить разделитель, для визуального отделения пунктов меню друг от друга. | Реализован новый элемент Контекстное меню. Контекстное меню - элемент, который представляет собой некоторое количество выпадающих кнопок. Для того, чтобы задать выпадающие элементы, следует внутри компонента добавить Пункты меню. Также существует возможность добавить разделитель, для визуального отделения пунктов меню друг от друга. | ||
Строка 102: | Строка 110: | ||
=== "Автоматическая высота" для линейных диаграмм === | === "Автоматическая высота" для линейных диаграмм === | ||
Для диаграмм реализован флаг "Автоматическая высота", включение которого позволяет диаграмме отстраиваться самостоятельно без задания высоты. Отстраивается она по размеру и количеству баров. | Для диаграмм реализован флаг "Автоматическая высота", включение которого позволяет диаграмме отстраиваться самостоятельно без задания высоты. Отстраивается она по размеру и количеству баров. | ||
+ | [[Файл:автоматическая высота для л.диаграммы.png|слева|800px|border]]<br clear="both" /><br> | ||
<div class="NavFrame collapsed" style="width:700px; overflow:auto;"> | <div class="NavFrame collapsed" style="width:700px; overflow:auto;"> | ||
<div class="NavHead">Примеры</div> | <div class="NavHead">Примеры</div> | ||
<div class="NavContent"> | <div class="NavContent"> | ||
− | [https:// | + | [https://study.3v-cloud.com/navigator/#/home?objectId=1524 Форма с линейной диаграммой] |
</div> | </div> | ||
</div> | </div> | ||
Строка 111: | Строка 120: | ||
=== Операнд для расчета ячейки отчёта === | === Операнд для расчета ячейки отчёта === | ||
− | Добавлен операнд '''''EntryExpressionPivotSourceCellValueParameter''''' для | + | Добавлен операнд '''''EntryExpressionPivotSourceCellValueParameter''''' для расчёта ячейки отчёта, где<br> |
'''''pivotSourceId''''' - идентификатор отчета-источника данных, <br> | '''''pivotSourceId''''' - идентификатор отчета-источника данных, <br> | ||
'''''column''''' - номер столбца, <br> | '''''column''''' - номер столбца, <br> | ||
Строка 138: | Строка 147: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</div></div> | </div></div> | ||
− | + | <br> | |
<div class="NavFrame collapsed" style="width:700px; overflow:auto;"> | <div class="NavFrame collapsed" style="width:700px; overflow:auto;"> | ||
<div class="NavHead">Примеры</div> | <div class="NavHead">Примеры</div> | ||
Строка 148: | Строка 157: | ||
== Показатели == | == Показатели == | ||
+ | === Блокировка значений факта в выпадающем списке === | ||
+ | Добавлено свойство блокировки значений факта показателя с типом "Элемент справочника". | ||
+ | Для того, чтобы настроить данную функциональность следует в связанном справочнике, который используется в качестве факта с типом "элемент справочник" добавить столбец логического типа и настроить связь на этот атрибут в '''''canSelectAttribute''''' показателе. | ||
+ | |||
+ | <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> | ||
+ | { | ||
+ | ... | ||
+ | "indicatorDictionaries": [ | ||
+ | { | ||
+ | "mappings": [ | ||
+ | { | ||
+ | "elementId": 1, | ||
+ | "columnId": 3, | ||
+ | "dictionaryElementsOptions": { | ||
+ | "displayAttributeId": 2, | ||
+ | "canSelectAttribute": { | ||
+ | "discriminator": "OwnAttributeDefinitionDto", | ||
+ | "id": 20 | ||
+ | }, | ||
+ | "dictionaryId": 1527, | ||
+ | "hierarchyId": null, | ||
+ | "limit": null | ||
+ | } | ||
+ | } | ||
+ | ], | ||
+ | "discriminator": "DataIndicatorFactDictionaryDto", | ||
+ | "dictionaryId": 1529 | ||
+ | } | ||
+ | ], | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | |||
+ | [[Файл:canselect.png|слева|650px|border]] <br clear="both" /><br><br> | ||
− | |||
− | |||
− | |||
<div class="NavFrame collapsed" style="width:700px; overflow:auto;"> | <div class="NavFrame collapsed" style="width:700px; overflow:auto;"> | ||
<div class="NavHead">Примеры</div> | <div class="NavHead">Примеры</div> | ||
<div class="NavContent"> | <div class="NavContent"> | ||
− | [https:// | + | [https://study.3v-cloud.com/navigator/#/home?objectId=1558 Показатель с заблокированным элементом справочника] |
</div> | </div> | ||
</div> | </div> | ||
<br> | <br> | ||
− | === Новый внешний источник для получения данных по процессу | + | == Согласование == |
− | Для согласования добавлен источник '''''ProcessStateV2''''', который отличается набором полей. | + | === Переход к любому состоянию для роли админа === |
+ | Пользователь с ролью админ может перейти на любое состояние запущенного процесса. В конфигурационный файл добавлено свойство '''''ProcessAdminRole''''', в котором следует указать роль админа. | ||
+ | |||
+ | === Новый внешний источник для получения данных по процессу === | ||
+ | Для согласования добавлен источник '''''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> | + | Добавлены подстановки для '''''SubProcessNameTemplate'''''<br> |
− | '''''StateName''''' - наименование текущего состояния подпроцесса. | + | *'''''SubProcessName''''' - наименование подпроцесса из модели родительского процесса<br> |
+ | *'''''StateName''''' - наименование текущего состояния подпроцесса. | ||
− | <div class=" | + | ''Пример шаблона'' |
− | + | <nowiki>%SubProcessName% - %StateName%</nowiki> | |
− | + | ||
− | [ | + | ''Пример уведомления в письме:'' |
− | + | Запустить проведение анализа - Анализ завершён | |
− | </div> | + | |
+ | <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> | ||
+ | "subProcesses": [ | ||
+ | { | ||
+ | "workflowId": 1, | ||
+ | "name": "Запустить проведение анализа", | ||
+ | ... | ||
+ | "parameterMappings": [ | ||
+ | { | ||
+ | "parentProcessParameterId": 1, | ||
+ | "subProcessParameterId": 2 | ||
+ | } | ||
+ | ], | ||
+ | "subProcessNameTemplate": "%SubProcessName% - %StateName%" | ||
+ | } | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
<br> | <br> | ||
− | |||
== Навигатор == | == Навигатор == | ||
=== Доработка реестра согласования === | === Доработка реестра согласования === | ||
Строка 188: | Строка 267: | ||
=== Контекстное меню навигатора === | === Контекстное меню навигатора === | ||
− | Реализовано контекстное меню для левого дерева навигатора. | + | Реализовано контекстное меню для левого дерева навигатора. Контекстное меню позволяет: |
*Создать папку или объект в выделенной папке | *Создать папку или объект в выделенной папке | ||
*Свернуть или развернуть выделенную папку | *Свернуть или развернуть выделенную папку | ||
Строка 195: | Строка 274: | ||
*Вырезать выделенную папку | *Вырезать выделенную папку | ||
*Вставить в выделенную папку объекты в буфере обмена | *Вставить в выделенную папку объекты в буфере обмена | ||
− | * | + | *Переименовать |
*Открыть панель прав доступа | *Открыть панель прав доступа | ||
*Открыть панель свойств папки | *Открыть панель свойств папки | ||
Строка 207: | Строка 286: | ||
== Пользовательский навигатор == | == Пользовательский навигатор == | ||
− | === Индикатор уведомлений | + | === Индикатор уведомлений === |
− | Реализован индикатор уведомлений, который .... Для того, чтобы настроить | + | Реализован индикатор уведомлений, который показывает наличие уведомлений на пунктах меню пользовательского навигатора. <br> |
− | MENU_ITEM_NOTIFICATION_BOOL_CSS - Оформление уведомления элемента меню (для флага, | + | Для того, чтобы настроить уведомление в "Меню пользовательского навигатора" следует задать запрос, к методу, который возвращает целочисленное или логическое значение. [[Платформа_3V/Пользовательский_навигатор/Меню_навигатора(описание_справочника)#Настроить уведомления|Подробнее...]] |
− | MENU_ITEM_NOTIFICATION_CSS - Оформление уведомления элемента меню | + | |
+ | Для того, чтобы настроить дизайн уведомления в меню пользовательского навигатора нужно задать следующие настройки:<br> | ||
+ | '''''MENU_ITEM_NOTIFICATION_BOOL_CSS''''' - Оформление уведомления элемента меню в формате CSS(для флага),<br> | ||
+ | '''''MENU_ITEM_NOTIFICATION_CSS''''' - Оформление уведомления элемента меню в формате CSS(для числа). | ||
+ | [[Платформа 3V/Пользовательский навигатор/Настройка дизайна#Оформить_уведомления|Подробнее...]] | ||
[[Файл:Уведомления.png|слева|750px|border]] <br clear="both" /><br> | [[Файл:Уведомления.png|слева|750px|border]] <br clear="both" /><br> | ||
<div class="NavFrame collapsed" style="width:700px; overflow:auto;"> | <div class="NavFrame collapsed" style="width:700px; overflow:auto;"> | ||
<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> | ||
Строка 263: | Строка 346: | ||
|} | |} | ||
− | По умолчанию аудируются только изменения метаобъектов и структуры согласований. | + | По умолчанию аудируются только изменения метаобъектов и структуры согласований: |
+ | * Если в конфигурационном файле развертываемого приложения определен параметр "Level": "Default", то в аудит перестанут писаться изменения элементов справочника; при определении "Level": "Detailed" будет писаться все, как и раньше. | ||
+ | * Если в конфигурационном файле развертываемого приложения нет упоминания аудита, то начиная с 43 версии фиксируются минимальные изменения, связанные с редактированием метаданных | ||
== Общее == | == Общее == | ||
Строка 276: | Строка 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 }
Конструкторы
Конструктор справочников
Настройка локализованных названий
Реализована возможность задания локализованных наименований и значений атрибутов через конструктор.
Конструктор форм
Полная локализация конструктора форм
Реализована локализация левой и правой панели настройки для всех элементов форм.