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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
(не показано 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/Формы/Компоненты/Верстка/Вкладки|Подробнее...]]
+
Реализован новый элемент Вкладки. Для вкладок появилась возможность располагать компонент горизонтально и вертикально. В названии вкладки можно задать отступы и иконку из [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''''' для рассчёта ячейки отчёта, где<br>
+
Добавлен операнд  '''''EntryExpressionPivotSourceCellValueParameter''''' для расчёта ячейки отчёта, где<br>
 
'''''pivotSourceId''''' - идентификатор отчета-источника данных, <br>
 
'''''pivotSourceId''''' - идентификатор отчета-источника данных, <br>
 
'''''column''''' - номер столбца, <br>
 
'''''column''''' - номер столбца, <br>
Строка 158: Строка 157:
  
 
== Показатели ==
 
== Показатели ==
=== Название функциональности ===
+
=== Блокировка значений факта в выпадающем списке ===
 
Добавлено свойство блокировки значений факта показателя с типом "Элемент справочника".
 
Добавлено свойство блокировки значений факта показателя с типом "Элемент справочника".
Для того, чтобы настроить данную функциональность следует в справочнике, который является "элементом справочника" добавить столбец логического типа и настроить связь в '''''canSelectAttribute''''' показателе.
+
Для того, чтобы настроить данную функциональность следует в связанном справочнике, который используется в качестве факта с типом "элемент справочник" добавить столбец логического типа и настроить связь на этот атрибут в '''''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''''', в котором следует указать роль админа.
<div class="NavFrame collapsed" style="width:700px; overflow:auto;">
 
  <div class="NavHead">Примеры</div>
 
  <div class="NavContent">
 
[https://3v.3v-group.net/navigator/#/home?objectId=165120 (дэв) - Согласование]
 
  </div>
 
</div>
 
<br>
 
  
 
=== Новый внешний источник для получения данных по процессу ===
 
=== Новый внешний источник для получения данных по процессу ===
Для согласования добавлен источник '''''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''''' - наименование текущего состояния подпроцесса.
  
Добавлены подстановки для SubProcessNameTemplate<br>
+
''Пример шаблона''  
'''''SubProcessName''''' - наименование подпроцесса из модели родительского процесса<br>
+
  <nowiki>%SubProcessName% - %StateName%</nowiki>
'''''StateName''''' - наименование текущего состояния подпроцесса.
 
  
<div class="NavFrame collapsed" style="width:700px; overflow:auto;">
+
''Пример уведомления в письме:''
  <div class="NavHead">Примеры</div>
+
Запустить проведение анализа - Анализ завершён
  <div class="NavContent">
+
 
[https://3v.3v-group.net/navigator/#/home?objectId=172487 (дэв) - Согласование]
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;">
  </div>  
+
<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

Ferdinand Porsche1.jpg

Содержание

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

  • Обновление версии Angular. Прикладным сервисам, использующим библиотеки платформы, необходимо обновиться до Angular 13.


  • Не сохранена обратная совместимость между версиями клиентов и сервисов. При переходе на 43 релиз прикладным сервисам следует обновить клиенты до 43 версии.


  • Отложенная загрузка справочников в формах: рекомендуем провести тестирование форм на корректность поведения.


  • Удалены следующие свойства json в формах:
    1. BinaryConditionWorkFlowStateIn
    2. EntryExpressionJsonQueryParameter
    3. DataIndicatorDataSource
    4. JsonDataSource
    5. MetaObjectDataSource
    6. UiDataMetaObject
    7. UiDataSourceDataIndicator
    8. UiDataSourceJson


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


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

Отчёты

Предпросмотр документа

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

предпросмотр.gif




Автоматическое добавление виртуального элемента в боковик

Сейчас виртуальный элемент добавляется по умолчанию в сложные структуры боковика. Это сделано во избежание того, чтобы дочерние элементы не скрывались под родительскими.

Данная настройка вынесена в конструктор отчётов.

вирт.эл. по умолчанию.png




Формы

Новый элемент. Вкладки(trv-tabset и trv-tab)

Реализован новый элемент Вкладки. Для вкладок появилась возможность располагать компонент горизонтально и вертикально. В названии вкладки можно задать отступы и иконку из Material Icons. Подробнее.... А также реализована настройка заголовков, правил и прочего через конструктор.

вкладка1.png




Новый элемент. Контекстное меню(trv-dropdown)

Реализован новый элемент Контекстное меню. Контекстное меню - элемент, который представляет собой некоторое количество выпадающих кнопок. Для того, чтобы задать выпадающие элементы, следует внутри компонента добавить Пункты меню. Также существует возможность добавить разделитель, для визуального отделения пунктов меню друг от друга.

к.меню.png




"Автоматическая высота" для линейных диаграмм

Для диаграмм реализован флаг "Автоматическая высота", включение которого позволяет диаграмме отстраиваться самостоятельно без задания высоты. Отстраивается она по размеру и количеству баров.

автоматическая высота для л.диаграммы.png




Операнд для расчета ячейки отчёта

Добавлен операнд EntryExpressionPivotSourceCellValueParameter для расчёта ячейки отчёта, где
pivotSourceId - идентификатор отчета-источника данных,
column - номер столбца,
row - номер строки.
Важно!!! Индексы строк и столбцов начинается с 0

JSON
 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 показателе.

JSON
 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 }


canselect.png





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

Переход к любому состоянию для роли админа

Пользователь с ролью админ может перейти на любое состояние запущенного процесса. В конфигурационный файл добавлено свойство ProcessAdminRole, в котором следует указать роль админа.

Новый внешний источник для получения данных по процессу

Для согласования добавлен источник ProcessStateV2, который отличается набором полей.
Изменены названия:

  • StateId-->Id - Идентификатор процесса. Также изменён тип данных на строковый.
  • ParentStateId-->ParentId - Идентификатор родительского процесса
  • StateName-->Name - Наименование состояния процесса или подпроцесса

Добавлено:

  • EntryId - Идентификатор состояния процесса или подроцесса

Все дальнейшие доработки будут внесены в ProcessStateV2. ProcessState остаётся как устаревший источник.

Новые подстановки в название подпроцесса

Добавлены подстановки для SubProcessNameTemplate

  • SubProcessName - наименование подпроцесса из модели родительского процесса
  • StateName - наименование текущего состояния подпроцесса.

Пример шаблона

 %SubProcessName% - %StateName%

Пример уведомления в письме:

Запустить проведение анализа - Анализ завершён
JSON
 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           ]


Навигатор

Доработка реестра согласования

Доработан реестр согласования:

  • Убраны кнопки "Остановить" и "Перезапустить",
  • Добавлена кнопка удаления экземпляра процесса согласования,
  • Добавлена кнопка "Обновить" с пунктами:
    • "Обновить реестр" - полностью обновляет реестр процессов.
    • "Обновить шаблон" - обновляет шаблон экземпляра процесса в соответствии с основной модельною объекта согласования.
    • "Обновить данные по субъектам" - обновляет кэш субъектов экземпляра процесса.
реестр.png



Контекстное меню навигатора

Реализовано контекстное меню для левого дерева навигатора. Контекстное меню позволяет:

  • Создать папку или объект в выделенной папке
  • Свернуть или развернуть выделенную папку
  • Добавить в обновлению папку и всё её содержимое
  • Копировать ссылку на папку или её идентификатор
  • Вырезать выделенную папку
  • Вставить в выделенную папку объекты в буфере обмена
  • Переименовать
  • Открыть панель прав доступа
  • Открыть панель свойств папки
  • Удалить папку
контекстное меню навигатора.gif



Переключение локализации до авторизации на стенде

Теперь выбор локализации для работы с платформой можно произвести до авторизации.

локализация из кк.gif



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

Индикатор уведомлений

Реализован индикатор уведомлений, который показывает наличие уведомлений на пунктах меню пользовательского навигатора.
Для того, чтобы настроить уведомление в "Меню пользовательского навигатора" следует задать запрос, к методу, который возвращает целочисленное или логическое значение. Подробнее...

Для того, чтобы настроить дизайн уведомления в меню пользовательского навигатора нужно задать следующие настройки:
MENU_ITEM_NOTIFICATION_BOOL_CSS - Оформление уведомления элемента меню в формате CSS(для флага),
MENU_ITEM_NOTIFICATION_CSS - Оформление уведомления элемента меню в формате CSS(для числа). Подробнее...

Уведомления.png




Аудит

Гранулярный аудит

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

JSON
 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"

JSON
 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 }

Конструкторы

Конструктор справочников

Настройка локализованных названий

Реализована возможность задания локализованных наименований и значений атрибутов через конструктор.

локализация в КС.gif



Конструктор форм

Полная локализация конструктора форм

Реализована локализация левой и правой панели настройки для всех элементов форм.

Локализация КФ.png