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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
(не показано 6 промежуточных версий этого же участника)
Строка 2: Строка 2:
 
[[Файл:licensed-image.jpg|300px|link=https://ru.wikipedia.org/wiki/Уоллес,_Уильям]] <br>
 
[[Файл:licensed-image.jpg|300px|link=https://ru.wikipedia.org/wiki/Уоллес,_Уильям]] <br>
 
=Критичные изменения=
 
=Критичные изменения=
*В конфигурационных файлах в '''''CommentSettings''''' свойства '''''TitleTemplate''''' и '''''BodyTemplate''''' сейчас находятся внутри элементов в коллекции '''''Rules'''''. В правилах теперь задаются не идентификаторы('''''Id'''''), а коды справочников ('''''Code''''')
+
*В конфигурационных файлах сервиса комментирования в '''''CommentSettings''''' свойства '''''TitleTemplate''''' и '''''BodyTemplate''''' сейчас находятся внутри элементов в коллекции '''''Rules'''''. В правилах ('''''Rules''''') теперь задаются не идентификаторы('''''Id'''''), а коды справочников ('''''Code''''')
 +
 
 +
<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>
 +
{
 +
  "PathBase": "/commentsprocessor",
 +
  "CommentSettings": {
 +
    "Rules": [
 +
      {
 +
        "Action": "SendToEmail",
 +
        "Dictionary": {
 +
          "Code": "DICT_COMMENTS_WITH_FILE_ATTR",
 +
          "AttributeLoginsId": 26,
 +
          "AttributeEmailsId": 30,
 +
          "Attributes": {
 +
            "Text": 2,
 +
            "ThisIsAbsentAttr": 999
 +
          }
 +
        },
 +
        "TitleTemplate": "Заголовок",
 +
        "BodyTemplate": "\"${Text}\""
 +
      }     
 +
    ]
 +
  },
 +
  "KafkaReaderSettings": {
 +
    ...
 +
  },
 +
  "KafkaWriterSettings": {
 +
    ...
 +
  }
 +
}
 +
</syntaxhighlight>
 +
</div></div>
  
 
= Новая функциональность =  
 
= Новая функциональность =  
 
== Справочники ==
 
== Справочники ==
=== История справочников. Права на элементы ===
+
=== История изменения элементов. Права на элементы ===
Добавлена проверка на прав на элемент при получении его истории. Теперь если у пользователя нет прав на элемент, то соответственно его историю он получить не сможет.  
+
Добавлена проверка прав на чтение элементов при получении их истории. Теперь, если у пользователя нет прав на чтение элемента, то соответственно его историю он получить не сможет.
  
 
== Отчёты ==
 
== Отчёты ==
 
=== Задаваемый формат для выбора файлов ===
 
=== Задаваемый формат для выбора файлов ===
Появилась возможность задать ограничение формата атрибутов типа Файл в отчётах. Для этого в свойстве '''''columnOptions.dataControlOptions.mask''''' следует задать загружаемые форматы файла вида: ".pdf,.xlsx,.docx". Несколько форматов перечисляются через запятую.  
+
Появилась возможность задать ограничение формата атрибутов типа "Файл" в отчётах. Для этого в свойстве '''''columnOptions.dataControlOptions.mask''''' следует задать загружаемые форматы файла вида: ".pdf,.xlsx,.docx". Несколько форматов перечисляются через запятую.  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;">
 
<div style="font-weight:bold;line-height:1.6;">JSON</div>
 
<div style="font-weight:bold;line-height:1.6;">JSON</div>
Строка 38: Строка 72:
 
<br>
 
<br>
 
[[Файл:формат файла.gif|слева|border]] <br clear="both" /><br>
 
[[Файл:формат файла.gif|слева|border]] <br clear="both" /><br>
Также теперь при загрузке файла превышающего 5МБ файл не будет загружаться и будет всплывать предупреждение. Максимальный размер файла задаётся в конфигурационном файле с помощью свойства '''''fileSizeLimit''''' в мегабайтах. По умолчанию равен 5МБ.
+
Также теперь при загрузке файла превышающего лимит, он не будет загружаться и будет всплывать предупреждение. По умолчанию лимит равен 5МБ.<br>
 +
Максимальный размер файла задаётся в конфигурационном файле с помощью свойства '''''fileSizeLimit''''' в мегабайтах.  
  
 
[[Файл:башой файл.png|слева|border]] <br clear="both" /><br>
 
[[Файл:башой файл.png|слева|border]] <br clear="both" /><br>
Строка 69: Строка 104:
  
 
== Формы ==
 
== Формы ==
== Обращение к файлам в справочнике и скачивание архивом ==  
+
=== Обращение к файлам в справочнике и скачивание архивом ===
Добавлена возможность скачивать файлы с помощью BusinessLogicApiAction без прямого обращения к файлу в файловом хранилище. Подробнее об этой настройке можно прочитать [[Платформа_3V/Формы/Действия/Выполнение_пользовательского_действия/Скачивание_файла|здесь]]. Также добавлена возможность скачивать файлы в .zip формате. Для этого следует использовать пользовательское действие с запросом ''https://.../filestorage/api/File/GetFilesAsArchive'', передавая в тело запроса идентификаторы('''''FileId''''') файлов.  
+
Добавлена возможность скачивать файлы с помощью пользовательского действия ('''''BusinessLogicApiAction'''''). Подробнее об этой настройке можно прочитать [[Платформа_3V/Формы/Действия/Выполнение_пользовательского_действия/Скачивание_файла|здесь]].<br>
 +
Также добавлена возможность скачивать файлы в .zip формате. Для этого следует использовать действие с запросом ''https://.../filestorage/api/File/GetFilesAsArchive''. Для выбора файлов необходимо сформировать соответствующее выражение, в котором следует использовать тип вычислимого атрибута файла [[Платформа_3V/Справочник/Задание_атрибутов_в_справочнике/Вычислимые_значения_файла|'''''FileLinkTransitiveAttributeDefinitionDto''''']].  
 
[[Файл:архив.gif|слева|border]] <br clear="both" /><br>
 
[[Файл:архив.gif|слева|border]] <br clear="both" /><br>
 
<br>
 
<br>
Строка 78: Строка 114:
 
[https://study.3v-cloud.com/navigator/#/home?objectId=1069 Справочник с вытащенными значениями из атрибута "Файл"]
 
[https://study.3v-cloud.com/navigator/#/home?objectId=1069 Справочник с вытащенными значениями из атрибута "Файл"]
 
[https://study.3v-cloud.com/navigator/#/home?objectId=1067 Форма со скачиваемыми архивом и файлом из справочника]
 
[https://study.3v-cloud.com/navigator/#/home?objectId=1067 Форма со скачиваемыми архивом и файлом из справочника]
</div>
+
</div>  
 
</div>
 
</div>
  
Строка 151: Строка 187:
  
 
=== Запрет для владельца процесса ===
 
=== Запрет для владельца процесса ===
В [[Описание релизов/0.40.0#Ответственный за процесс|0.40 релизе]] был введен ответственный за процесс('''''owner'''''), который имел права на любые действия с процессом. Сейчас есть возможность запретить ему выполнение шагов. Для этого в разрешениях нужно указать идентификатор субъекта владельца.  
+
В [[Описание релизов/0.40.0#Ответственный за процесс|0.40 релизе]] был введен ответственный за процесс('''''owner'''''), который имел права на любые действия с процессом. Сейчас есть возможность запретить ему выполнение шагов. Для этого в разрешениях нужно указать идентификатор этого пользователя.  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;">
 
<div style="font-weight:bold;line-height:1.6;">JSON</div>
 
<div style="font-weight:bold;line-height:1.6;">JSON</div>
Строка 224: Строка 260:
 
== Навигатор ==
 
== Навигатор ==
 
=== Интерфейс управления ролями и пользователями ===
 
=== Интерфейс управления ролями и пользователями ===
Создан интерфейс управления ролями и пользователям. Открывается он по кнопке на левой панели управления. Через него можно: <br>
+
Создан интерфейс управления ролями и пользователям. Он открывается по кнопке на левой панели управления. Через него можно: <br>
 
*создать или удалить роль, <br>
 
*создать или удалить роль, <br>
 
*создать или удалить пользователя,<br>
 
*создать или удалить пользователя,<br>
*включить в роль пользователя,<br>
+
*включить пользователя в роль или исключить пользователя из неё,<br>
*найти пользователя, <br>
+
*найти пользователя <br>
*удалить пользователя <br>
 
  
 
При создании пользователя есть ограничение по количеству символов:<br>
 
При создании пользователя есть ограничение по количеству символов:<br>
Строка 243: Строка 278:
 
== Уведомления ==
 
== Уведомления ==
 
=== Добавление уведомления в справочник при незаданной почте ===
 
=== Добавление уведомления в справочник при незаданной почте ===
В рамках [[Описание_релизов/0.40.0#Запись уведомлений в справочник|0.40 релиза]] была реализована возможность записи уведомлений в справочник. Теперь в него будут записываться уведомления без указанной почты('''''WHOM_TO_NOTIFY_EMAIL''''') или логина('''''WHOM_TO_NOTIFY'''''). Если не указан логин, то сообщение добавляется в справочник и отправляется на указанную почту с текстом('''''TEXT'''''), если не указана почта, то добавляется соответствующая строка в справочник.  ''CommentSettings'' свойства '''''TitleTemplate''''' и '''''BodyTemplate''''' сейчас находятся внутри элементов в коллекции '''''Rules'''''. В правилах('''''Rules''''') теперь задаются не идентификаторы('''''Id''''), а коды справочников ('''''Code''''').
+
В рамках [[Описание_релизов/0.40.0#Запись уведомлений в справочник|0.40 релиза]] была реализована возможность записи уведомлений в справочник. Теперь в него будут записываться уведомления без указанной почты('''''WHOM_TO_NOTIFY_EMAIL''''') или логина('''''WHOM_TO_NOTIFY'''''). Если не указан логин, то сообщение добавляется в справочник и отправляется на указанную почту с текстом('''''TEXT'''''), если не указана почта, то добавляется соответствующая строка в справочник без отправления уведомления.   
  
<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">
+
Добавлены новые функции в NCalc:
<syntaxhighlight lang="JSON" line>
+
*'''Flatten()''' - разворачивает все внутренние коллекции в одну общую,
{
+
*'''JPath()''' -  вычисление текста соответствующего значению в JSON.
  "PathBase": "/commentsprocessor",
+
Подробнее об их использовании и настройке можно прочитать [[Платформа_3V/Выражение|здесь]].
  "CommentSettings": {
 
    "Rules": [
 
      {
 
        "Action": "SendToEmail",
 
        "Dictionary": {
 
          "Code": "DICT_COMMENTS_WITH_FILE_ATTR",
 
          "AttributeLoginsId": 26,
 
          "AttributeEmailsId": 30,
 
          "Attributes": {
 
            "Text": 2,
 
            "ThisIsAbsentAttr": 999
 
          }
 
        },
 
        "TitleTemplate": "Заголовок",
 
        "BodyTemplate": "\"${Text}\""
 
      }     
 
    ]
 
  },
 
  "KafkaReaderSettings": {
 
    ...
 
  },
 
  "KafkaWriterSettings": {
 
    ...
 
  }
 
}
 
</syntaxhighlight>
 
</div></div>
 
  
 
= Конструкторы =
 
= Конструкторы =
 
== Конструктор форм ==
 
== Конструктор форм ==
=== Вынос выбора атрибута и источника отображения данных ===
+
=== Вынос выбора атрибута источника отображения данных ===
 
В конструктор вынесена настройка отображаемого атрибута в компонентах "Раскрывающийся список" и "Выбор из списка".  
 
В конструктор вынесена настройка отображаемого атрибута в компонентах "Раскрывающийся список" и "Выбор из списка".  
 
[[Файл:bcnjxybrb jnj,hf;tybz lfyys(.png|слева|border]] <br clear="both" /><br>
 
[[Файл:bcnjxybrb jnj,hf;tybz lfyys(.png|слева|border]] <br clear="both" /><br>
  
=== Локализация текстовых сообщения в модальных окнах ===
+
=== Локализация текстовых сообщений ===
Добавлена локализация на английский язык для всплывающих окон в формах.  
+
Добавлена локализация на английский язык для предупреждений.  
 
<gallery mode="packed" margin=200px; heights=250px style="text-align:left;">
 
<gallery mode="packed" margin=200px; heights=250px style="text-align:left;">
Файл:локлизация пустой карточки.png|<div style="text-align:center">'''Локализация пустой карточки'''</div>
+
Файл:локлизация пустой карточки.png|<div style="text-align:center">'''Локализация пустой формы'''</div>
Файл:локлизация модальных окон.png|<div style="text-align:center">'''Локализация модальных окон'''</div>
+
Файл:локлизация модальных окон.png|<div style="text-align:center">'''Локализация пользовательского предупреждения'''</div>
 
</gallery>
 
</gallery>

Текущая версия на 11:07, 22 декабря 2021

licensed-image.jpg

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

  • В конфигурационных файлах сервиса комментирования в CommentSettings свойства TitleTemplate и BodyTemplate сейчас находятся внутри элементов в коллекции Rules. В правилах (Rules) теперь задаются не идентификаторы(Id), а коды справочников (Code)
JSON
 1 {
 2   "PathBase": "/commentsprocessor",
 3   "CommentSettings": {
 4     "Rules": [
 5       {
 6         "Action": "SendToEmail",
 7         "Dictionary": {
 8           "Code": "DICT_COMMENTS_WITH_FILE_ATTR",
 9           "AttributeLoginsId": 26,
10           "AttributeEmailsId": 30,
11           "Attributes": {
12             "Text": 2,
13             "ThisIsAbsentAttr": 999
14           }
15         },
16         "TitleTemplate": "Заголовок",
17         "BodyTemplate": "\"${Text}\""
18       }      
19     ]
20   },
21   "KafkaReaderSettings": {
22     ...
23   },
24   "KafkaWriterSettings": {
25     ...
26   }
27 }

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

Справочники

История изменения элементов. Права на элементы

Добавлена проверка прав на чтение элементов при получении их истории. Теперь, если у пользователя нет прав на чтение элемента, то соответственно его историю он получить не сможет.

Отчёты

Задаваемый формат для выбора файлов

Появилась возможность задать ограничение формата атрибутов типа "Файл" в отчётах. Для этого в свойстве columnOptions.dataControlOptions.mask следует задать загружаемые форматы файла вида: ".pdf,.xlsx,.docx". Несколько форматов перечисляются через запятую.

JSON
 1 {
 2    "topHeader": {
 3        "topHeaderItems": [
 4         {
 5          ...      
 6   
 7            "columnOptions": {
 8              ...
 9 
10               "dataControlOptions": {
11                ...
12 
13                "mask": ".pdf,.xlsx,.docx"            
14               }      
15            }
16        ]
17    }
18 }


формат файла.gif



Также теперь при загрузке файла превышающего лимит, он не будет загружаться и будет всплывать предупреждение. По умолчанию лимит равен 5МБ.
Максимальный размер файла задаётся в конфигурационном файле с помощью свойства fileSizeLimit в мегабайтах.

башой файл.png



"Сворачивать данные по справочнику" для показателей на справочнике

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

Реализация комбинации горячих клавиш Ctrl-Ins / Shift-Ins ​

Добавлена возможность копировать/вставлять данные в отчёте с помощью комбинаций Ctrl-Ins / Shift-Ins. Теперь скопировать данные можно тремя способами: комбинациями Ctrl-С/Ctrl-V и Ctrl-Ins/Shift-Ins или через контекстное меню.

Формы

Обращение к файлам в справочнике и скачивание архивом

Добавлена возможность скачивать файлы с помощью пользовательского действия (BusinessLogicApiAction). Подробнее об этой настройке можно прочитать здесь.
Также добавлена возможность скачивать файлы в .zip формате. Для этого следует использовать действие с запросом https://.../filestorage/api/File/GetFilesAsArchive. Для выбора файлов необходимо сформировать соответствующее выражение, в котором следует использовать тип вычислимого атрибута файла FileLinkTransitiveAttributeDefinitionDto.

архив.gif




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

Подстановка регламентных дат

Реализована возможность подстановки регламентных дат состояние процесса в шаблоны уведомлений согласования %changed_date%(дата начала) и %regulation_date%(дата окончания).

Пример шаблона уведомления:

 Уважаемый (ая), %subject%, Вам поступило новое задание '%new_state%' по заявке [%param1.1%]>%param1.2%.<br><br>Комментарий: %comment% <br>  <br>Регламентные сроки по заданию:<br><br>Начало: %ChangedDate%<br><br>Конец: %RegulationDate%

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

Уважаемый (ая), Иванов Иван, Вам поступило новое задание 'Предварительное рассмотрение' по заявке Заявка 1 (0001).
Комментарий: Документы загружены

Регламентные сроки по заданию:
Начало: 01.11.2021
Конец: 01.01.2022
JSON
 1 {
 2   "notifications": {
 3       "primary": {
 4         "stateNotifications": [
 5           {
 6             "stateId": 1,
 7             "template": {
 8               "title": "Состояние 1",
 9               "body": "Дата начала %changed_date%"
10             },
11             "recipients": {
12               "subjects": [
13                 {
14                   "subjectId": "76b8102c-0528-46bc-a6a5-6007a35ffde3",
15                   "discriminator": "FixedSubjectDescriptionModel"
16                 }
17               ],
18               "discriminator": "SubjectNotificationsReceipientsModel"
19             }
20           },
21           {
22             "stateId": 2,
23             "template": {
24               "title": "Состояние 2",
25               "body": "Дата начала %changed_date%, дата окончания %regulation_date%"
26             },
27             "recipients": {
28               "subjects": [
29                 {
30                   "subjectId": "76b8102c-0528-46bc-a6a5-6007a35ffde3",
31                   "discriminator": "FixedSubjectDescriptionModel"
32                 }
33               ],
34               "discriminator": "SubjectNotificationsReceipientsModel"
35             }
36           }
37         ]
38       }
39     }
40   }


Запрет для владельца процесса

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

JSON
 1 {
 2   "template": {
 3      ...
 4 
 5      "permissions": [
 6       {
 7         "stepId": 2,
 8         "subject": {
 9           "subjectId": "38de6001-98cd-4859-bd46-8387ef1474aa",
10           "discriminator": "FixedSubjectDescriptionModel"
11         },
12         "type": "Deny"
13       }
14     ], 
15     "owner": {
16       "subjectId": "38de6001-98cd-4859-bd46-8387ef1474aa",
17       "discriminator": "FixedSubjectDescriptionModel"
18     }
19   }  
20 }

Связь параметров процесса и его подпроцесса

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

JSON
 1 {
 2   "template": {
 3     "schema": {
 4       "states": [
 5         ...        
 6         {
 7           "icon": {
 8             ...
 9           },
10           "dataAvailabilitySettings": {
11             ...
12           },
13           "subProcesses": [
14             {
15               "workflowId": 144155,
16               "name": "Child 1",
17               "parameterMappings": [
18                 {
19                   "parentProcessParameterId": 1,
20                   "subProcessParameterId": 1
21                 }
22               ]
23             }
24           ],
25           "id": 3,
26           "name": "Замапленный параметр"
27         }       
28       ]      
29     }    
30   }  
31 }


параметры согласования.gif



Навигатор

Интерфейс управления ролями и пользователями

Создан интерфейс управления ролями и пользователям. Он открывается по кнопке на левой панели управления. Через него можно:

  • создать или удалить роль,
  • создать или удалить пользователя,
  • включить пользователя в роль или исключить пользователя из неё,
  • найти пользователя

При создании пользователя есть ограничение по количеству символов:
Email: 50 символов
Пароль: 50 символов
Логин: 30 символов
Фамилия: 30 символов
Имя: 30 символов

При создании роли ограничение по количеству: 50 символов

права(не здесь).gif



Уведомления

Добавление уведомления в справочник при незаданной почте

В рамках 0.40 релиза была реализована возможность записи уведомлений в справочник. Теперь в него будут записываться уведомления без указанной почты(WHOM_TO_NOTIFY_EMAIL) или логина(WHOM_TO_NOTIFY). Если не указан логин, то сообщение добавляется в справочник и отправляется на указанную почту с текстом(TEXT), если не указана почта, то добавляется соответствующая строка в справочник без отправления уведомления.

Общее

Новые функции

Добавлены новые функции в NCalc:

  • Flatten() - разворачивает все внутренние коллекции в одну общую,
  • JPath() - вычисление текста соответствующего значению в JSON.

Подробнее об их использовании и настройке можно прочитать здесь.

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

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

Вынос выбора атрибута источника отображения данных

В конструктор вынесена настройка отображаемого атрибута в компонентах "Раскрывающийся список" и "Выбор из списка".

bcnjxybrb jnj,hf;tybz lfyys(.png



Локализация текстовых сообщений

Добавлена локализация на английский язык для предупреждений.