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

Версия 3.3.1 (16.07.2019)

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

  1. Изменены представления: TaskHistory, TaskTypes.
  2. Изменены библиотеки локализации.
  3. Изменены таблицы: KrAddFromTemplateSettingsVirtual (добавлена), KrNotificationSettingVirtual, KrProcessStageTypes, KrRegistrationStageSettingsVirtual, KrStageBuildOutput, KrStageTemplates, KrStageTemplateGroupPosition, WorkflowEngineLogs.
  4. Изменены типы карточек: KrAddFileFromTemplateStageTypeSettings (добавлен), KrHistoryManagementStageTypeSettings (переименован из KrHistoryManagement), KrNotificationStageTypeSettings, KrRegistrationStageTypeSettings, KrSecondaryProcess, KrSettings, KrStageTemplate, KrTemplateCard (добавлен), KrTypedTaskStageTypeSettings, WorkflowAddFileFromTemplateAction.
  5. Изменены карточки: CancelButton, CancelGroup (удалена), CancelTemplate (удалена), DepartmentCondition, DeregisterButton, DeregisterGroup (удалена), DeregisterTemplate (удалена), DocStateCondition, FullRecalcRouteButton, InitiatorCondition, ProtocolBranchPure (добавлена), ProtocolDecisions (добавлена), RebuildButton, RebuildGroup (удалена), RebuildTemplate (удалена), RegisterButton, RegisterGroup (удалена), RegisterTemplate (удалена), RejectButton, RejectGroup (удалена), RejectTemplate (удалена), SendProtocolTasksButton (добавлена), Standard solution (включите флажок “Использовать маршруты” для типа карточки “Протокол”), StartProcessButton, StartProcessGroup (удалена), StartProcessTemplate (удалена).
  6. Изменён конфигурационный файл app.json для веб-сервисов (Services/app.json и linux/web/app.json) и сервисов Chronos (Chronos/app.json и linux/chronos/app.json).
  7. Изменены файлы тем интерфейса в подпапке themes для приложения TessaClient.
  8. Был исправлен скрипт миграции при миграции со сборок перед 2.6 на текущую сборку. Выполняйте сквозную миграцию на текущую сборку, например, с 2.5.3 сразу на 3.3.1, минуя предыдущие сборки.
  9. Для работы в web-клиенте функции со ссылками в виртуальном файле “Лист согласования” заполните базовый адрес web-клиента в карточке “Настройки сервера”. Если адрес не заполнен, то ссылки в web-клиенте не отображаются.
  10. Изменён файл проекта с плагинами Chronos Tessa.Extensions.Chronos.csproj, чтобы все xml-файлы плагинов из папки configuration добавлялись в выходную папку. Изменять файл проекта необязательно, но это может быть удобно при появлении новых плагинов в вашем проектном решении.
  11. В коде расширений используйте интерфейс ICurrentUserViewService вместо интерфейса ICurrentUserViewWebService, который был удалён.
  12. В коде расширений для объекта DbManager используйте метод Execute<T> вместо ExecuteScalar, ExecuteScalar<T> и ExecuteObject, и метод ExecuteList<T> вместо ExecuteScalarList<T>. Методы ExecuteScalar<T> и ExecuteScalarList<T> сохранены для обратной совместимости, методы ExecuteScalar и ExecuteObject<T> удалены.
  13. В коде расширений многие синхронные методы заменены на асинхронные. Если при обновлении вы столкнётесь с отсутствующим платформенным методом, то допишите к концу его имени Async и вызовите на результате метода .GetAwaiter().GetResult(). Например, замените вызов operationRepository.IsAlive(id) на operationRepository.IsAliveAsync(id).GetAwaiter().GetResult(). На результирующем объекте Task не вызывайте метод Wait() или свойство Result, т.к. это приводит к упаковке результата исключения в AggregateException, что усложняет его проверку и стек-трейсы при логировании; вызов .GetAwaiter().GetResult() аналогичен этому методу или свойству, но исключение передаётся в исходном виде. Также вы можете переписать свой метод на асинхронный: укажите ключевое слово async в методе, задайте Task или Task<T> в качестве возвращаемого результата, допишите к имени метода Async (это соглашение, рекомендуемое Microsoft и используемое в платформе), добавьте параметр “CancellationToken cancellationToken = default” к концу списка параметров (это опционально, чтобы метод можно было асинхронно отменить), и добавьте ключевое слово await перед каждым вызовом асинхронного метода, например: await operationRepository.IsAliveAsync(id). Если ваш метод выполняется в потоке UI, то учитывайте особенности синхронизации в SynchronizationContext (например, там, где нужно отменить возврат в поток UI, надо добавить .ConfigureAwait(false) к результату вызова метода). Обратитесь к документации MSDN за особенностями использования паттерна async/await.
  14. Некоторые расширения теперь асинхронные; они возвращают Task, токен отмены операции передаётся через свойство context.CancellationToken. Допишите к сигнатуре метода ключевое слово async (слева от возвращаемого значения Task), чтобы метод мог работать без изменения кода. Если метод содержит асинхронные вызовы, то добавьте перед ними ключевое слово await. В текущей версии это затрагивает расширения: IAdExtension, IApplicationExtension, ICardRepairExtension, IClientInitializationExtension, IFileConverterExtension, IPluginExtension, IServerInitializationExtension, ISettingsExtension.
  15. Плагины Chronos теперь поддерживают только асинхронные методы EntryPointAsync вместо EntryPoint в интерфейсе плагина IPlugin. Интерфейс IPluginAsync удалён. Для любых плагинов рекомендуем унаследовать класс плагина от абстрактного класса Plugin и переопределить метод EntryPointAsync, указав его сигнатуру как public override async Task EntryPointAsync(CancellationToken cancellationToken = default). Код плагина может быть оставлен синхронный или переписан на асинхронный, используя конструкцию async/await.
  16. В расширениях для объектов CardSection, CardRow, ListStorage<T> были удалены неиспользуемые API, связанные с событиями FieldCoercing, FieldValidating, FieldValidated, ItemCoercing, ItemValidating, ItemValidated. События FieldChanged и ItemChanged работают без изменений.
  17. В расширениях desktop-клиента CardUIExtension для установки цветов элементов управления и их заголовков TextStyle и CaptionStyle (свойства Foreground, Background и BorderColor вместо BorderBrush), используйте тип данных Color вместо SolidColorBrush.
  18. Обновлены примеры тестового контроллера ServiceController в проекте Tessa.Extensions.Server.Web и соответствующего ему прокси-сервиса (объекты IService, ServiceWebProxy, ServiceClient). Теперь все методы сервиса являются асинхронными и поддерживают отмену.

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

  1. В web-клиенте добавлена поддержка иерархии в представлениях. Также на вкладке “История заданий” добавлена ссылка “открыть в отдельной вкладке” аналогично desktop-клиенту.
  2. В web-клиенте иконки-тэги на файлах теперь можно задавать с указанием цвета фона. Для файлов в задачах иконка принадлежности файла к текущей задаче отображается на зелёном фоне. Функциональность работает аналогично desktop-клиенту.
  3. В web-клиенте для русской локализации окна входа кнопка “Логин” переименована во “Вход” в файле localization.json. Вы можете изменить локализацию в этом файле, независимо от версии платформы.
  4. В web-клиенте при сохранении карточки с файлами теперь добавляется операция, отображающая ход сохранения в представлении “Активные операции”, по аналогии с desktop-клиентом. Также в окне карточки отображается прогресс-бар с ходом сохранения. Если сохранение завершилось ошибкой, то оно прерывается, не дожидаясь окончания загрузки.
  5. В web-клиенте реализованы настройки цвета и стиля текста для всех элементов управления в карточке, а также все настройки контролов по кнопке “Дополнительно”.
  6. В web-клиенте теперь доступно изменение размера области предпросмотра файлов в карточке, и изменение её положения (слева или справа). Настройки области изменяются для всех открытых карточек сразу (аналогично desktop-клиенту) и сохраняются в cookies браузера.
  7. В web-клиенте доступно сворачивание/разворачивание блоков карточки, по аналогии с desktop-клиентом. В контекстном меню по пустой области в карточке можно свернуть/развернуть все блоки.
  8. В web-клиенте в виртуальном файле листа согласования добавлена ссылка на печатный лист согласования и ссылка на текущую карточку, по аналогии с desktop-клиентом. Для работы функции заполните базовый адрес web-клиента в карточке “Настройки сервера”. Если адрес не заполнен, то ссылки в web-клиенте не отображаются.
  9. В web-клиенте добавлены пункты меню и плитки для копирования ссылок на файл, версию файла, карточку или узел дерева, по аналогии с desktop-клиентом. Открытие таких ссылок требует наличие активной сессии, при этом отображается окно входа, если сессия отсутствует (после входа действие по ссылке выполняется).
  10. В web-клиенте для параметров фильтрации представлений типа даты и/или времени установлены значения по умолчанию, по аналогии с desktop-клиентом.
  11. В web-клиенте фильтруемый текст подсвечивается жёлтым в контроле “Таблица” в карточке и на вкладке “История заданий”, по аналогии с desktop-клиентом.
  12. В web-клиенте в представлениях добавлена плитка “Структура карточки” для администраторов, позволяющая отобразить структуру карточки на сервере без выполнения серверных и клиентских расширений, по аналогии с desktop-клиентом.
  13. В web-клиенте для закрытия вкладки с карточкой или рабочим местом добавлена горячая клавиша Ctrl+Shift+F4 (горячая клавиша также работает в desktop-клиенте). Горячие клавиши Ctrl+F4, Ctrl+W и Ctrl+Shift+W используются браузером, поэтому задействовать их нельзя. Также при закрытии вкладки с карточкой вы можете зажать клавишу Alt, чтобы выполнить закрытие без сохранения изменений и без подтверждения, по аналогии с desktop-клиентом. Информация об этом выводится во всплывающей подсказке на “крестике”, закрывающем вкладку.
  14. В web-клиенте добавлены подтверждения при закрытии или обновлении вкладки с веб-приложением (т.е. вкладки браузера, а не вкладки карточки/рабочего места). Это предотвращает случайное закрытие вкладки. Отображаемые сообщения управляются самим браузером, причём во всплывающем окне с подтверждением закрытия обычно доступен флажок для отключения таких сообщений на сайте с приложением.
  15. В web-клиенте добавлено тестовое расширение на действие “Файлы из внешнего источника” в контекстном меню списка файлов в типе карточки “Автомобиль”. Это демонстрирует возможности расширений для клиентского API web-клиента, по аналогии с desktop-клиентом.
  16. В web-клиенте добавлены всплывающие подсказки, в т.ч. на контролах и на файлах в карточке, на информации о заданиях, на плитках боковых панелей, на строках в истории заданий, на строках представлений и таблиц, которые были укорочены с троеточием, на заголовках таблиц (в представлениях и карточках). Всплывающие подсказки работают аналогично desktop-клиенту.
  17. В web-клиенте на вкладке “История заданий” разрешено открывать/закрывать окно с подробностями по выделенной строке, с использованием средней кнопки мыши, как это указано во всплывающей подсказке на строке. Функциональность работает аналогично desktop-клиенту.
  18. В web-клиенте добавлено перетаскивание вкладок с карточками и рабочими местами drag&drop, по аналогии с desktop-клиентом.
  19. В web-клиенте добавлена подсветка синтаксиса для контролов “Строка” в режиме Avalon.
  20. В web-клиенте добавлены модальные окна с карточками и тулбары, по аналогии с desktop-клиентом, в т.ч. создание карточки в режиме отбора, модальные диалоги по кнопке на панели пейджинга и по двойному клику для некоторых справочников, API для создания, открытия и редактирования карточек в диалоговых окнах, тулбар для возврата в карточку из задачи.
  21. В web-клиенте добавлено перетаскивание колонок представлений и их сохранение по контекстному меню для заголовка колонки, аналогично desktop-клиенту. Также возможно изменение порядка колонок drag&drop в таблицах карточек (элемент управления “Таблица” и вкладка “История заданий”).
  22. В web-клиенте в контекстном меню на файле доступна группа действий “Заменить файл по шаблону” аналогично desktop-клиенту.
  23. В web-клиенте реализована плитка печати штрих-кода при наличии модуля потокового ввода.
  24. В web-клиенте в desktop-варианте (при наличии мыши) кнопка закрытия вкладки с карточкой или представлением отображается без кнопки-крестика, которая закрывается вкладку, эта кнопка выводится при наведении мыши на вкладку, аналогично desktop-клиенту. В мобильной форме, когда присутствует тач-скрин (на планшетах и смартфонах), крестик отображается всегда.
  25. В диалогах с карточками на панели действий (тулбар сверху) добавлены кнопка “Сохранить, закрыть и создать” и группа кнопок “Другие”: выпадающие кнопки “Удалить”, “Копировать ссылку”, “Показать структуру”.
  26. Справочники вариантов завершения и состояний документа теперь по двойному клику открывают виртуальные карточки в модальном окне, а не в отдельной вкладке.
  27. Плитка “Разослать задачи по решениям” в карточке “Протокол” теперь реализована на системе маршрутов без клиентских расширений. Это расширяет возможности настройки для этой функции.
  28. В маршрутах добавлена возможность указывать маршрут для вторичных процессов на вкладке “Маршрут” в карточке вторичного процесса. Все типовые вторичные процессы теперь в самой карточке содержат необходимые этапы. Связанные с ними группы и шаблоны больше не нужны, и их необходимо удалить. В скриптах автоматического обновления Upgrade.bat и upgrade.sh удаление типовых карточек выполняется автоматически.
  29. В типе этапа “Уведомление” добавлена возможность указывать сценарий для модификации письма.
  30. В маршрутах добавлен тип этапа “Создать файл по шаблону”, позволяющий создать и приложить к карточке файл, сгенерированный по заданному шаблону файла.
  31. В маршрутах в настройки этапа “Регистрация” добавлен флажок “Без отправки задания”, позволяющий не отправлять задание на регистрацию в асинхронных процессах, таких как основной маршрут документа.
  32. В маршрутах в настройках типов заданий при вводе типа поиск теперь производится как по имени Name, так и по отображаемому заголовку Caption.
  33. В конструкторе бизнес-процессов добавлен поиск по доступным действиям на панели слева.
  34. В конструкторе бизнес-процессов в редакторе объекта кнопка “Закрепить” теперь закрепляет панель редактора таким образом, что она не перекрывает собой редактор макета процесса.
  35. Во всплывающих уведомлениях по задачам клик по любому месту в уведомлении теперь приводит к открытию карточки, в которой находится задача. Клик по роли или автору не приведёт к случайному открытию карточки роли или сотрудника.
  36. В представлении TaskHistory записи без группы теперь выводятся в специальной группе “( без группы )”.
  37. Добавлена настройка ViewAccessCacheTimeSpan в конфигурационных файлах app.json для веб-сервисов и сервисов Chronos. Настройка определяет максимальный интервал времени, в течение которого кэш прав доступа для каждого сотрудника может располагаться в памяти перед тем, как будет автоматически сброшен в текущем процессе. По умолчанию указан 1 час. Кэш прав доступа не используется для администраторов, поскольку для них доступны все представления, независимо от прав.
  38. Ошибки для неправильно введённого логина или пароля теперь записываются в серверный лог на уровне логирования Debug. По умолчанию на уровне Info логирование такого события не выполняется. Другие ошибки, связанные со входом в систему (SessionExceptionCode) теперь логируются на уровне логирования Warn (по умолчанию логирование выполняется). Ошибка ExpectedWindowsAuth по-прежнему всегда не логируется, потому что возникает каждый раз при Windows-аутентификации на сервере IIS. Другие ошибки по-прежнему логируются на уровне Error.
  39. В интерфейсе карточек добавлена панель тулбара в нижней части карточек. Её можно отобразить как в модальных диалогах, так и при обычном отображении карточек во вкладках, видимость настраивается через API аналогично панели тулбара сверху. Цвета фона и текста для обеих панелей по умолчанию одинаковы, но их можно настроить различным образом в файлах темы интерфейса (цвета CardBottomToolbarForeground, CardBottomToolbarBackground, CardBottomToolbarHoverBackground). Также была добавлена возможность выводить кнопки в тулбарах справа налево и изменять цвета тулбара индивидуально для карточки через API: например, при наличии каких-то важных действий выводим тулбар красным цветом или с использованием другого цвета темы.
  40. В приложении Tessa Applications в конфигурационном файле TessaAppManager.exe.config добавлена настройка CanSaveCredentials (по умолчанию true). Настройка определяет, могут ли логин и пароль пользователя сохраняться локально в зашифрованном виде для любого сервера, к которому подключается Tessa Applications. Указав false, можно скрыть возможность ввести логин или пароль в окне настроек сервера, причём ранее введённые логины и пароли перестают использоваться (т.е. пользователю каждый раз придётся их вводить заново). Вы можете опубликовать TessaAppManager, чтобы распространить настройку с этим параметром конфигурации на всех сотрудников.
  41. Утилита tadmin: в команде ImportUsers добавлена поддержка возможности указать в файлах временную зону для сотрудников и подразделений. Описание импорта сотрудников и подразделений вместе с временными зонами, а также формат содержимого файлов приведёны в руководстве администратора.
  42. Утилита tadmin: для команды DeleteCards добавлен параметр /c, предотвращающий вывод сообщений об ошибках при удалении несуществующих карточек, которые могли быть уже удалены к моменту вызова скрипта.
  43. API: В сценариях маршрутов добавлен метод GetProcessInfoForBranch, который позволяет в скрипте инициализации получить доступ к ProcessInfo веток. Актуально только для этапа ветвления.
  44. API: В web-клиенте доработано API управления областью предпросмотра для соответствия desktop-клиенту.
  45. API: В web-клиенте в класс TaskHistoryViewModel добавлены свойства и методы для управления ссылкой, отображаемой на вкладке “История заданий”, например, чтобы ссылку “открыть в отдельной вкладке” можно было скрыть или поменять параметры открываемого представления.
  46. API: Добавлено свойство ISettings.MaxSettingsTilesBeforeAddingSubgroup для настройки количества плиток, отображаемых в desktop-клиенте в группе “Настройки” для открытия карточек-настроек. По умолчанию указано 12.
  47. API: NuGet-пакет Tessa теперь ссылается на актуальные версии пакетов System.Memory, System.Threading.Tasks.Extensions и System.ValueTuple. Вы можете использовать типы, предоставляемые этими пакетами, в любых расширениях и других частях системы. Примеры типов: ValueTask<T>, ValueTuple<T1,T2>, Span<T>, Memory<T>. Также теперь не требуется указывать redirect-ы на версии этих пакетов в конфигурационных файлах для .NET Framework.
  48. API: Некоторые синхронные методы были заменены на асинхронные, при этом к их имени добавлен суффикс “Async”. Каждый асинхронный метод опционально принимает параметр CancellationToken для асинхронной отмены операции. Это затрагивает такие интерфейсы, как ICardRepository (синхронные методы оставлены для совместимости), IFileManager, ISessionManager, ISessionServer, IOperationRepository, ICardTransactionStrategy, IRoleRepository и др. Вы можете вызвать такие методы синхронно, дописав к результату вызова .GetAwaiter().GetResult(). Например, замените вызов operationRepository.IsAlive(id) на operationRepository.IsAliveAsync(id).GetAwaiter().GetResult().
  49. API: Некоторые расширения теперь асинхронные; они возвращают Task, токен отмены операции передаётся через свойство context.CancellationToken. Допишите к сигнатуре метода ключевое слово async (слева от возвращаемого значения Task), чтобы метод мог работать без изменения кода. Если метод содержит асинхронные вызовы, то добавьте перед ними ключевое слово await. В текущей версии это затрагивает расширения: IAdExtension, IApplicationExtension, ICardRepairExtension, IClientInitializationExtension, IFileConverterExtension, IPluginExtension, IServerInitializationExtension, ISettingsExtension.
  50. API: Добавлен интерфейс ITransactionStrategy, доступный в Unity, для выполнения кода в транзакции ExecuteInTransactionAsync. Интерфейс ICardTransactionStrategy теперь наследует ITransactionStrategy, вы по-прежнему можете использовать его для выполнения кода в транзакции. Используйте класс WithoutTransactionStrategy (доступен в Unity) для выполнения кода без транзакции.
  51. API: Добавлена возможность отменить сохранение карточки в расширении модуля LDAP/AD.
  52. API: Модуль потокового ввода теперь поддерживает серверные расширения IDocLoadExtension для получения ID карточки по указанному штрих-коду. Проектное расширение должно унаследоваться от абстрактного класса DocLoadExtension или от класса с типовой логикой DefaultDocLoadExtension, переопределять методы и затем зарегистрироваться в Unity по интерфейсу IDocLoadExtension в методе регистратора RegisterUnity.
  53. API: В интерфейс IKrScope добавлен метод GetMainCardFileContainer для получения контейнера файлов для карточки, находящейся в KrScope. Это свойство использовать в типах этапов маршрутов, в которых требуется добавить, удалить или изменить файл в карточке. При сохранении карточки будут сохранены и файлы.
  54. API: Добавлено свойство ICardEditorModel.BottomToolbar с кнопками на панели тулбара в нижней части окна. Можно отображать как в диалоге, так и в карточках, открываемых во вкладках. Если список кнопок ICardToolbarViewModel.Actions пуст, то тулбар автоматически скрывается; при добавлении хотя бы одной отображаемой кнопки тулбар автоматически отображается.
  55. API: Добавлены свойства для настройки панелей тулбара в интерфейс ICardToolbarViewModel: LeftToRight (вывод кнопок слева направо, иначе справа налево и с выравниванием по правому краю), DropdownMenuPlacementMode (направление отрисовки вложенных действий для кнопок в тулбаре), Background (цвет фона при отображении в текущей карточке), Foreground (цвет кнопок по умолчанию при отображении в текущей карточке), HoverForeground (цвет кнопок по умолчанию при наведении мыши, когда кнопка подсвечена как выбранная, обычно является обратным от цвета Foreground).
  56. API: В компиляторы скриптов маршрутов IKrCompiler, условий INotificationConditionCompiler и процессов IWorkflowEngineCompiler добавлены свойства DefaultUsings и DefaultReferences, которые определяют наборы пространств имён и ссылок на сборки, используемых компилятором по умолчанию. Данные свойства можно изменить, добавив регистратор с методом FinalizeRegistration, в котором выполнить код следующего вида: this.UnityContainer.TryResolve<IWorkflowEngineCompiler>()?.DefaultReferences.Remove(“Tessa.Extensions.Server”).
  57. API: В расширениях для объектов CardSection, CardRow, ListStorage<T> были удалены неиспользуемые API, связанные с событиями FieldCoercing, FieldValidating, FieldValidated, ItemCoercing, ItemValidating, ItemValidated. События FieldChanged и ItemChanged работают без изменений.
  58. API: В контексте расширений по синхронизации с AD / LDAP IAdExtensionContext добавлено свойство Connection с параметрами соединения к серверу AdConnection. В объекте с параметрами доступно свойство IsActiveDirectory, определяющее, является ли сервер доменом Active Directory, или это другой каталог LDAP.
  59. API: Обновлены библиотеки: .NET Core 2.2.6, ITFoxTec.Identity.Saml2 4.0.0, Linq2DB 2.7.4, Microsoft.CodeAnalysis.CSharp 3.1.0, NLog 4.6.6, Npgsql 4.0.7, QRCoder 1.3.6, UAParser 3.1.38, Unity 5.11.1.

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

  1. Оптимизированы накладные расходы на выполнение представлений в web-клиенте, если пользователь не обладает правами администратора.
  2. В web-клиенте исправлен выбор значения в ссылочных контролах “Ссылка” и “Список” при переводе клавиатурного фокуса на другой контрол (по клавише Tab).
  3. В web-клиенте выпадающие списки в ссылочных контролах теперь занимают максимум половину размера окна по ширине. Изменение не затрагивает мобильную форму или небольшие размеры окна браузера.
  4. В web-клиенте исправлены ситуации, когда настройки рабочих мест для пользователя могли изменяться на одном устройстве (в desktop-клиенте или в web-клиенте), и на другом устройстве (в web-клиенте) они не обновлялись до повторного входа в систему, пока работает функциональность Service Workers.
  5. В web-клиенте исправлено отображение представлений, недоступных для пользователя по его правам доступа.
  6. В web-клиенте исправлена ширина поля для ввода параметра фильтрации представления типа Guid (уникальный идентификатор).
  7. В web-клиенте исправлены отображаемые ошибки при сохранении виртуальных карточек “Состояние документа” и “Вариант завершения”, если не заполнены обязательные поля.
  8. В web-клиенте исправлена смена фонового изображения на мобильных устройствах.
  9. В web-клиенте исправлено выравнивание иконок и текста во вкладках карточек и рабочих мест при отображении на Linux.
  10. В web-клиенте исправлено создание файла по шаблону из контекстного меню на файлах.
  11. В контролах “Список” и “Сссылка” исправлен алгоритм работы при ручном вводе. Теперь необязательно, чтобы колонки в представлении, входящие в референс, располагались одна за другой.
  12. Исправлено отображение плиток в группе “Настройки” для открытия карточек-настроек, если они не вмещаются на экране. Теперь выполняется их автоматическая группировка. Также названия карточек настроек автоматически переносятся на две строки при необходимости.
  13. Метод TileHelper.SplitCaption() больше не выполняет перенос текста на две строки, если в тексте уже есть явно заданный перевод строки. Метод используется для отображения заголовков плиток для типов карточек, типов документов и др.
  14. При открытии/импорте файлов схемы через SchemeEditor и TessaAdmin в случае возникновения ошибки десериализации открываемой схемы теперь выводится корректный путь к файлу, в котором была обнаружена ошибка.
  15. В конструкторе бизнес-процессов ширина панели поиска теперь не сбрасывается на первоначальную после ее повторного открытия.
  16. В конструкторе бизнес-процессов исправлена проблема синхронизации скриптов процесса с проектом в Visual Studio. А также исправлено падение клиента, возникающее при изменении выгруженных файлов через блокнот.
  17. В конструкторе бизнес-процессов исправлена ошибка формирования срока задания, если задана явная дата завершения задания.
  18. В конструкторе бизнес-процессов исправлена ошибка, возникающая при компиляции действий “Задание” и “Группа заданий” при наличии строк обрабатываемых событий без скриптов.
  19. В конструкторе бизнес-процессов исправлена ошибка, возникающая при завершении процесса с включенным логированием действий с уровнем Debug.
  20. В конструкторе бизнес-процессов и в маршрутах открытие карточек, которое происходит в рамках выполнения процесса или маршрута, больше не фиксируется в истории действий.
  21. В конструкторе бизнес-процессов исправлена возможность использования директивы #reference в основном скрипте процесса.
  22. Исправлено длительное ожидание при остановке сервисов Chronos после возникновения ошибок конвертации файлов.
  23. Исправлено использование объекта DbScope в случае, если внутри блока using присутствует await на асинхронную операцию.
  24. Исправлен метод загрузки контента для RemoteFileContent, который используется для предоставления контента в виде функции Func<Stream>. По ошибке функция вызывалась дважды, что могло приводить к незакрытым ресурсам, поскольку только один объект Stream возвращался методом загрузки контента, а второй создавался, но не возвращался. Это в т.ч. приводило к невозможности удалить временные файлы при конвертации в FileConverterPlugin. Ошибка появилась в сборке 3.0.
  25. Исправлены сообщения об ошибке, если не удалось определить временную зону для задания или записи в истории заданий.
  26. Исправлено удаление штрих-кода при создании карточки по шаблону или копировании существующей.
  27. Исправлена ошибка при запуске вторичного процесса с ветвлением.
  28. Исправлена ошибка открытия файловой схемы данных при наличии в одной комплексной колонке нескольких ссылочных колонок из разных библиотек.
  29. Исправлена отправка заданий на контекстные роли с указанием вида задания (в т.ч. для типовых задач, маршрутов, бизнес-процессов Workflow Engine и кастомизированных процессов). Ошибка появилась в сборке 3.3.
  30. Исправлена фильтрация представлений по параметрам типа “Дата” при выполнении на СУБД PostgreSQL. Ошибка появилась в сборке 3.3.
  31. Исправлена проблема при изменении состава метаролей, которые задаются по числовому или строковому идентификатору.
  32. Исправлено выполнение запроса в генераторе метаролей, у которого пятая колонка с идентификатором временной зоны возвращается с типом, отличным от smallint (например, тип данных int).
  33. Оптимизирован расчёт динамических ролей и метаролей при наличии замещений.
  34. Улучшено логирование ошибок в логах Chronos при выполнении запроса в генераторе метаролей.
  35. При возникновении ошибок при удалении временных файлов или папок в тексте предупреждения теперь выводится текущий стек вызовов для упрощения отладки.
  36. Исправлена “потеря” идентификатора процессами, запущенными по карточке вторичного процесса. При выполнении вторичного процесса корректно отрабатывают несколько групп.
  37. Исправлено выполнение представлений в PostgreSQL, если представление было добавлено в кэш хранимых процедур, после чего изменился тип параметра в схеме данных, но не изменилась метаинформация представления.
  38. В потоковом сканировании в плагине Chronos при прикреплении PDF-документа к карточке исправлено удержание временных файлов в открытом состоянии.
  39. В редакторе типов в TessaAdmin исправлено уведомление о наличии изменений в типах при попытке их обновления.
  40. В команде tadmin ImportUsers исправлено изменение уже существующих карточек сотрудников и подразделений. Ошибка появилась в сборке 3.3.
  41. Исправлена ошибка KeyNotFoundException при компиляции этапа с дополнительными скриптами (Ветвление, Типизированное задание, Уведомление), в которых есть ошибка.
  42. В представлениях исправлено отображение записей без группы при использовании полей с иерархической группировкой. Ошибка появилась в сборке 3.3.
  43. Исправлен запрос миграции на сборку 2.6.0, в котором формируется Info для этапа доработки. В некоторых случаях оно равнялось null, что при миграции с активным этапом доработки после согласования не позволяло продолжить процесс с необходимого этапа.
  44. Исправлена генерация запроса при выполнении плейсхолдеров {f} и {t}, в которых выполняется join для строк одной и той же таблицы несколько раз. Например: {f:Roles.ParentID->Roles.Name}.
  45. В TessaAdmin исправлена ошибка добавления вкладок, копируемых через буфер обмена, в контрол “Вкладки”.
  46. Исправлена работа кнопки “Свернуть все” в представлениях, когда в нем отображается большое количество групп.
  47. Исправлен экспорт карточки, в которой есть задание на временную роль, которая не связана с контекстной (например, Исполнители задания), но вместе с тем нет ни одного задания на контекстную роль. Ошибка появилась в сборке 2.6.
  48. Исправлено подтверждение при обновлении списка библиотек локализации в TessaAdmin.
  49. Исправлено удаление строк в таблицах, когда для удаляемой строки существуют строки дочерней коллекционной секции, где есть несколько колонок со ссылкой на родителя, причём только одна из колонок добавлена в тип карточки, а другая - отсутствует в типе.
  50. Исправлена отправка ежедневных уведомлений по текущим заданиям. Ошибка появилась в сборке 3.3.
  51. Исправлена ошибка входа в систему в desktop-клиентах (TessaClient, TessaAdmin, TessaAppManager, tadmin), если с клиента передаётся текущая культура CurrentCulture, которая не существует на сервере. Обычно это возможно при соединении клиента Windows с сервером Linux.
  52. Исправлена локализация в почтовом уведомлении по ежедневным заданиям для таблицы с заданиями автосогласования.
  53. Исправлена редкая ошибка “An item with the same key has already been added” при инициализации лицензии в кэше на клиенте или на сервере.
  54. Исправления в плагине синхронизации с AD / LDAP для лучшей совместимости с каталогами LDAP.
  55. В плагине потокового сканирования улучшена обработка ошибок, связанных с проблемами при обработке файлов.
Back to top