Патч 3.6.0.5 (04.12.2021)¶
Добавление и изменение функциональности¶
- В TessaAdmin добавлено splash-окно для загрузки и исправления типов на вкладке “Карточки”.
- В web-клиенте для элемента управления “Текст с форматированием” добавлено ограничение длины описания и адреса ссылки (1024 и 1016 символов соответственно).
- В контрол “Нумератор” добавлена настройка “Максимальная длина”, которая ограничивает длину полного номера, вводимого вручную. Укажите пустое значение (по умолчанию), чтобы длина определялась автоматически в соответствии со схемой данных. Укажите в настройке значение “max” (без кавычек), чтобы не ограничивать вводимую длину, несмотря на тип колонки в схеме данных (это прежнее поведение).
- Добавлена возможность пропускать Windows-аутентификацию при запуске desktop-приложений, указав параметр
-skipWinAuthили настройку"SkipWinAuth": trueвapp.json. Если при этом не указаны логин/пароль, то вместо попытки выполнить Windows-аутентификацию отображается диалог ввода логина/пароля. В параметры сервера в Tessa Applications добавлена настройка “Отключить аутентификацию Windows”, актуальная для приложений, запущенных из менеджера приложений. Для ссылокtessa://tessaappmanager?Action=ServerParamтакже добавлен параметрSkipWinAuth=true/false. За описанием настроек обратитесь к руководству администратора. - В карточке “Шаблон бизнес-процесса” в таблицу “Кнопки бизнес-процесса” добавлена колонка “Есть условие”, которая показывает, есть ли в настройках кнопки дополнительное условие.
- В карточке “Шаблон бизнес-процесса” в таблицу “Кнопки бизнес-процесса” в форму строки добавлено раскрытие блока с дополнительным условием при открытии формы, если в настройках кнопки задано условие. Также для блока с дополнительным условием добавлена метка, показывающая, задано ли условие кнопки.
- В web-клиенте окно “О программе” теперь выводит список установленных патчей.
- В desktop-клиенте для контролов “Ссылка” и “Список” в контекстном меню для выбранного значения добавлен пункт “Удалить”. Пункт меню недоступен, если контрол доступен только для чтения. Такое удаление аналогично удалению выделенного элемента клавишами Delete или Backspace.
- В настройки контролов “Ссылка” и “Список” добавлен флаг “Кнопка очистки значения”, при указании которого отображается кнопка-крестик, очищающая значения в поле.
- При экспорте карточек шаблонов бизнес-процесса все скрипты процесса выгружаются во внешние файлы. Файлы расположены в подпапке с именем карточки.
- В web-клиенте в окне “О программе” логотип теперь соответствует файлу
wwwroot/images/logo-about.png, который можно заменить для брендирования платформы. - В расширении “Список файлов в представлении” добавлена поддержка перетаскивания файлов из контрола представления.
- В расширении “Список файлов в представлении” добавлена отмена предпросмотра файла при открытии файла по двойному клику.
- При экспорте схемы данных в файловую систему в файлах
*.tspи*.tsdобъекты теперь пишутся в алфавитном порядке. - Добавлено расширение “Открыть карточку из представления” для контрола “Представление”, позволяющее открывать из него карточки по двойному клику. Подробное описание смотрите в соответствующем разделе документации.
- В файл
app.jsonвеб-сервиса добавлена настройкаServiceWorkerEnabled, посредством которой можно отключать регистрацию service worker в веб-клиенте. По умолчаниюtrue. - Копирование ссылок
tessa://в буфер обмена в desktop-приложениях теперь использует алиас текущего приложения из объектаIApplicationDescriptor. Это позволяет задействовать стандартные команды копирования в собственных приложениях, разработанных на проекте, у которых будет свой алиас. Например, если открыть карточку в таком приложении, то кнопка “Копировать ссылку” скопирует в буфер обмена ссылку на карточку с алиасом этого приложения. - Реализована возможность загружать файлы в карточки задач. Пример - в расширениях типового решения
TaskEnableAttachFilesExampleUIExtension,TaskFilesExampleGetExtensionиTaskFilesExampleStoreExtension. - В web-клиенте для элемента управления “Текст с форматированием” переработаны операции редактирования списков и добавлены команды “Очистить все форматирование” и “Удалить блок”.
- Написана статья базы знаний Создание настольного (desktop) приложения, использующего API TESSA.
- В web-клиенте для элемента управления “Текст с форматированием” убран нижний лимит для вставляемых изображений (был 10 пикселей) и улучшено сжатие изображений для превью.
Консольная утилита tadmin¶
- Из команды
ConvertConfigurationудалена функциональность конвертации экземпляров карточек и библиотек карточек. - Добавлена команда
ConvertCards. Данная команда преобразует файлы карточек и файлы библиотек карточек из старых форматов в новые (режимUpgrade), или обратно (режимDowngrade). Подробное описание команды содержится в руководстве администратора.
Новые версии библиотек¶
.NET 5.0.12CsvHelper 27.2.1DocumentFormat.OpenXml 2.14.0HtmlAgilityPack 1.11.39HtmlSanitizer 6.0.453ITfoxtec.Identity.Saml2.MvcCore 4.7.1Kerberos.NET 4.5.124linq2db 3.6.0Microsoft.CodeAnalysis.CSharp 4.0.1Microsoft.Data.SqlClient 4.0.0Microsoft.NET.Test.Sdk 17.0.0NLog 4.7.12NUnit3TestAdapter 4.1.0QRCoder 1.4.2StackExchange.Redis 2.2.88
Изменения API¶
- В web-клиенте добавлен метод
IControlViewModel.commitChanges, аналогичный методу в desktop-клиенте. - Расширено API, связанное с внутренней реализацией экспорта и импорта карточек. Добавлены интерфейсы:
IStorageMappingHandler,IStorageMappingResolver,IStorageMappingProvider,ICardExternalSourceLogic. Подробная информация в документации по API. - Делегаты в классе
PropertyGridSelectorSettingsсделаны асинхронными. Они используются при формировании настроек в конструкторе карточек, что актуально при разработке контролов, валидаторов и других элементов конструктора карточек. - Интерфейс
IEDSProviderи его реализация изменены для обеспечения расширяемости по выбору настроек для подписания и проверки подписи. Создайте класс, унаследованный отEDSProvider, и переопределите его методы. В них параметрinfoсоответствует параметрам запросаRequest.Infoдля типа запросаDefaultRequestTypes.CAdESSignature. Со стороны клиента напишите расширениеCardRequestExtension, использующееcontext.Request.Infoдля передачи информации из текущего объектаUIContext.Current(обычно из карточки). Пример таких расширений в руководстве разработчика. - В клиентскую команду “Открыть карточку” (
DefaultCommandTypes.OpenCard) добавлены необязательные параметрыTypeIDиTypeName, идентификатор и имя типа открываемой карточки соответственно. Подробная информация о клиентских командах содержится в руководстве разработчика в разделе “Маршруты”, в п. “Клиентские команды”. - Константа
WorkflowEngineHelper.ExtendedBusinessProcessTemplateTypeID, определяющая тип карточки “Расширенный шаблон бизнес-процесса”, помечена какObsolete. Она используется только для поддержки обратной совместимости с ранее экспортируемыми карточками. Вместо неё необходимо использовать константуCardHelper.BusinessProcessTemplateTypeID. - Усовершенствовано API тестов для сценариев удаления карточек с помощью объектов, реализующих интерфейс
ITestCardManager. - Усовершенствовано API тестов для сценариев работы с отложенными действиями.
- Добавлен интерфейс
IStorageValuesKeeper, механизм, который позволяет запоминать и восстанавливать значения из хранилища (storage) по заданным путям. Подробности с примерами в руководстве разработчика. - Добавлен сервис
IBackgroundServiceQueueдля выполнения неблокирующих фоновых задач в веб-приложении TESSA в качестве ASP.NET Core Hosted Service. - При регистрации расширений методом
WhenApplicationsуказанные идентификаторы приложений добавляются к списку идентификаторов приложений, заданных в предыдущей регистрации этого же расширения, а не переопределяют список. - Для контрола “Десятичное число” добавлена возможность изменить количество знаков после запятой посредством метода модели представления
DecimalBoxViewModel.SetDigitsAfterSeparatorAsyncв desktop-клиенте или через свойствоDecimalBoxViewModel.digitsAfterSeparatorв web-клиенте. - В метод
IConsoleLogger.LogExceptionAsyncдобавлен необязательный параметрwarning. Если его указать какtrue, то исключение выводится в лог NLog на уровне логирования Warn. - Добавлено свойство
IFormViewModel.TabVisibility, посредством которого в desktop-клиенте можно скрыть строку со вкладками карточки. - В контекст обработки
IWorkflowEngineContextи для компилируемого объектаWorkflowEngineCompiledBaseдобавлено свойствоParametersс типомIDictionary<string, object>, которое содержит все параметры выполняемого скрипта действия. Ключом для получения параметра является имя параметра скрипта. - В компилируемом объекте
IWorkflowEngineCompiledв методыExecuteActionAsyncиExecuteFuncAsyncдобавлен параметр с типомWorkflowActionMethodDescriptor, в котором необходимо передавать дескриптор запускаемого метода.
Исправления и оптимизации¶
- В web-клиенте исправлена ошибка в элементе управления “Текст с форматированием”, приводившая к некорректному расчету высоты и ширины вставляемых изображений, если они меньше максимально разрешенного размера.
- В web-клиенте в обсуждениях исправлена ошибка, приводившая к уменьшению размера шрифта ссылок в сообщении после редактирования.
- В web-клиенте исправлена ошибка, приводившая к тому, что кнопка “Развернуть” не отображалась в элементе управления “Текст с форматированием”, если включен режим “Только для чтения”.
- В web-клиенте исправлен баг, приводивший к появлению изменений в структуре карточки после открытия, если в ней есть элемент управления “Текст с форматированием” и из него были удалены изображения перед предыдущим сохранением.
- Оптимизировано использование типов диалогов посредством API в TessaClient и в конструкторах представлений и карточек в TessaAdmin.
- Исправлены утечки памяти и ошибки NRE, связанные с использованием типов диалогов в desktop-клиенте.
- В конструкторе бизнес-процессов в действии “Таймер” исправлена доступность поля “Условие остановки таймера” в ситуации, когда процесс не был заблокирован на редактирование.
- Исправлено формирование обратных ссылок в письмах мобильного согласования.
- Исправлена обработка пустого заголовка
Content-Encodingпри обработке ответов на запросы от Exchange Web Services. Исправление соответствует версии библиотекиMicrosoft.Exchange.WebServices.NETStandard 2.0.0-beta2. - В web-клиенте в контроле автокомплита исправлен ручной ввод.
- В API тестов исправлена ошибка в методе
TestCardHelper.RepairCardRowOrders, из-за которой не устанавливалось состояниеCardRowState.Modifiedпри изменении поля, содержащего порядковый номер. - В методе
KrProcessSharedHelper.RepairStorageRowsOrdersисправлена ошибка, приводившая к изменению поляOrder, а не указанного в параметреorderField. - В маршрутах исправлена ошибка при одновременном удалении и пропуске этапа.
- В маршрутах в шаблоне этапов “Возврат на доработку” исправлена локализация названия этапа “Управление процессом” при использовании локализации, отличной от русского языка.
- В маршрутах исправлена ошибка, которая приводила к некорректному определению наличия изменений в порядке существующих этапов после добавления ручного этапа. Ошибка появилась в версии 3.6.0.4.
- В конструкторе бизнес-процессов в таблице с кнопками исправлена проблема, когда в списках “Состояния” и “Доступно ролям” не удалялись дубли.
- В конструкторе бизнес-процессов исправлена проблема, когда положение контролов для редактирования расширений кнопки было некорректным, если в редакторе расширения кнопки использовались несколько вкладок.
- Кнопка “Копировать” в окне со списком загруженных расширений и патчей теперь копирует в буфер обмена информацию по патчам.
- Исправлены значения констант:
DefaultCardTypes.KrStageCommonMethodTypeNameиDefaultCardTypes.KrStageTemplateTypeName. Они содержали неправильные имена типов карточек. - Оптимизирована загрузка типов карточек для СУБД MS SQL Server.
- Оптимизирована работа плагина асинхронной обработки бизнес-процессов.
- Исправлена регистрация ряда расширений для классов
Registratorв методахInitializeExtensions, тогда как она должна выполняться в методеRegisterExtensions. - В API тестов исправлена ошибка, возникающая при удалении временного файлового хранилища во время инициализации тестов.
- Исправлены возможные ошибки с неосвобождаемыми блокировками на запись карточки и на запись настроек сотрудника из-за отмены запроса по
CancellationToken. - Исправлен скрипт миграции для версии 3.4.0, в котором не добавлялась секция
TaskCommonInfoдля заданий типаKrUniversalTask, используемых в этапах маршрутов “Настраиваемое задание”. Ошибка приводила к тому, что карточка с заданием этого типа переставала открываться. Актуально при обновлении с версии 3.3.1 или более ранней. - Исправлена ошибка, которая возникала при импорте карточки, когда прикрепленные файлы присутствуют только в сателлитах, но не в самой карточке.
- Исправлена отправка почты посредством Exchange, если в настройке
NoticeMailer.ExchangeFromуказана пустая строка. В этом случае используется настройкаNoticeMailer.ExchangeUserв соответствии с документацией. - В web-клиенте исправлена ошибка, из-за которой не очищался контрол выбора даты/времени.
- В web-клиенте исправлена работа фильтров представления с
decimalтипом. - В маршрутах исправлена ошибка, из-за которой этап, добавленный с помощью метода
IKrScript.AddStageAsyncилиIKrScript.GetOrAddStageAsync, изменял порядок после пересчёта маршрута. - В web-клиенте исправлено отображение длинных наименований карточки в диалоге при подтверждении удаления карточки.
- Исправлена ситуация, когда в топике форумов (обсуждений) пользователь мог видеть кнопку “Подписаться” вместо кнопки “Отписаться”, если он включён в участники обсуждения и через роль (посредством API), и как сотрудник.
- Исправлена обработка ошибок при отправке уведомлений по новым сообщениям в обсуждениях.
- Оптимизирован поиск отписавшихся от обсуждений пользователей в некоторых сценариях.
- Исправлена возможность заменить зависимость
IForumProviderStrategyв регистраторе расширений на сервере. Ранее зарегистрированная зависимость в контейнере Unity игнорировалась платформенными расширениями. - Исправлена ошибка, когда при экспорте карточки поверх уже имеющейся в экспортируемом файле происходило лишнее обновление информации.
- В процессе работы плагина конвертации файлов каждый период обслуживания теперь пересоздаются все объекты API и выполняется повторное чтение настроек из базы данных. Это предотвращает проблемы, когда изменённые настройки файловых хранилищ не актуализировались в Chronos, если он не перезапускался и не был настроен сброс кэшей посредством Redis. Период указывается в
app.jsonв настройкеFileConverter.MaintenancePeriod, по умолчанию это 1 час. - В конструкторе бизнес-процессов в действии “Настраиваемое задание” в таблице “Варианты завершения” исправлена проблема, из-за которой можно было добавить вариант завершения с неуникальным идентификатором.
- В маршрутах в этапе “Настраиваемое задание” в таблице “Варианты завершения” исправлена проблема, из-за которой можно было добавить вариант завершения с неуникальным идентификатором.
- В web-клиенте исправлена ошибка при SAML аутентификации, которая вызывала постоянные переходы на окно логина.
- В desktop-клиенте в контролах “Ссылка” и “Список” исправлено применение настройки “Расширенная локализация” при наличии настройки “Формат поля”.
- Устранена ошибка, из-за которой в контроле “Представление” не учитывалась сортировка, указанная в представлении.
- Асинхронный пересчёт участников при некоторых действиях в обсуждениях теперь выполняется посредством
IBackgroundServiceQueue, что гарантирует их корректное завершение при остановке веб-сервиса. - В схеме данных исправлена ошибка, когда при работе с файловой схемой данных при изменении имени или библиотеки программных объектов (функции, процедуры, миграции) старые файлы
*.ms.sqlи*.pg.sqlэтих объектов, при их наличии, не удалялись. - Исправлена ошибка, возникающая при попытке изменить участника обсуждения с типом “Роль” в ситуации, если права супермодератора не были запрошены в карточке, хотя фактически они есть.
- Исправлен файл
Fixes\KrApprovalList\KrApprovalList.csдля использования устаревших расширений на лист согласования для текущей версии API. - В web-клиенте исправлена ошибка, из-за которой выполнялись браузерные команды при многократном нажатии горячих клавиш карточки.
- Оптимизировано обращение к кэшам локализации, карточек и представлений сервером приложений.
- В web-клиенте исправлена проверка обновления Deski, где мог предлагаться даунгрейд на старую версию Deski в качестве обновления.
- В API тестов исправлена ошибка
ArgumentOutOfRangeExceptionпри удалении временного файлового хранилища. Ошибка возникала, если был снят флаг, разрешающий удаление временной базы данных (SetupTempDbAttribute.RemoveDatabase = false), и режим удаления временного файлового хранилища (TestBase.RemoveFileStorageMode) был установлен какRemoveFileStorageMode.Auto. - В обсуждениях (форумах) desktop-клиента исправлена установка цвета шрифта и цвета выделения текста при добавлении пункта списка в поле ввода сообщения.
- В обсуждениях (форумах) desktop-клиента исправлена установка атрибутов шрифта при вставке ссылки в поле ввода сообщения.
- В форумах desktop-клиента при вставке текста из буфера обмена в поле ввода сообщения теперь происходит обнуление отступов абзацев.
- Для команд и скриптов tadmin исправлена загрузка сборок, указанных в настройке
ProbingPathв файлеapp.json. - Оптимизирована конвертация файлов (например, для предпросмотра в формате PDF) при наличии большого количества файлов в базе данных.
- Исправлена конвертация файлов (например, для предпросмотра в формате PDF), если она выполняется для непоследней версии файла.
- В команде
tadmin PackageAppсообщение “Failed to load assembly, falling back to default alias and name” выводится на уровне логирования Warn вместо Error, поскольку оно не является критичной ошибкой. - В desktop-клиенте исправлено скрытие основной вкладки карточки (без алиаса) флажком “Скрыть”, и исправлена ошибка
IndexOutOfRangeException, если скрыта одна из вкладок левее основной. - Исправлена передача параметров пейджинга при выполнении представления для ссылочных параметров фильтрации.
- В web-клиенте исправлена ошибка при обращении к свойствам
tableTypeиrowSortingTypeклассаCardSection. - Исправлены миграции при переходе с версий младше 3.5.0 на текущую версию.
- В web-клиенте исправлена ошибка в элементе управления “Текст с форматированием”, приводившая к тому, что изображения в тексте отображались поверх тулбара, если элемент управления находился в режиме чтения.
- В web-клиенте исправлена ошибка, в некоторых ситуациях приводившая к невозможности сохранить карточку, если в элемент управления “Текст с форматированием” было добавлено изображение и удалено до сохранения карточки.
- В web-клиенте исправлена ошибка, из-за которой у сотрудника оставались права доступа на редактирование карточки после её передачи на следующий этап, на котором у сотрудника нет права на редактирование.
- В desktop-клиенте для контрола “Представление” исправлена работа флага “Разрешить прокрутку”.
- В desktop-клиенте в форумах (обсуждениях) исправлена ошибка, из-за которой при вводе сообщения и при копировании текста из внешнего источника не сохранялись переходы строки.
- В web-клиенте исправлена ошибка, из-за которой не заполнялась колонка “Настройки” в таблице “Кнопки бизнес-процесса”.
- В desktop-клиенте улучшено выравнивание вкладок карточки и контрола “Вкладки” для настройки размера шрифта Windows, отличного от 100%.
- В desktop-клиенте улучшено качество отображения картинок в контроле “Текст с форматированием” и в форумах (обсуждениях).
Обновление на новую сборку¶
- Обновите файл
app.jsonдля сервиса web: добавлена настройкаServiceWorkerEnabled. - После импорта конфигурации выполните компиляцию всех шаблонов файлов. Для этого откройте карточку любого шаблона файла, перейдите на вкладку “Расширения” и нажмите кнопку “Выполнить компиляцию всех шаблонов файлов”.
- При работе с СУБД MS SQL Server рекомендуется указать в строке подключения в app.json для tadmin, web и chronos параметр
Trust Server Certificate=true(параметры разделяются точкой с запятой). Вместо этого вы можете настроить сертификат СУБД в соответствии с рекомендациями в MSDN. - Добавлена поддержка дистрибутива Linux
Ubuntu 21.10. Полный список поддерживаемых дистрибутивов (с которыми тестировалась платформа) доступен в разделе документации Системные требования для серверов Linux. - В API тестов исправлена опечатка в методе
CardLifecycleCompanionExtensions.LoadWithtHiddenStages. Переименуйте места вызова метода в проектах с тестами. - Из системы был удалён виртуальный тип карточки “Расширенный шаблон бизнес-процесса”, который использовался в карточках шаблонов процессов при добавлении расширений на кнопки. Для импорта карточек данного типа добавлено расширение, поддерживающее обратную совместимость. Необходимо перевыгрузить шаблоны бизнес-процессов в репозиторий для обновления их типа карточки и структуры секций в репозитории.
- Логика сохранения токена сессии и сервиса локализации на веб-сервере вынесена из статического класса
WebHelperв объект с типомIWebContext. Получить текущийIWebContextможно с помощью объекта с типомIWebContextAccessor. - Удалены некоторые избыточные методы в классе
LinkHelper. Используйте перегрузки методаGetClientLinkвместо них. - Свойство
CardViewControlViewModel.ScrollWithModifiersудалено, прокрутка с зажатым Ctrl доступна для всех контролов “Представление”. Используйте свойствоEnableMouseScrolling, определяющее прокрутку мышью без зажатого Ctrl, в соответствии с флагом “Разрешить прокрутку”.
Изменения конфигурации при обновлении¶
-
Таблицы:
-
BusinessProcessButtonRolesVirtual(добавлена) -
BusinessProcessButtonsVirtual(добавлена) -
FmTopicParticipantRolesUnsubscribed
-
-
Библиотеки схемы:
-
FullTextSearch -
Standard solution -
Workflow
-
-
Типы:
-
BusinessProcessTemplate -
KrCheckStateWorkflowTileExtension -
WorkflowCheckRolesForExecutionTileExtension
-
-
Карточки:
ReturnForAmendingTemplate(необязательное изменение)
-
Изменены библиотеки локализации.