Перейти к содержанию

Патч 3.6.0.5 (04.12.2021)

Добавление и изменение функциональности

  1. В TessaAdmin добавлено splash-окно для загрузки и исправления типов на вкладке “Карточки”.
  2. В web-клиенте для элемента управления “Текст с форматированием” добавлено ограничение длины описания и адреса ссылки (1024 и 1016 символов соответственно).
  3. В контрол “Нумератор” добавлена настройка “Максимальная длина”, которая ограничивает длину полного номера, вводимого вручную. Укажите пустое значение (по умолчанию), чтобы длина определялась автоматически в соответствии со схемой данных. Укажите в настройке значение “max” (без кавычек), чтобы не ограничивать вводимую длину, несмотря на тип колонки в схеме данных (это прежнее поведение).
  4. Добавлена возможность пропускать Windows-аутентификацию при запуске desktop-приложений, указав параметр -skipWinAuth или настройку "SkipWinAuth": true в app.json. Если при этом не указаны логин/пароль, то вместо попытки выполнить Windows-аутентификацию отображается диалог ввода логина/пароля. В параметры сервера в Tessa Applications добавлена настройка “Отключить аутентификацию Windows”, актуальная для приложений, запущенных из менеджера приложений. Для ссылок tessa://tessaappmanager?Action=ServerParam также добавлен параметр SkipWinAuth=true/false. За описанием настроек обратитесь к руководству администратора.
  5. В карточке “Шаблон бизнес-процесса” в таблицу “Кнопки бизнес-процесса” добавлена колонка “Есть условие”, которая показывает, есть ли в настройках кнопки дополнительное условие.
  6. В карточке “Шаблон бизнес-процесса” в таблицу “Кнопки бизнес-процесса” в форму строки добавлено раскрытие блока с дополнительным условием при открытии формы, если в настройках кнопки задано условие. Также для блока с дополнительным условием добавлена метка, показывающая, задано ли условие кнопки.
  7. В web-клиенте окно “О программе” теперь выводит список установленных патчей.
  8. В desktop-клиенте для контролов “Ссылка” и “Список” в контекстном меню для выбранного значения добавлен пункт “Удалить”. Пункт меню недоступен, если контрол доступен только для чтения. Такое удаление аналогично удалению выделенного элемента клавишами Delete или Backspace.
  9. В настройки контролов “Ссылка” и “Список” добавлен флаг “Кнопка очистки значения”, при указании которого отображается кнопка-крестик, очищающая значения в поле.
  10. При экспорте карточек шаблонов бизнес-процесса все скрипты процесса выгружаются во внешние файлы. Файлы расположены в подпапке с именем карточки.
  11. В web-клиенте в окне “О программе” логотип теперь соответствует файлу wwwroot/images/logo-about.png, который можно заменить для брендирования платформы.
  12. В расширении “Список файлов в представлении” добавлена поддержка перетаскивания файлов из контрола представления.
  13. В расширении “Список файлов в представлении” добавлена отмена предпросмотра файла при открытии файла по двойному клику.
  14. При экспорте схемы данных в файловую систему в файлах *.tsp и *.tsd объекты теперь пишутся в алфавитном порядке.
  15. Добавлено расширение “Открыть карточку из представления” для контрола “Представление”, позволяющее открывать из него карточки по двойному клику. Подробное описание смотрите в соответствующем разделе документации.
  16. В файл app.json веб-сервиса добавлена настройка ServiceWorkerEnabled, посредством которой можно отключать регистрацию service worker в веб-клиенте. По умолчанию true.
  17. Копирование ссылок tessa:// в буфер обмена в desktop-приложениях теперь использует алиас текущего приложения из объекта IApplicationDescriptor. Это позволяет задействовать стандартные команды копирования в собственных приложениях, разработанных на проекте, у которых будет свой алиас. Например, если открыть карточку в таком приложении, то кнопка “Копировать ссылку” скопирует в буфер обмена ссылку на карточку с алиасом этого приложения.
  18. Реализована возможность загружать файлы в карточки задач. Пример - в расширениях типового решения TaskEnableAttachFilesExampleUIExtension, TaskFilesExampleGetExtension и TaskFilesExampleStoreExtension.
  19. В web-клиенте для элемента управления “Текст с форматированием” переработаны операции редактирования списков и добавлены команды “Очистить все форматирование” и “Удалить блок”.
  20. Написана статья базы знаний Создание настольного (desktop) приложения, использующего API TESSA.
  21. В web-клиенте для элемента управления “Текст с форматированием” убран нижний лимит для вставляемых изображений (был 10 пикселей) и улучшено сжатие изображений для превью.

Консольная утилита tadmin

  1. Из команды ConvertConfiguration удалена функциональность конвертации экземпляров карточек и библиотек карточек.
  2. Добавлена команда ConvertCards. Данная команда преобразует файлы карточек и файлы библиотек карточек из старых форматов в новые (режим Upgrade), или обратно (режим Downgrade). Подробное описание команды содержится в руководстве администратора.

Новые версии библиотек

  1. .NET 5.0.12
  2. CsvHelper 27.2.1
  3. DocumentFormat.OpenXml 2.14.0
  4. HtmlAgilityPack 1.11.39
  5. HtmlSanitizer 6.0.453
  6. ITfoxtec.Identity.Saml2.MvcCore 4.7.1
  7. Kerberos.NET 4.5.124
  8. linq2db 3.6.0
  9. Microsoft.CodeAnalysis.CSharp 4.0.1
  10. Microsoft.Data.SqlClient 4.0.0
  11. Microsoft.NET.Test.Sdk 17.0.0
  12. NLog 4.7.12
  13. NUnit3TestAdapter 4.1.0
  14. QRCoder 1.4.2
  15. StackExchange.Redis 2.2.88

Изменения API

  1. В web-клиенте добавлен метод IControlViewModel.commitChanges, аналогичный методу в desktop-клиенте.
  2. Расширено API, связанное с внутренней реализацией экспорта и импорта карточек. Добавлены интерфейсы: IStorageMappingHandler, IStorageMappingResolver, IStorageMappingProvider, ICardExternalSourceLogic. Подробная информация в документации по API.
  3. Делегаты в классе PropertyGridSelectorSettings сделаны асинхронными. Они используются при формировании настроек в конструкторе карточек, что актуально при разработке контролов, валидаторов и других элементов конструктора карточек.
  4. Интерфейс IEDSProvider и его реализация изменены для обеспечения расширяемости по выбору настроек для подписания и проверки подписи. Создайте класс, унаследованный от EDSProvider, и переопределите его методы. В них параметр info соответствует параметрам запроса Request.Info для типа запроса DefaultRequestTypes.CAdESSignature. Со стороны клиента напишите расширение CardRequestExtension, использующее context.Request.Info для передачи информации из текущего объекта UIContext.Current (обычно из карточки). Пример таких расширений в руководстве разработчика.
  5. В клиентскую команду “Открыть карточку” (DefaultCommandTypes.OpenCard) добавлены необязательные параметры TypeID и TypeName, идентификатор и имя типа открываемой карточки соответственно. Подробная информация о клиентских командах содержится в руководстве разработчика в разделе “Маршруты”, в п. “Клиентские команды”.
  6. Константа WorkflowEngineHelper.ExtendedBusinessProcessTemplateTypeID, определяющая тип карточки “Расширенный шаблон бизнес-процесса”, помечена как Obsolete. Она используется только для поддержки обратной совместимости с ранее экспортируемыми карточками. Вместо неё необходимо использовать константу CardHelper.BusinessProcessTemplateTypeID.
  7. Усовершенствовано API тестов для сценариев удаления карточек с помощью объектов, реализующих интерфейс ITestCardManager.
  8. Усовершенствовано API тестов для сценариев работы с отложенными действиями.
  9. Добавлен интерфейс IStorageValuesKeeper, механизм, который позволяет запоминать и восстанавливать значения из хранилища (storage) по заданным путям. Подробности с примерами в руководстве разработчика.
  10. Добавлен сервис IBackgroundServiceQueue для выполнения неблокирующих фоновых задач в веб-приложении TESSA в качестве ASP.NET Core Hosted Service.
  11. При регистрации расширений методом WhenApplications указанные идентификаторы приложений добавляются к списку идентификаторов приложений, заданных в предыдущей регистрации этого же расширения, а не переопределяют список.
  12. Для контрола “Десятичное число” добавлена возможность изменить количество знаков после запятой посредством метода модели представления DecimalBoxViewModel.SetDigitsAfterSeparatorAsync в desktop-клиенте или через свойство DecimalBoxViewModel.digitsAfterSeparator в web-клиенте.
  13. В метод IConsoleLogger.LogExceptionAsync добавлен необязательный параметр warning. Если его указать как true, то исключение выводится в лог NLog на уровне логирования Warn.
  14. Добавлено свойство IFormViewModel.TabVisibility, посредством которого в desktop-клиенте можно скрыть строку со вкладками карточки.
  15. В контекст обработки IWorkflowEngineContext и для компилируемого объекта WorkflowEngineCompiledBase добавлено свойство Parameters с типом IDictionary<string, object>, которое содержит все параметры выполняемого скрипта действия. Ключом для получения параметра является имя параметра скрипта.
  16. В компилируемом объекте IWorkflowEngineCompiled в методы ExecuteActionAsync и ExecuteFuncAsync добавлен параметр с типом WorkflowActionMethodDescriptor, в котором необходимо передавать дескриптор запускаемого метода.

Исправления и оптимизации

  1. В web-клиенте исправлена ошибка в элементе управления “Текст с форматированием”, приводившая к некорректному расчету высоты и ширины вставляемых изображений, если они меньше максимально разрешенного размера.
  2. В web-клиенте в обсуждениях исправлена ошибка, приводившая к уменьшению размера шрифта ссылок в сообщении после редактирования.
  3. В web-клиенте исправлена ошибка, приводившая к тому, что кнопка “Развернуть” не отображалась в элементе управления “Текст с форматированием”, если включен режим “Только для чтения”.
  4. В web-клиенте исправлен баг, приводивший к появлению изменений в структуре карточки после открытия, если в ней есть элемент управления “Текст с форматированием” и из него были удалены изображения перед предыдущим сохранением.
  5. Оптимизировано использование типов диалогов посредством API в TessaClient и в конструкторах представлений и карточек в TessaAdmin.
  6. Исправлены утечки памяти и ошибки NRE, связанные с использованием типов диалогов в desktop-клиенте.
  7. В конструкторе бизнес-процессов в действии “Таймер” исправлена доступность поля “Условие остановки таймера” в ситуации, когда процесс не был заблокирован на редактирование.
  8. Исправлено формирование обратных ссылок в письмах мобильного согласования.
  9. Исправлена обработка пустого заголовка Content-Encoding при обработке ответов на запросы от Exchange Web Services. Исправление соответствует версии библиотеки Microsoft.Exchange.WebServices.NETStandard 2.0.0-beta2.
  10. В web-клиенте в контроле автокомплита исправлен ручной ввод.
  11. В API тестов исправлена ошибка в методе TestCardHelper.RepairCardRowOrders, из-за которой не устанавливалось состояние CardRowState.Modified при изменении поля, содержащего порядковый номер.
  12. В методе KrProcessSharedHelper.RepairStorageRowsOrders исправлена ошибка, приводившая к изменению поля Order, а не указанного в параметре orderField.
  13. В маршрутах исправлена ошибка при одновременном удалении и пропуске этапа.
  14. В маршрутах в шаблоне этапов “Возврат на доработку” исправлена локализация названия этапа “Управление процессом” при использовании локализации, отличной от русского языка.
  15. В маршрутах исправлена ошибка, которая приводила к некорректному определению наличия изменений в порядке существующих этапов после добавления ручного этапа. Ошибка появилась в версии 3.6.0.4.
  16. В конструкторе бизнес-процессов в таблице с кнопками исправлена проблема, когда в списках “Состояния” и “Доступно ролям” не удалялись дубли.
  17. В конструкторе бизнес-процессов исправлена проблема, когда положение контролов для редактирования расширений кнопки было некорректным, если в редакторе расширения кнопки использовались несколько вкладок.
  18. Кнопка “Копировать” в окне со списком загруженных расширений и патчей теперь копирует в буфер обмена информацию по патчам.
  19. Исправлены значения констант: DefaultCardTypes.KrStageCommonMethodTypeName и DefaultCardTypes.KrStageTemplateTypeName. Они содержали неправильные имена типов карточек.
  20. Оптимизирована загрузка типов карточек для СУБД MS SQL Server.
  21. Оптимизирована работа плагина асинхронной обработки бизнес-процессов.
  22. Исправлена регистрация ряда расширений для классов Registrator в методах InitializeExtensions, тогда как она должна выполняться в методе RegisterExtensions.
  23. В API тестов исправлена ошибка, возникающая при удалении временного файлового хранилища во время инициализации тестов.
  24. Исправлены возможные ошибки с неосвобождаемыми блокировками на запись карточки и на запись настроек сотрудника из-за отмены запроса по CancellationToken.
  25. Исправлен скрипт миграции для версии 3.4.0, в котором не добавлялась секция TaskCommonInfo для заданий типа KrUniversalTask, используемых в этапах маршрутов “Настраиваемое задание”. Ошибка приводила к тому, что карточка с заданием этого типа переставала открываться. Актуально при обновлении с версии 3.3.1 или более ранней.
  26. Исправлена ошибка, которая возникала при импорте карточки, когда прикрепленные файлы присутствуют только в сателлитах, но не в самой карточке.
  27. Исправлена отправка почты посредством Exchange, если в настройке NoticeMailer.ExchangeFrom указана пустая строка. В этом случае используется настройка NoticeMailer.ExchangeUser в соответствии с документацией.
  28. В web-клиенте исправлена ошибка, из-за которой не очищался контрол выбора даты/времени.
  29. В web-клиенте исправлена работа фильтров представления с decimal типом.
  30. В маршрутах исправлена ошибка, из-за которой этап, добавленный с помощью метода IKrScript.AddStageAsync или IKrScript.GetOrAddStageAsync, изменял порядок после пересчёта маршрута.
  31. В web-клиенте исправлено отображение длинных наименований карточки в диалоге при подтверждении удаления карточки.
  32. Исправлена ситуация, когда в топике форумов (обсуждений) пользователь мог видеть кнопку “Подписаться” вместо кнопки “Отписаться”, если он включён в участники обсуждения и через роль (посредством API), и как сотрудник.
  33. Исправлена обработка ошибок при отправке уведомлений по новым сообщениям в обсуждениях.
  34. Оптимизирован поиск отписавшихся от обсуждений пользователей в некоторых сценариях.
  35. Исправлена возможность заменить зависимость IForumProviderStrategy в регистраторе расширений на сервере. Ранее зарегистрированная зависимость в контейнере Unity игнорировалась платформенными расширениями.
  36. Исправлена ошибка, когда при экспорте карточки поверх уже имеющейся в экспортируемом файле происходило лишнее обновление информации.
  37. В процессе работы плагина конвертации файлов каждый период обслуживания теперь пересоздаются все объекты API и выполняется повторное чтение настроек из базы данных. Это предотвращает проблемы, когда изменённые настройки файловых хранилищ не актуализировались в Chronos, если он не перезапускался и не был настроен сброс кэшей посредством Redis. Период указывается в app.json в настройке FileConverter.MaintenancePeriod, по умолчанию это 1 час.
  38. В конструкторе бизнес-процессов в действии “Настраиваемое задание” в таблице “Варианты завершения” исправлена проблема, из-за которой можно было добавить вариант завершения с неуникальным идентификатором.
  39. В маршрутах в этапе “Настраиваемое задание” в таблице “Варианты завершения” исправлена проблема, из-за которой можно было добавить вариант завершения с неуникальным идентификатором.
  40. В web-клиенте исправлена ошибка при SAML аутентификации, которая вызывала постоянные переходы на окно логина.
  41. В desktop-клиенте в контролах “Ссылка” и “Список” исправлено применение настройки “Расширенная локализация” при наличии настройки “Формат поля”.
  42. Устранена ошибка, из-за которой в контроле “Представление” не учитывалась сортировка, указанная в представлении.
  43. Асинхронный пересчёт участников при некоторых действиях в обсуждениях теперь выполняется посредством IBackgroundServiceQueue, что гарантирует их корректное завершение при остановке веб-сервиса.
  44. В схеме данных исправлена ошибка, когда при работе с файловой схемой данных при изменении имени или библиотеки программных объектов (функции, процедуры, миграции) старые файлы *.ms.sql и *.pg.sql этих объектов, при их наличии, не удалялись.
  45. Исправлена ошибка, возникающая при попытке изменить участника обсуждения с типом “Роль” в ситуации, если права супермодератора не были запрошены в карточке, хотя фактически они есть.
  46. Исправлен файл Fixes\KrApprovalList\KrApprovalList.cs для использования устаревших расширений на лист согласования для текущей версии API.
  47. В web-клиенте исправлена ошибка, из-за которой выполнялись браузерные команды при многократном нажатии горячих клавиш карточки.
  48. Оптимизировано обращение к кэшам локализации, карточек и представлений сервером приложений.
  49. В web-клиенте исправлена проверка обновления Deski, где мог предлагаться даунгрейд на старую версию Deski в качестве обновления.
  50. В API тестов исправлена ошибка ArgumentOutOfRangeException при удалении временного файлового хранилища. Ошибка возникала, если был снят флаг, разрешающий удаление временной базы данных (SetupTempDbAttribute.RemoveDatabase = false), и режим удаления временного файлового хранилища (TestBase.RemoveFileStorageMode) был установлен как RemoveFileStorageMode.Auto.
  51. В обсуждениях (форумах) desktop-клиента исправлена установка цвета шрифта и цвета выделения текста при добавлении пункта списка в поле ввода сообщения.
  52. В обсуждениях (форумах) desktop-клиента исправлена установка атрибутов шрифта при вставке ссылки в поле ввода сообщения.
  53. В форумах desktop-клиента при вставке текста из буфера обмена в поле ввода сообщения теперь происходит обнуление отступов абзацев.
  54. Для команд и скриптов tadmin исправлена загрузка сборок, указанных в настройке ProbingPath в файле app.json.
  55. Оптимизирована конвертация файлов (например, для предпросмотра в формате PDF) при наличии большого количества файлов в базе данных.
  56. Исправлена конвертация файлов (например, для предпросмотра в формате PDF), если она выполняется для непоследней версии файла.
  57. В команде tadmin PackageApp сообщение “Failed to load assembly, falling back to default alias and name” выводится на уровне логирования Warn вместо Error, поскольку оно не является критичной ошибкой.
  58. В desktop-клиенте исправлено скрытие основной вкладки карточки (без алиаса) флажком “Скрыть”, и исправлена ошибка IndexOutOfRangeException, если скрыта одна из вкладок левее основной.
  59. Исправлена передача параметров пейджинга при выполнении представления для ссылочных параметров фильтрации.
  60. В web-клиенте исправлена ошибка при обращении к свойствам tableType и rowSortingType класса CardSection.
  61. Исправлены миграции при переходе с версий младше 3.5.0 на текущую версию.
  62. В web-клиенте исправлена ошибка в элементе управления “Текст с форматированием”, приводившая к тому, что изображения в тексте отображались поверх тулбара, если элемент управления находился в режиме чтения.
  63. В web-клиенте исправлена ошибка, в некоторых ситуациях приводившая к невозможности сохранить карточку, если в элемент управления “Текст с форматированием” было добавлено изображение и удалено до сохранения карточки.
  64. В web-клиенте исправлена ошибка, из-за которой у сотрудника оставались права доступа на редактирование карточки после её передачи на следующий этап, на котором у сотрудника нет права на редактирование.
  65. В desktop-клиенте для контрола “Представление” исправлена работа флага “Разрешить прокрутку”.
  66. В desktop-клиенте в форумах (обсуждениях) исправлена ошибка, из-за которой при вводе сообщения и при копировании текста из внешнего источника не сохранялись переходы строки.
  67. В web-клиенте исправлена ошибка, из-за которой не заполнялась колонка “Настройки” в таблице “Кнопки бизнес-процесса”.
  68. В desktop-клиенте улучшено выравнивание вкладок карточки и контрола “Вкладки” для настройки размера шрифта Windows, отличного от 100%.
  69. В desktop-клиенте улучшено качество отображения картинок в контроле “Текст с форматированием” и в форумах (обсуждениях).

Обновление на новую сборку

  1. Обновите файл app.json для сервиса web: добавлена настройка ServiceWorkerEnabled.
  2. После импорта конфигурации выполните компиляцию всех шаблонов файлов. Для этого откройте карточку любого шаблона файла, перейдите на вкладку “Расширения” и нажмите кнопку “Выполнить компиляцию всех шаблонов файлов”.
  3. При работе с СУБД MS SQL Server рекомендуется указать в строке подключения в app.json для tadmin, web и chronos параметр Trust Server Certificate=true (параметры разделяются точкой с запятой). Вместо этого вы можете настроить сертификат СУБД в соответствии с рекомендациями в MSDN.
  4. Добавлена поддержка дистрибутива Linux Ubuntu 21.10. Полный список поддерживаемых дистрибутивов (с которыми тестировалась платформа) доступен в разделе документации Системные требования для серверов Linux.
  5. В API тестов исправлена опечатка в методе CardLifecycleCompanionExtensions.LoadWithtHiddenStages. Переименуйте места вызова метода в проектах с тестами.
  6. Из системы был удалён виртуальный тип карточки “Расширенный шаблон бизнес-процесса”, который использовался в карточках шаблонов процессов при добавлении расширений на кнопки. Для импорта карточек данного типа добавлено расширение, поддерживающее обратную совместимость. Необходимо перевыгрузить шаблоны бизнес-процессов в репозиторий для обновления их типа карточки и структуры секций в репозитории.
  7. Логика сохранения токена сессии и сервиса локализации на веб-сервере вынесена из статического класса WebHelper в объект с типом IWebContext. Получить текущий IWebContext можно с помощью объекта с типом IWebContextAccessor.
  8. Удалены некоторые избыточные методы в классе LinkHelper. Используйте перегрузки метода GetClientLink вместо них.
  9. Свойство CardViewControlViewModel.ScrollWithModifiers удалено, прокрутка с зажатым Ctrl доступна для всех контролов “Представление”. Используйте свойство EnableMouseScrolling, определяющее прокрутку мышью без зажатого Ctrl, в соответствии с флагом “Разрешить прокрутку”.

Изменения конфигурации при обновлении

  1. Таблицы:

    • BusinessProcessButtonRolesVirtual (добавлена)

    • BusinessProcessButtonsVirtual (добавлена)

    • FmTopicParticipantRolesUnsubscribed

  2. Библиотеки схемы:

    • FullTextSearch

    • Standard solution

    • Workflow

  3. Типы:

    • BusinessProcessTemplate

    • KrCheckStateWorkflowTileExtension

    • WorkflowCheckRolesForExecutionTileExtension

  4. Карточки:

    • ReturnForAmendingTemplate (необязательное изменение)
  5. Изменены библиотеки локализации.

Back to top