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

Патч 3.5.0.5 (26.12.2020)

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

  1. Изменены представления: Applications, AvailableDeputyRoles, AvailableDeputyUsers, BusinessProcessTemplates, DeputiesManagement, DurableRoles, KrFilteredStageGroups, KrPermissionsExtendedCards, KrPermissionsExtendedFiles, KrPermissionsExtendedMandatory, KrPermissionsExtendedTasks, KrSecondaryProcesses, KrStageGroups, KrStageTemplates, KrTypesForDialogs, LastTopics, MyTasks, MyTopics, ReportCurrentTasksRules, Roles, TopicParticipants, Users, WfResolutionAuthors.
  2. Изменены таблицы: ActionTypes, KrSecondaryProcessCommonInfo.
  3. Изменены функции: FormatAmount, GetString, Localization, Localize.
  4. Изменены типы: AdSync, Application, KrSecondarySatellite.
  5. Изменены карточки: ApprovalHistory, Default access rules (необязательное изменение), Default acquaintance access rule (необязательное изменение), PrintableApprovalHistory, SendProtocolTasksButton, Server settings (settings) (необязательное изменение).
  6. Изменены библиотеки локализации.
  7. Обновите файл app.json веб-сервиса: удалены настройки InstanceCheckSeconds и InstanceShutdownSeconds.
  8. Обновите файл app.json в Chronos: добавлен параметр “DeputiesRecalc.BulkSize”, который определяет количество записей замещения, загружаемых при каждой итерации синхронизации заместителей.
  9. В карточке “Настройки сервера” интервал, по которому TessaClient опрашивает сервер на наличие новых сообщений для форумов и обсуждений, был увеличен с 60 секунд до 5 минут. Вы можете импортировать карточку “Server settings (settings)” или изменить значение вручную.
  10. Обновите файлы Tessa.Extensions.Console.csproj, Tessa.Extensions.Shared.csproj, Tessa.Extensions.Default.Console.csproj, Tessa.Extensions.Default.Shared.csproj в проектных расширениях (папка Source\Extensions в сборке). В файлах исправлен скрипт PostBuildEvent для копирования библиотек расширений в папку Bin\Tessa.Extensions.Console.
  11. Методы добавления этапа в маршрут IKrScript.AddStage и IKrScript.GetOrAddStage заменены на асинхронные IKrScript.AddStageAsync и IKrScript.GetOrAddStageAsync, соответственно.

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

  1. В web-клиенте в контроле таблицы добавлен хоткей на клавишу Enter для закрытия диалога редактирования строки.
  2. В карточке “Настройки сервера” интервал, по которому TessaClient опрашивает сервер на наличие новых сообщений для форумов и обсуждений, был увеличен с 60 секунд до 5 минут.
  3. Плагин синхронизации заместителей теперь не загружает всю информацию о заместителях одномоментно, а рассчитывает заместителей, загружая некоторое количество записей замещения в память и синхронизируя заместителей в несколько итераций. Это оптимизирует потребление памяти при работе с базой данных, в которых большое количество записей о замещении в таблице RoleDeputies.
  4. При возникновении ошибок доступа в подсистеме правил доступа в детали ошибки добавлен вывод следующей информации: состояние карточки, идентификатор карточки и Digest карточки.
  5. Изменена логика работы клиентского поиска в представлении в расширении типа “Представление истории заданий”. Теперь фильтрация применяется не по нажатию на клавишу Enter, а автоматически с небольшой задержкой.
  6. В карточку настроек “Синхронизация AD / LDAP” добавлена подсказка по настройкам в таблице “Корневые элементы синхронизации (OU)”.
  7. Добавлен тип действия “Резервирование выделенного номера” в истории действий. Оно используется системой при восстановлении зарезервированного номера после возникновения ошибок сохранения.
  8. Утилита tadmin: в команду ManageRoles добавлен параметр “/bulk:bulkSize”, который определяет количество записей замещения, загружаемых при каждой итерации синхронизации заместителей.
  9. API: В объектную модель процесса маршрутов (класс WorkflowProcess) добавлены свойства AuthorCurrentProcess и ProcessOwnerCurrentProcess - автор и владелец текущего процесса.
  10. API: Добавлен базовый абстрактный класс расширения на сериализацию параметров этапов ExtraSourcesStageRowExtensionBase, предоставляющий методы для получения и сохранения информации о дополнительных методах этапов. Подробное описание доступно в руководстве разработчика в разделе Маршруты в п. “Создание дополнительного сценария этапа”.
  11. API: В методе CompilationHelper.FormatErrorIntoMember расширена поддержка элементов синтаксического дерева, для которых выполняется формирование строкового представления об ошибке компиляции, обработкой конструктора. В метод также добавлен необязательный параметр “memberKind” позволяющий указать тип искомого элемента синтаксического дерева.
  12. API: Методы добавления этапа в маршрут IKrScript.AddStage и IKrScript.GetOrAddStage заменены на асинхронные IKrScript.AddStageAsync и IKrScript.GetOrAddStageAsync, соответственно.
  13. API: Добавлен интерфейс IFileSignatureExporter, посредством которого можно переопределить алгоритм, по которому генерируется имя файла для подписи. Переопределите интерфейс в Unity, отнаследовавшись от класса FileSignatureExporter и переопределив метод GetSignatureFileNameAsync, чтобы изменить расширение файла подписи: (await this.GetSignatureFileNameWithoutExtensionAsync(context, index, cancellationToken).ConfigureAwait(false)) + “.sig”.
  14. API: Для узла рабочего места IWorkplaceViewComponent можно указать свойство ClearSelectionOnRefresh (bool), предотвращающее автоматический выбор первой строки или первой ячейки представления при её первом отображении или после обновления данных. Следует учитывать, что если выбранных строк нет, то detail-представления не заполняются. Установить свойство можно в любой момент, в т.ч. в методе Initialized для расширения на узел рабочего места IWorkplaceViewComponentExtension.
  15. API: В типы IRoleManager и IRoleManagerService в метод синронизации заместителей добавлен параметр “bulkSize”, определяющий количество записей замещения, загружаемых при каждой итерации синхронизации заместителей.
  16. API: Обновлены библиотеки: .NET Core 3.1.10.

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

  1. В web-клиенте исправлена ошибка локализации всплывающих подсказок в контролах карточки.
  2. В web-клиенте исправлена ошибка, из-за которой настройка “Формат поля” для больше чем 9 параметров не учитывалась.
  3. В web-клиенте исправлена ошибка, из-за которой в диалоге параметров представлений не работали горячие клавиши Esc и Enter.
  4. В модуле синхронизации с AD / LDAP исправлена ошибка синхронизации пользователей при совпадении хэша (не учитывались некоторые поля в Active Directory).
  5. В модуле синхронизации с AD / LDAP исправлена ошибка при синхронизации независимых элементов у пользователей.
  6. В модуле синхронизации с AD / LDAP добавлено логирование пользователей, которые будут заблокированы системой.
  7. В модуле синхронизации с AD / LDAP добавлена проверка, что AdSyncID заполнен при ручной синхронизации объектов.
  8. В конструкторе бизнес-процессов исправлена редкая ошибка обработчика привязок процесса, из-за которой обработчик прекращал работу.
  9. В маршрутах при настройке этапа “Диалог” в представлении для поля “Тип карточки” исправлена фильтрация по параметру “Алиас” для PostgreSQL.
  10. В маршрутах исправлена ошибка при определении роли, для которой выполняется пересчёт вторичного процесса при заданном владельце или инициаторе основного процесса. Ошибка появилась в версии 3.5.0.
  11. Оптимизировано взаимодействие с базой данных, чтобы открытие соединений выполнялось только асинхронно. Также для PostgreSQL было возможно открытие соединения и тут же его закрытие при создании объекта DbManager (при использовании пула соединений это было незаметно).
  12. Оптимизированы хранимые функции локализации для СУБД MS SQL.
  13. Исправлена ситуация, при которой TessaClient сохранял настройки отображения карточек (размер и положение области предпросмотра, области заданий, пустой области по краям и др.) на сервере для пользователя, даже если фактических изменений в настройках не было.
  14. Вместе с обновлением .NET Core исправлено появление предупреждения “Increasing the MaxRequestBodySize conflicts with the max value for IIS limit maxAllowedContentLength” в файле log.txt веб-сервиса при использовании IIS в качестве веб-сервера.
  15. В маршрутах исправлена ошибка, происходящая при завершении первого задания для повторно запущенного процесса, в котором была изменена группа этапов в одном из шаблонов этапов на группу, имеющую больший порядковый номер, чем заменяемая.
  16. Оптимизированы выборки со списками сотрудников (join к RoleUsers) в представлениях.
  17. Оптимизировано открытие карточки “Приложение” в TessaClient, поскольку группы файлов теперь свёрнуты по умолчанию.
  18. Исправлена проблема, когда Tessa Applications мог не закрывать сессию к основному серверу, если при загрузке локализации возникли ошибки.
  19. Исправлена проблема, которая приводила к ошибке ERANGE на сервере приложений Linux при попытке отправить уведомление по глобальному событию, где в процессе после перевода события в сигнальное состояние и до его перевода в несигнальное состояние могло возникнуть исключение, например, в случае асинхронной отмены по CancellationToken в процессе ожидания мьютекса. Исправление актуально для глобального кэша метаинформации.
  20. Исправлено обращение к свойству сессии session.Token со стороны веб-сервиса, если токен сессии отсутствует, где вместо значения null выбрасывалось исключение InvalidOperationException. Например, это может быть для контроллеров, используемых для интеграции с другими системами, в которых авторизация выполняется без открытия стандартной сессии.
  21. Оптимизированы выборки в представлениях с агрегацией строк посредством FOR XML PATH для MSSQL.
  22. В маршрутах в этапе “Уведомление” исправлена строка локализации, используемая при отображении ошибки компиляции для сценария изменения уведомления.
  23. Исправлена ошибка при генерации конструктора по умолчанию, выполняющего инициализацию дополнительных методов подсистемы маршрутов. Ошибка приводила к возникновению исключения KeyNotFoundException при ошибке компиляции конструктора по умолчанию.
  24. Исправлена ситуация, когда в результате использования метода StreamHelper.AcquireMemoryStream() могли удерживаться неиспользуемые блоки памяти большого размера. Теперь кэширование выполняется только для потоков, размер которых не превышает StreamHelper.MaxCachedSize (80 КБ в текущей реализации).
  25. Оптимизировано потребление памяти при использовании контекстной роли с большим количеством замещений совместно с объектом кэша ICardContextRoleCache. Например, это происходит при использовании контекстных ролей в правилах доступа, в бизнес-процессах или при отправке уведомлений.
  26. В web-клиенте исправлена ошибка, из-за которой настройки цвета заголовка контрола могли не применяться в карточке.
  27. Исправлена штатная остановка веб-сервиса посредством исключения OperationCanceledException, которое логировалось как ошибка.
  28. Исправлена ошибка при инициировании redirect с адреса web-клиента на страницу логина, если в ASP.NET Core присутствует Middleware, выполняемая перед TessaClientMiddleware, которая уже инициировала собственный redirect.
  29. Исправлены ситуации, при которых исключение OperationCanceledException, возникающее при асинхронной отмене действия, добавлялось в ValidationResult или логировалось, хотя не должно было, причём в ряде случаев исключение не выбрасывалось наружу метода, в котором было перехвачено.
  30. В маршрутах исправлена ошибка при создании этапа с использованием метода IKrScript.AddStage или IKrScript.GetOrAddStage, из-за которой не выполнялась инициализация параметров созданного этапа значениями по умолчанию.
  31. Исправлен скрипт миграции Migration-3.5-pre.ms.sql для корректного сквозного обновления на сборку 3.5.0 или старше с пропуском обновления до нескольких предыдущих сборок. Ошибка воспроизводилась для MS SQL Server 2016 или старше.
  32. Исправлена карточка “Печатный лист согласования” в типовом решении, в которой по ошибке было указано ограничение для использования в типе “Договор”.
  33. Исправлены обычный и печатный листы согласования при выводе информации по заданиям доп. согласования для записей в истории заданий, где заполнена колонка UserPosition (должность удваивалась).
  34. Исправлены ситуации, когда при закрытии сессии администратором могла возникнуть ошибка “Session token is unavailable in HttpContext”.
  35. Исправлена сериализация/десериализация типов данных DateTime в json, где мог неправильно учитываться DateTimeKind. Ошибка исправлена в методах CardMetadataHelper.ToString() и CardMetadataHelper.Parse().
  36. Исправлена ошибка “No credentials are available in the security package”, которая может возникать при подключении Tessa Applications к серверу IIS, в котором включена Windows-аутентификация, но она не выполняется для текущего пользователя.
  37. Исправлен файл Fixes\KrApprovalList\KrApprovalList.cs для использования устаревших расширений на лист согласования для текущей версии API.
  38. Исправлен метод присваивания свойства card.TaskHistoryGroups у объекта карточки Card. Он по ошибке присваивал TaskHistory в storage-объекте.
  39. Исправлена ситуация, когда в диалоге “Мои настройки” при первом изменении списка уведомлений настройки не сохранялись, если таблица условий не заполнена.
  40. В TessaAdmin исправлено отображение редактируемых узлов рабочих мест с несколькими вкладками. Выбранная вкладка могла сбрасываться при переключении между узлами, в каждом из которых есть вкладки.
  41. Исправлено поведение представлений-диаграмм в связке master-detail, например, в типовом решении это диаграмма “Просроченные задания”. По умолчанию сегмент диаграммы не выделен, поэтому detail-представления не заполняются. Когда пользователь выбирает сегмент диаграммы, то detail-представления заполняются данными этого сегмента, а если нажать на сегмент ещё раз, то он перестаёт быть выбранным и detail-представление очищается. Ранее при открытии узла был выбран первый сегмент диаграммы, хотя он не выглядел выбранным, и при повторном нажатии по выбранному сегменту визуально выделение снималось, но detail-представления не очищались.
  42. В модуле Обсуждения на сервере удалено лишнее логирование ValidationResult.
  43. В маршрутах в этапе “Ветвление” и “Управление ветвлением” исправлена ошибка NRE. Ошибка происходит при выполнении указанных этапов в основном процессе, если при создании строки секции KrConstants.KrForkSecondaryProcessesSettingsVirtual.Synthetic в сценарии инициализации, не задано значение поля KrConstants.StageRowID. Поле KrConstants.StageRowID секции KrConstants.KrForkSecondaryProcessesSettingsVirtual.Synthetic должно устанавливаться равным идентификатору текущего этапа. Информация о настройке данных этапов содержится в руководстве администратора в разделе “Маршруты документов” в пунктах “Ветвление” и “Управление ветвлением” соответственно.
  44. В TessaClient исправлено спорадическое дублирование элементов рабочего места в диалоге выбора из представления.
  45. Исправлены проблемы с многопоточным доступом к dynamic-свойствам объекта Card после вызова EnsureCacheResolved. Это актуально для карточек настроек и карточек контекстных ролей из ICardContextRoleCache.
  46. Оптимизирована хранимая функция FormatAmount для СУБД MS SQL.
  47. Исправлено обращение к локализации при построении метаинформации, которое могло привести к deadlock при запуске сервиса.
  48. В web-клиенте исправлена ошибка, из-за которой в контроле карточки “Таблица” событие rowEditorClosing не вызывалось повторно при установке event.cancel = true.
  49. Исправлено редактирование и сохранение библиотек локализации в части ограничений на длину текстовых полей в символах: имя библиотеки локализации - 128, имя строки локализации - 128, комментарий строки локализации - 512, значение для указанного языка - 1024.
  50. Исправлена ошибка при отправке или получении почты в Exchange по https, если клиент (на котором выполняется Chronos) не доверяет сертификату сервера.
  51. При отправке почты по SMTP, если не указана настройка “SmtpDefaultCredentials” = true и если не заданы логин/пароль, то отправка выполняется без аутентификации. Ранее в этом случае выполнялась аутентификация Kerberos/NTLM.
  52. Исправлена ситуация, когда из-за CancellationToken, выброшенного при взятии блокировки на карточку, блокировка не могла быть освобождена, т.к. соединение с БД было закрыто к моменту освобождения блокировки. Ошибка появилась в сборке 3.5.0.
  53. Исправлена ошибка CLIPBRD_E_CANT_OPEN при обращении к методу Clipboard.GetDataObject(). Ошибка могла приводить к падению приложения TessaAdmin, а также к ошибкам при вставке из буфера в контролах “Список файлов” и “Текст с форматированием”.
  54. Метод IFileContent.IsModified() теперь возвращает false, если для объекта ранее был вызван Dispose(). Этот метод семантически аналогичен свойству, поэтому выбрасывание исключения ObjectDisposedException могло привести к непредусмотренным побочным эффектам в коде расширений.
  55. В web-клиенте исправлена ошибка, из-за которой некоторые плитки на создание карточек могли отображаться, даже если карточки были недоступны для создания.
  56. В web-клиенте исправлена ошибка, из-за которой в компоненте UIButton не учитывалось свойство IsEnabled.
  57. В TessaClient для заголовка диаграммы и для строк в легенде диаграммы выполняется локализация с форматированием, что позволяет локализовать плейсхолдеры {$Alias}, которые могут присутствовать в названиях ролей.
  58. Исправлено имя строки подключения по умолчанию в сообщениях об ошибках Configuration string “default” is not found/has an empty connection string.
  59. В TessaClient и TessaAdmin исправлена работа параметров фильтрации представлений для нестандартных числовых типов: Byte, SByte, Int16, UInt16, UInt32, UInt64. В некоторых случаях ввод был заблокирован, в других - выставлены некорректные ограничения на диапазоны вводимых чисел или отсутствовало значение по умолчанию.
  60. В TessaClient и TessaAdmin исправлена работа параметров фильтрации для ввода отрицательных чисел.
  61. Исправлено использование поля в карточках с типом данных DateTimeOffset для СУБД PostgreSQL.
  62. Исправлена проблема, когда некорректно работала настройка “Всегда проверять правило доступа” с флагом “Редактировать карточку” при наличии взятого в работу задания “На согласование” без дополнительно выданных прав доступа на редактирование в настройках этапа.
  63. Исправлена ошибка при отображении контролов “Представление”, “Контейнер” и “Вкладки” в диалоговых окнах.
  64. В представлениях исправлена передача параметров с типами UInt16, UInt32 и UInt64 для СУБД PostgreSQL.
  65. В скриптах установки и обновления при импорте карточек, для которых было выполнено автоматическое исправление структуры, предупреждение по таким исправлениям не выводятся в файл лога.
  66. Исправлена структура типовых карточек правил доступа, чтобы исключить автоматическое исправление их структуры при импорте.
  67. В desktop-приложениях исправлена ошибка при закрытии окна через нажатие Esc, когда для него уже выводится диалог вида “вы хотите закрыть окно? да/нет”.
  68. Удалён метод-расширение unityContainer.RegisterEDS(). С версии сборки 3.5.0 регистрация интерфейсов IEDSManager и ICAdESManager выполняется в регистраторе типового решения.
  69. Реализацию провайдера ЭП можно получить по интерфейсу IEDSManager (помимо реализации для ICAdESManager), как это было в сборке 3.4.0 и ранее.
  70. В контроле “Представление” исправлена ошибка при отображении значения параметра, в который через маппинг передается значение из колонки master-представления.
  71. В контроле “Представление” исправлена ошибка, из-за которой кнопки для изменения страницы при постаничном отображении были неактивны, пока на них не нажали.
  72. Исправлена ошибка в контроле “Представление”, из-за которой в detail представлении не сбрасывался номер страницы при изменении выбранной строки master представления.
  73. Исправлены ошибки в контроле “Представление” в режиме опционального постраничного вывода.
  74. В web-клиенте исправлена ошибка, из-за которой кнопки в этапе “Диалог” вторичных процессов могли функционировать некорректно.
  75. В маршрутах в этапе “Ветвление” исправлена ошибка при повторном запуске этапа путём выполнения перехода на этот этап или расположенный перед ним синхронный этап после завершения ветки с отзывом оставшихся веток. Ошибка возникала если между синхронным этапом, на который был выполнен переход, и этапом “Ветвление” не было асинхронных этапов.
  76. Исправлено возможное зависание сервера приложений из-за взаимной блокировки между кэшами в момент их заполнения в разных потоках, если при заполнении данных одного из кэшей возникает построение другого кэша.
  77. Исправлена обработка исключений при импорте карточек в TessaClient и TessaAdmin, когда вместо текста исходного исключения отображалась ошибка вида “Ключ CardID отсутствует в словаре”.
  78. В элементе управления “Представление” при опциональном постраничном отображении по умолчанию включается постраничное отображение.
  79. Исправлено сохранение карточки с файлами на сервере, если используется ICardFileManager совместно с репортингом прогресса операции container.StoreAsync(updateProgressAsync, updateProgressMillisecondInterval), или если используется сохранение посредством ICardStreamClientRepository. В этом случае репортинг прогресса выполнялся в отдельном потоке на том же соединении с базой данных, что и сохранение карточки, и это могло привести к ошибкам.
  80. В web-клиенте исправлена ошибка с пробрасыванием токена прав доступа KrToken, если карточка сохраняется с обновлением, при этом после обновления загружается другая карточка (например, карточка-сателлит задания).
  81. Исправлена ошибка, когда токен прав доступа KrToken пробрасывался в загружаемую с клиента карточку, даже если карточка отличается от текущей открытой. Такая ситуация возможна, если клиентским расширением загружается другая карточка.
  82. Исправлены действия с номерами при сохранении или импорте карточки, а также при выделении номера из контрола “Нумератор”, если существует расширение CardStoreExtension, зарегистрированное в WithOrder(AfterPlatform), которое в методе BeforeCommitTransaction приводит к ошибке сохранения.
  83. Исправлена ошибка при резервировании номера, если последовательность не содержит доступных интервалов.
  84. Исправлено открытие карточки динамической или метароли после пересчёта по кнопке “Пересчитать роль сейчас”. Ошибка воспроизводилась, если карточка ни разу не сохранялась.
  85. Добавлен вертикальный скроллинг в поле “Комментарий” в окне записи истории заданий в desktop-клиенте.
  86. В обсуждениях для участника обсуждения в режиме только для чтения запрещено редактировать и цитировать сообщения.
  87. В обсуждениях исправлено получение файлов из сообщений, если до этого не была открыта вкладка с обсуждениями.
  88. В обсуждениях при добавлении участников больше не добавляются заместители сотрудников.
  89. В web-клиенте исправлено указание языка сотрудника при выполнении представлений в некоторых случаях. При этом вместо сортировки по локализованной строке могла выполняться сортировка по алиасу строки локализации, что обычно соответствовало английскому языку, но не русскому.
  90. В конструкторе бизнес-процессов исправлена ситуация, когда идентификатор подписки запуска процесса изменялся при изменении процесса, но без изменения действия старта процесса.
  91. В конструкторе бизнес-процессов исправлена проблема, из-за которой сигналы, отправленные из редактора экземпляра процесса, не переходили по связям.
Back to top