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

Патч 3.5.0.7 (13.03.2021)

Переход на новую сборку

  1. Изменены представления: KrFilteredStageGroups, KrFilteredStageTypes, ProtocolCompletedTasks, TopicParticipants.
  2. Изменены таблицы: DocumentCommonInfo, FmTopicParticipantRolesUnsubscribed, FmUserStat, KrPermissionExtendedCardRuleFields, KrPermissionExtendedFileRuleCategories, KrPermissionExtendedMandatoryRuleFields, KrPermissionExtendedMandatoryRuleOptions, KrPermissionExtendedMandatoryRuleTypes, KrPermissionExtendedTaskRuleFields, KrPermissionExtendedTaskRuleTypes, KrVirtualFiles, KrVirtualFileVersions, ProtocolResponsibles, Roles (необязательное изменение), TaskHistoryGroups, WorkflowCounters, WorkflowEngineSatellite (удалена).
  3. Изменены процедуры: CalendarPrepareQuants.
  4. Изменены функции: CalendarAddWorkingDaysToDateExact.
  5. Изменены типы: KrSecondaryProcess.
  6. Изменены карточки: StartProcessButton.
  7. Изменены библиотеки локализации.
  8. Обновите файл app.json веб-сервиса: добавлены настройки RoleTimeoutTimeSpan и WebRazorReferences.
  9. Обновите файл app.json Chronos: добавлена настройка RoleTimeoutTimeSpan.
  10. Для кнопки маршрутов “Запустить процесс” указан скрипт в поле “Условное выражение”, скрывающий кнопку для типов “Протокол”. Если в проектном решении требуется использовать вкладку “Маршруты” и запуск основного процесса маршрута, то удалите в скрипте следующую строку: && card.TypeName != “Protocol”.
  11. Все типы были перевыгружены в папку Configuration\Types, при этом пустые строки “” заменены на null, что соответствует исправленному поведению при экспорте типов. При этом важные изменения есть только в указанных выше типах, все остальные типы можно не заменять в проектном репозитории, чтобы не выполнять слияние изменений.

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

  1. В маршрутах изменено отображение окна выбора типа добавляемого этапа. Если доступна одна группа и один тип этапа, то окно выбора этапа не отображается.
  2. В web-клиенте в разделе “Участники” в обсуждениях добавлено контекстное меню для изменения и удаления участников.
  3. В файле app.json веб-сервиса добавлена настройка “WebRazorReferences”. В ней перечисляется список библиотек или папок с библиотеками, которые добавляются в компилируемые страницы .cshtml. Укажите папку “extensions”, чтобы добавлять ссылки на расширения в таких страницах. Папки или файлы перечисляются в кавычках через запятую. Путь рассчитывается относительно папки с веб-сервисом (аналогично настройке “WebControllers”), и также может быть указан полный путь.
  4. В файлы app.json для веб-сервиса и Chronos добавлена настройка RoleTimeoutTimeSpan, определяющая таймаут длительных SQL-запросов, связанных с ролями, таких как пересчёт замещений, динамических ролей и метаролей. По умолчанию указано 30 минут. В предыдущих версиях системы этот таймаут не настраивался и был равен 10 минутам, что могло приводить к проблемам для крупных проектов.
  5. Добавлена поддержка импорта подписей в pem-формате.
  6. API: В метод-расширение waitHandle.ToTask() добавлен опциональный параметр timeout для таймаута ожидания. Вызов await waitHandle.ToTask(timeout) возвращает true, если ожидание завершилось без таймаута, или false, если при ожидании произошёл таймаут.
  7. API: Модель представления окна выбора типа добавляемого этапа (StageSelectorViewModel) перенесена из Tessa.UI.Controls.StageSelector в Tessa.Extensions.Default.Client.Views.StageSelector.
  8. API: Добавлен метод AssemblyLoaderHelper.AddSuppressResolveFailWarningForAssembly для того, чтобы не выводить предупреждения в логе по указанной сборке при невозможности её загрузить.
  9. API: Для контрола “Таблица” в desktop-клиенте в класс GridViewModel добавлен метод UpdateColumnsAsync(). Вызовите метод после изменения списка колонок для карточки, которая уже была отображена.
  10. API: При добавлении исключений в IValidationResultBuilder теперь есть возможность указать сообщение в параметре message, которое будет выведено в основной части сообщения, тогда как полный текст исключения доступен в деталях. Для добавления исключений рекомендуется использовать метод-расширение AddException.
  11. API: Добавлено свойство GridViewModel.FilterRowFunc, используя которое можно не отображать некоторые из строк в таблице, которые присутствуют в виде моделей и моделей представлений в коллекциях карточки и элемента управления.
  12. API: Для определения расширения файла, хранящегося в базе данных MS SQL, более не используется хранимая функция GetFileExt. Для этого используется метод CardDatabaseContentStrategy.GetFileExtensionWithDotAsync, который можно переопределить в классе-наследнике.
  13. API: Обновлены версии библиотек JavaScript, в которых исправлены проблемы, связанные с безопасностью.
  14. API: Для интерфейса IFileControl и класса TaskWorkspaceViewModel добавлена поддержка интерфейса ISupportUnloading с событием Unloaded, которое выполняется, когда элемент управления более недоступен.
  15. API: Для аргументов события в интерфейсе ISupportUnloading.Unloaded добавлено свойство e.ValidationResult, в которое возможно добавлять ошибки и другие сообщения. Они будут залогированы после того, как все элементы управления были выгружены вызовом Unload().
  16. API: Добавлен интерфейс IKrCreateBasedOnHandler, посредством которого выполняется создание карточки на основании другой карточки для документов типового решения. Используя этот интерфейс, упрощается вызов этой функциональности, а также появляется возможность заменить её регистрацию в Unity.
  17. API: В запрос на создание карточки newRequest.Info для создания на основании другой карточки (функциональность для документов типового решения) вместо идентификатора исходной карточки KrCreateBasedOnHelper.CardIDKey можно передать структуру карточки, на основании которой выполняется создание, для этого по ключу KrCreateBasedOnHelper.CardKey надо записать card.GetStorage(), чтобы карточка не загружалась из БД. Это удобно использовать в скриптах маршрутов и бизнес-процессов.
  18. API: Обновлены библиотеки: .NET Core 3.1.13, BarcodeLib 2.2.10, HtmlAgilityPack 1.11.31, NLog 4.7.8, NLog.Web.AspNetCore 4.11.0, Npgsql 4.1.8, Swashbuckle.AspNetCore 5.6.3, UAParser 3.1.46.

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

  1. Исправлено возможное зависание клиентского приложения (TessaClient, TessaAdmin), если открыть окно, в нём - дочернее модальное окно, потом через панель задач переключиться на первое окно и закрыть его клавишей Esc. Например, открыть существующую строку контрола “Таблица”, в нём через троеточие в контроле “Список” открыть выбор представления, через панель задач переключиться на окно строки таблицы и нажать Esc.
  2. Для AppManager исправлено скачивание обновлений для приложений и для самого AppManager, если дата изменения приложения на сервере отличается от даты скаченного локально приложения в меньшую сторону. Например, если изменить основной сервер, на котором AppManager опубликован раньше по времени, чем на предыдущем основном сервере, то после перезапуска Tessa Applications до исправления он не скачивал AppManager с нового сервера, теперь он будет его скачивать и обновлять.
  3. В web-клиенте исправлена ошибка при открытии на чтение виртуальных файлов в карточке.
  4. Для реестра “Протоколы” в дочернем представлении “Задания” исправлен вывод списка заданий, которые отправлялись по кнопке “Разослать задачи по решениям”. Также изменён порядок колонок “Вариант завершения” и “Результат”.
  5. Исправлены скрипты обновления платформы Upgrade.bat/upgrade.sh таким образом, чтобы перед взаимодействием с веб-сервисом был выполнен сброс кэшей схемы данных (и связанных с ним кэшей карточек). Схема данных ранее импортировалась скриптом посредством прямого соединения с БД, что могло привести к неконсистентному состоянию импортированных типов карточек по отношению к содержащейся в кэше старой схемы данных.
  6. Исправлена проблема, из-за которой при возникновении ошибок доступа в подсистеме правил доступа детали ошибки не добавлялись при создании и загрузке карточки.
  7. Исправлена обработка ссылок Tessa Applications при наличии указанного в ссылке неизвестного сервера или алиаса приложения tessa://application.server/… Ранее приложение закрывалось после отображения ошибки.
  8. Исправлена редкая ошибка “Safe handle has been closed”. Ошибка могла возникать при ожидании событий вежливой остановки плагинов Chronos посредством объекта GlobalEventAwaiter.
  9. Исправлена ситуация, когда кэш представлений наполнялся на текущем открытом соединении в dbScope, в котором может быть незакрытая транзакция, или соединение могло быть открыто к другой БД. Теперь кэш всегда наполняется на отдельном соединении с БД.
  10. В web-клиенте исправлена ошибка, из-за которой не обновлялось время последнего прочтенного сообщения при первом, после запуска клиента, открытии топика.
  11. В маршрутах в типе карточки “Вторичный процесс” исправлено отображение поля “Дополнительные настройки видимости”/”SQL условие”.
  12. При получении и при отправке почты посредством Exchange исправлены проблемы с аутентификацией при наличии redirect, если Chronos выполняется на ОС Linux.
  13. Исправлена ошибка, из-за которой при удалении карточки проверка прав на удаление производилась без переданного в запросе токена.
  14. В web-клиенте исправлена проблема, которая могла приводить к cors-ошибкам браузера при saml аутентификации.
  15. Оптимизировано удаление некоторых типовых карточек и строк в таблицах, где имелся внешний ключ FK на таблицу без индекса.
  16. Исправлена работа функции CalendarAddWorkingDaysToDateExact для СУБД PostgreSQL.
  17. В редакторе схемы исправлена проблема, когда при изменении в настройках ссылочной колонки полей “Разряженная” или “Идентификатор строки” система не определяла данную колонку как измененную.
  18. Исправлен запуск Tessa Applications по ярлыку при уже свернутом в трее приложении, если оно было запущено при запуске Windows.
  19. Исправлено вычисление расширения файла в колонке FileContent.Ext для файлов, хранящихся в базе данных MS SQL, если имя файла содержит специальные символы Unicode, например, если в имени используется символ “й”, который был введён в web-клиенте на macOS.
  20. Исправлено отображение ошибки при выборе файла в качестве фонового изображения TessaClient, если формат файла не поддерживается. Ошибка появилась в сборке 3.5.0.
  21. В правилах доступа исправлена редкая ошибка, когда расширенные настройки правил доступа некорректно рассчитывались при наличии множества правил с разными приоритетами.
  22. При возникновении ошибок доступа в подсистеме правил доступа в детали ошибки дополнительно теперь указывается тип карточки.
  23. В маршрутах в карточке вторичного процесса исправлена индикация блоков звёздочкой в заголовке “Дополнительные настройки видимости” и “Дополнительные настройки выполнения”, если они содержат сценарии.
  24. Оптимизирована проверка доступа создания подписок на типы уведомлений.
  25. Исправлена ошибка, когда заместитель автора переставал видеть задание от имени автора, если он не является исполнителем, и задание взято в работу.
  26. Исправлена ошибка, из-за которой кнопка “Предпросмотр без расширений” в “Расположении блоков” выполняла предпросмотр с расширениями.
  27. Исправлено сообщение об ошибке в ситуации, когда для контрола карточки настроен маппинг с параметром представления, связанный с таким полем карточки, которое было включено в тип на момент добавления, но было удалено из типа к моменту использования.
  28. В web-клиенте в маршрутах в карточке вторичного процесса исправлена индикация звёздочкой в заголовке блоков “Дополнительные настройки видимости” и “Дополнительные настройки выполнения”, если они содержат сценарии.
  29. В web-клиенте исправлена ошибка, приводившая к тому, что в карточке “Тип документа” при снятии флага “Использовать систему обсуждений” флаг “Использовать стандартную вкладку “Обсуждения” не скрывался.
  30. При выгрузке типов карточек в формате .jtype исправлена ситуация, когда свойство Form контрола “Таблица” могло выводится то как null, то как пустой объект. Теперь всегда выводится null.
  31. Исправлена возможная ошибка InvalidCastException при добавлении этапов согласования в скриптах маршрутов без указания доп. согласующих.
  32. В модуле синхронизации AD / LDAP исправлена синхронизация состава подразделения.
  33. Исправлено указание context.CancellationToken в расширениях на карточки. Теперь токен асинхронной отмены операции корректно пробрасывается в контекст из вызывающей операции.
  34. Исправлено копирование таблицы условий при копировании карточек “Правило доступа” и “Виртуальный файл”.
  35. Исправлен вызов команды tadmin ImportTypes с указанием имени файла вместо имени папки. При этом команда пыталась импортировать файл сразу в двух форматах: .jtype и .tct. Ошибка появилась в сборке 3.1.0.
  36. Исправлены утечки памяти и другие побочные эффекты для контролов “Список файлов” и для контролов “Представление” с расширением на список файлов, если контрол расположен на форме задания, для которой выполняется переключение между формами (например, переход в форму варианта завершения и возврат из неё).
  37. В модуле синхронизации с AD/LDAP исправлена массовая блокировка пользователей при обработке нескольких операций синхронизаций, выполняемых за один запуск плагина.
  38. Исправлена утечка памяти при создании и копировании карточки в TessaClient при наличии расширений, подписывающихся на структуру карточки context.Card. Проблема могла проявляться после создания карточки, включённой в типовое решение.
  39. Исправлено ошибка NRE в TessaAdmin при создании рабочего места в режиме просмотра.
  40. В web-клиенте исправлена ошибка, из-за которой боковые панели иногда не закрывались при переключении вкладок.
  41. В web-клиенте исправлена работа пунктов меню “Добавить участников” и “Добавить роль” в обсуждениях.
  42. В web-клиенте в обсуждениях исправлена неработающая опция меню “Отписаться от уведомлений”.
  43. В web-клиенте в обсуждениях исправлена ошибка, из-за которой не выполнялось изменение опций меню “Подписаться на уведомления” и “Отписаться от уведомлений” после изменения состояния подписки на уведомления.
  44. Оптимизирован пересчёт календаря.
  45. Исправлена ошибка, когда в карточке “Настройки сервера” дублировались строки настроек файловых хранилищ при загрузке карточки через ICardCache в расширениях TessaClient.
  46. Исправлено добавление в объект ValidationResult информации по исключению, у которого сообщение exception.Message является пустой строкой.
  47. В маршрутах в этапе “Ветвление” исправлена ошибка “KrAsyncProcessRunner: The first stage of the route is not defined”. Ошибка происходит при изменении карточки в скрипте инициализации этапа “Ветвление”.
  48. Исправлены отсутствующие строки локализации в представлениях.
  49. Исправлена ошибка расчета прав при подписке на уведомления по документу. Из-за ошибки, подписаться на уведомления мог только сотрудник, у которого также были права на создание документа этого типа.
  50. Исправлено кодирование русскоязычных имён файлов, приложенных к письмам, которые отправляются по протоколу SMTP. При этом улучшена совместимость со старыми почтовыми клиентами, которые могли не распознавать имя и выводить его как “Вложение без имени 00309.pdf”.
  51. В web-клиенте исправлен расчёт положения выпадающих списков при наличии полосы прокрутки в карточке.
  52. При экспорте типов карточек в файлы jtype исправлены ситуации, когда пустые строки в настройках иногда экспортировались как null, а иногда как пустые строки. Теперь они всегда экспортируются как null.
  53. В представлениях исправлена редкая ошибка, из-за которой при переходе между страницами некоторые кнопки оставались неактивными.
  54. Для типовых карточек “Протокол” скрыта кнопка “Запустить процесс”, которая всегда приводила к ошибке запуска из-за отсутствия этапов маршрута, поскольку пользователь не мог их добавить. Если в проектном решении требуется использовать вкладку “Маршруты” и запуск основного процесса маршрута, то удалите в скрипте следующую строку: && card.TypeName != “Protocol”.
  55. Исправлено отображение названий карточек в диалоге импорта, в именах которых есть символы подчёркивания.
  56. В web-клиенте исправлена ошибка, из-за которой в настройках этапа отображалась неиспользуемая настройка “Вернуть на роль: ” с пустым значением роли.
  57. Исправлено удаление ролей рабочих мест в TessaAdmin.
  58. Исправлено сохранение карточки при закрытии вкладки в TessaClient (при ответе “Да” на вопрос о сохранении изменений при закрытии), где при наличии ошибок валидации или при отмене сохранения в методе расширения Saving вкладка всё равно закрывалась.
Back to top