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

Версия 3.2 (05.02.2019)

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

  1. Изменены рабочие места: Administrator.
  2. Изменены представления: BarcodeTypes (добавлена), IncomingDocuments, KrForkManagementStageTypeModes (добавлено), KrProcessManagementStageTypeModes, KrSecondaryProcesses, KrStageTemplates, WorkflowSignalTypes.
  3. Изменены таблицы: BarcodeTypes (добавлена), DocLoadBarcodeRead (добавлена), DocLoadSettings (добавлена), KrApprovalCommonInfo, KrForkManagementModes (добавлена), KrForkManagementSettingsVirtual (добавлена), KrForkNestedProcessesSettingsVirtual (добавлена), KrForkSecondaryProcessesSettingsVirtual (добавлена), KrForkSettingsVirtual (добавлена), KrProcessStageTypes, KrSecondaryProcessCommonInfo, KrStages, KrStagesVirtual, PersonalRoleSatellite, WeSendSignalAction (добавлена), WeTaskActionOptions, WeTaskGroupActionOptions, WeTaskGroupControlAction (добавлена), WorkflowEngineTaskActions, WorkflowSignalTypes.
  4. Изменены функции: CalendarAddWorkQuants.
  5. Изменены типы карточек: BusinessProcessTemplate, DocLoad (добавлен), Incoming (добавлено поле “Штрих-код” и колонка DocumentCommonInfo.Barcode), KrAdditionalApproval, KrApprove, KrCard, KrCheckStateWorkflowTileExtension, KrForkManagementStageTypeSettings (добавлен), KrForkStageTypeSettings (добавлен), KrSatellite, KrSecondarySatellite, KrStageGroup, KrStageTemplate, Outgoing (добавлено поле “Штрих-код” и колонка DocumentCommonInfo.Barcode), PersonalRoleSatellite, WorkflowActionEditor, WorkflowConditionAction, WorkflowProcessEditor, WorkflowScenarioAction, WorkflowSendSignalAction (добавлен), WorkflowTaskAction, WorkflowTaskGroupAction, WorkflowTaskGroupControlAction (добавлен).
  6. Изменены карточки: Acquaintance, CancelButton, CancelTemplate, Continuous document load (settings) (добавлена), DeregisterButton, RebuildButton, RejectButton, RejectTemplate.
  7. Изменены карточки (необязательные изменения): DeregisterTemplate, EditTemplate, NewIterationTemplate, RebuildTemplate, RegisterTemplate, StartProcessTemplate.
  8. Изменены библиотеки локализации.
  9. Перед обновлением схемы выполните скрипт Fixes/Migration-3.2-pre.*.sql.
  10. Изменены файлы в нетиповых проектных расширениях в Tessa.Extensions.Client: Registrator.cs (в корне проекта) и Themes\Icons.xaml (добавлен). Эти файлы содержат пример иконки, добавляемой в рамках проекта.
  11. Требуется переустановить Tessa Applications, используя msi-инсталлятор, если необходимо исправить ошибку обновления Tessa Applications, которая возникает при отказе в доступе к папке в профиле пользователя (%appdata%\tessa), что приводит к “зацикливанию” и увеличению размеров логов.
  12. При установке сервера приложений на Linux начиная с этого релиза требуется создать символьную ссылку для библиотеки libdl.so. Обратитесь к руководству по установке на Linux. Для большинства дистрибутивов потребуется выполнить команду в терминале (пути к папкам могут отличаться для разных дистрибутивов, см. руководство): sudo ln -s /lib/x86_64-linux-gnu/libdl.so.2 /lib/x86_64-linux-gnu/libdl.so
  13. Для регистрации типов-наследников INumberDirector теперь используйте объект INumberDirectorContainer в методе FinalizeRegistration. Пример такой регистрации см. в Tessa.Extensions.Default.Shared.Numbers.Registrator. В методе Register укажите идентификатор типа карточки в параметре typeID.
  14. Для регистрации расширений на лист согласования IKrApprovalListExtension используйте объект IKrApprovalListExtensionResolver в методе FinalizeRegistration. Пример такой регистрации есть в описании интерфейса IKrApprovalListExtensionResolver.
  15. Начиная с этой версии в коде расширений используйте пространство имён Unity вместо Unity.Attributes. Некоторые классы, такие как InjectionMember, также перенесены из Unity.Registration в Unity.Injection. Вместо базового класса LifetimeManager используйте интерфейс ITypeLifetimeManager. Вместо объекта ParameterOverrides используйте массив объектов ParameterOverride, вместо DependencyOverrides - массив DependencyOverride. Если в вашем регистрируемом в Unity классе несколько конструкторов, то во избежание проблем с выбором конструктора при резолве явно укажите конструктор при помощи InjectionConstructor с перечислением типов параметров typeof(T), или же добавьте атрибут [InjectionConstructor] для конструктора по умолчанию. Если вы используете InjectionFactory, то рекомендуется заменить RegisterType<> на RegisterFactory<>, т.к. InjectionFactory помечен как устаревший [Obsolete]. Не указывайте в InjectionConstructor typeof() для класса-наследника, если конструктор принимает базовый класс или интерфейс; например, если конструктор получает ICardTransactionStrategy и ему требуется передать объект CardWithoutTransactionStrategy, то вместо typeof(CardWithoutTransactionStrategy) передайте new ResolvedParameter<ICardTransactionStrategy>(CardTransactionStrategyNames.WithoutTransaction). Обратитесь к описанию библиотеки Unity для полного списка изменений.

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

  1. Модуль “Потоковый ввод документов” теперь интегрирован в состав платформы. По умолчанию модуль выключен, включить и настроить его возможно в карточке настроек “Потоковый ввод документов”. Модуль должен быть включён в лицензию.
  2. В маршрутах добавлены тип этапа “Ветвление”, позволяющий выполнять несколько любых этапов параллельно, и тип этапа “Управление ветвлением”, позволяющий добавлять или завершать ветки для этапа “Ветвление”. Возможны вложенные ветвления, когда в ветке добавлен ещё один этап “Ветвление” со своими ветками.
  3. Добавлены иконки набора Int***, которые можно использовать в тех же местах, что и иконки набора Thin***, т.е. в плитках боковых панелей, в контекстных меню, в узлах рабочих мест и др. В сборке в папке Docs\Icons\ для каждого набора есть картинка с иконкой и её кодом.
  4. Реализована возможность добавлять свои иконки в проекте Tessa.Extensions.Client (см. файл Themes\Icons.xaml) для desktop-клиента. Иконки по указанным кодам доступны в тех же местах, что и типовые иконки Thin*** и Int***.
  5. В контроле “Таблица” добавлена настройка “Разрешить сортировку”. Если настройка активна (по умолчанию для всех контролов), то пользователь может сортировать таблицу по любой колонке, кликнув по её заголовку. Сортировка влияет только на отображение, т.е. не влияет на порядок в коллекциях моделей (section.Rows) и моделей представления (gridViewModel.Rows), и не влияет на перемещение строк вверх/вниз при сохранении порядка в строках таблицы.
  6. В контроле “Таблица” добавлена настройка “Макс. строк для авторазмера столбцов”. Если количество строк в таблице становится больше указанного значения, то автоматическое определение размера столбцов в приложении TessaClient отключается, что позволяет показать на экране несколько сотен строк без заметного снижения производительности. Для web-клиента настройка игнорируется ввиду другого способа построения интерфейса.
  7. В контроле “Таблица” добавлена настройка “Максимальная высота”, которая позволяет ограничить высоту таблицы, что положительно сказывается на отображении большого количества строк. По умолчанию указана максимальная высота в 800 пикселей. Вертикальная прокрутка в таблице при ограниченной высоте возможна по колесу мыши с зажатыми Ctrl или Alt, или используя стандартные кнопки прокрутки (PageDown и др.). Для web-клиента выполняется постраничное отображение, примерная высота строки приравнивается 20, т.е. для настройки по умолчанию 800 таблица выводится по 40 строк на странице.
  8. В контроле “Таблица” в настройках колонки добавлен параметр “Ширина подсказки, символов”, который задаёт примерную ширину всплывающей подсказки для ячеек в этой колонке. Текст в подсказке переносится по словам на несколько строк. По умолчанию значение равно 100 символам. Это актуально прежде всего для колонок, в которых отображаемая длина ограничена троеточием, а весь текст доступен во всплывающей подсказке.
  9. В контроле “Таблица” в настройках колонки добавлен параметр “Выравнивание заголовка”, определяющий, каким образом выполняется выравнивание текста в заголовке колонки (когда ширина колонки больше ширины заголовка). По умолчанию текст выровнен по центру.
  10. В контроле “Таблица” рядом с кнопками Добавить/Удалить отображается поле поиска. Поиск выполняется по вхождению текста без учёта регистра для всех ячеек таблицы. Поиск можно сбросить по нажатию на кнопку крестика в этом поле или по клавише Esc. Поиск по умолчанию скрыт, если недоступны кнопки Добавить/Удалить или кнопки изменения порядка (поведение можно определить в расширении, изменив свойство gridViewModel.SearchBoxVisibility).
  11. На вкладке “История заданий” теперь доступны сортировка по клику по заголовку колонки и поиск по тексту во всех ячейках.
  12. Ширина подсказки, выводимой для ячеек представлений, текст в которых не вместился и был ограничен троеточием, теперь указана как треть ширины экрана, что упрощает чтение текста (но не более 800 пикселей, и не менее 200 пикселей для 96 dpi).
  13. В контроле “Таблица” можно открывать строки по нажатию Enter, если выбранная строка находится в клавиатурном фокусе (по ней только что кликнули или выделили её с помощью клавиатуры).
  14. В TessaClient кнопки открытия/закрытия боковых панелей в строке с вкладками изменяются визуально, когда соответствующая панель открыта. Нажатие на кнопку закрывает эту панель.
  15. В TessaClient нажатие на горячую клавишу, открывающую боковую панель, теперь закрывает её, если панель уже открыта.
  16. В TessaClient добавлены функции поворота страницы для предпросмотра файлов PDF/TIFF.
  17. В TessaClient в окне предпросмотра и в окне справки ссылки в html-страницах теперь открываются в браузере по умолчанию вместо Internet Explorer.
  18. Изменены иконки-стрелки для переключения страниц в представлениях.
  19. В конструкторе бизнес-процессов добавлена возможность в качестве привязки значений использовать представление, поле/секцию карточки, поле/секцию заданий.
  20. В конструкторе бизнес-процессов добавлена возможность выбрать все узлы в редакторе по нажатию сочетания клавиш Ctrl+A.
  21. В конструкторе бизнес-процессов добавлена возможность перемещать выбранные объекты на макете с помощью клавиш со стрелками.
  22. В конструкторе бизнес-процессов добавлено новое действие “Управление группой заданий”, которое позволяет управлять активными действиями “Группа заданий” (приостановить и возобновить выполнение группы, отменить выполнение группы, добавить новое задание в группу).
  23. В конструкторе бизнес-процессов доработано действие “Группа заданий”. В таблицу обработки вариантов завершения добавлены настройки для возможности управления текущей группой заданий.
  24. В конструкторе бизнес-процессов добавлено новое действие “Отправить сигнал”, которое позволяет отправить в текущий процесс сигнал на все узлы, подписанные на данный тип сигнала.
  25. В конструкторе бизнес-процессов доработано визуальное отображение стрелки, а точки привязки стрелки теперь не препятствуют отрисовке других стрелок.
  26. В конструкторе бизнес-процессов в редакторы действий “Задание” и “Группа заданий” в настройки вариантов завершения добавлена возможность указать результат, который запишется в историю действий при завершении задания с данным вариантом завершения.
  27. В конструкторе бизнес-процессов в редакторе узла в контекстное меню таблицы с действиями добавлены варианты “Копировать” и “Вставить скопированные действия в узел”.
  28. В конструкторе бизнес-процессов добавлена кнопка поиска объектов (узлов, действий и др.) по их содержимому (в т.ч. по содержимому скриптов в действиях).
  29. В представлении “Шаблоны процессов” со списком шаблонов бизнес-процессов добавлена кнопка создания карточки на панель пейджинга.
  30. В области предпросмотра файлов теперь выводится содержимое файлов .json (например, в карточке “Приложение”).
  31. По адресу веб-сервиса /hcheck (например, https://localhost/tessa/web/hcheck) теперь доступен автоматизированный сервис проверки “здоровья” веб-сервиса, которое в текущей версии определяется способностью веб-сервиса принимать запросы, а также наличием соединения с основной базой данных (в строке подключения “default” в файле app.json). В качестве результата сервис возвращает только статус здоров/не здоров, что позволяет использовать его в автоматизированных сценариях, таких как проверка работоспособности контейнера с веб-сервисом. В отличие от адреса /check, адрес /hcheck не выполняет длительных проверок и не возвращает системную информацию по состоянию сервера. Настройка “HealthCheckIsEnabled” в файле app.json не влияет на доступность адреса /hcheck.
  32. В файлах app.json в качестве настройки LicenseFile теперь можно указать маскированный путь, например: “@*.tlic”. Если найден хотя бы один файл, подходящий под маску, то используется первый файл из найденных по имени (сортировка по алфавиту).
  33. Скрипты установки Setup.bat (setup.sh) и автоматического обновления сборки Upgrade.bat (upgrade.sh) теперь выполняют автоматическую публикацию приложений TessaClient, TessaAdmin и TessaAppManager.
  34. Для desktop-приложений TessaClient, TessaAdmin, TessaAppManager в параметрах командной строки теперь можно использовать префикс с дефисом -param, причём префикс со слэшом /param по прежнему доступен.
  35. Доступна установка сборки в системе Docker. Такая установка может задействоваться в целях тестирования без развёртывания системы в виртуальной машине. Инструкция по установке и использованию такой инсталляции доступна в файле Docker\readme.txt в сборке.
  36. Добавлен NuGet-пакет Tessa.PostgreSql, который задействуется для создания приложений (рабочих мест, утилит и веб-сервисов), использующих API системы совместно с СУБД PostgreSQL. В руководстве разработчика добавлен пример такого использования.
  37. Интеграция с ADFS в web-клиенте теперь доступна при установке сервера приложений на Linux. Настройка выполняется в app.json таким же образом, как для Windows.
  38. В плагинах Chronos, выполняющих отправку почты (NoticeMailer) и получение почты (MobileApproval для мобильного согласования) появилась возможность использовать Exchange через http-прокси. В файле app.json это настройки NoticeMailer.ExchangeProxy*** и MobileApproval.ExchangeProxy***. Оставьте значения null, если подключение к Exchange выполняется без участия прокси-сервера.
  39. При выгрузке карточек в .jcard выполняется распаковка/упаковка вложенных json-объектов для дополнительных полей из типового решения: KrApprovalCommonInfo.Info и KrStages.Info. За счёт этого результирующий json получается более читаемый. Сохраняется обратная совместимость для выгруженных ранее карточек.
  40. Утилита tadmin: добавлена команда PackageApp, создающая файл .jcard с карточкой desktop-приложения (TessaClient, TessaAdmin или TessaAppManager). Импорт такой карточки аналогичен публикации приложения.
  41. Утилита tadmin: для Windows теперь можно использовать префикс с дефисом -param, как и для Linux, причём префикс со слэшом /param по прежнему доступен для Windows. Для вывода справки для утилиты или её отдельной команды можно указать -help или –help помимо /? или -?.
  42. Утилита tadmin: локализован весь текст в сообщениях справки и в некоторых сообщениях об ошибках.
  43. Утилита tadmin: сокращён вывод сообщений ValidationResult на консоль в части вывода имени класса, в котором возникло сообщение. В лог по-прежнему выводится полная информация.
  44. Утилита tadmin: дата сборки теперь выводится, используя текущий формат дат, установленный для пользователя в системе. Например, 01/30/2019 вместо 30.01.2019.
  45. API: Для контрола “Таблица” добавлено свойство GridViewModel.KeyDownHandlers с возможностью добавлять горячие клавиши, когда выбранная строка в клавиатурном фокусе (по ней только что кликнули или выделили её с помощью клавиатуры). Пример использования в тестовом расширении Tessa.Extensions.Default.Client.UI.CarUIExtension.
  46. API: Для контрола “Таблица” добавлены методы AddRow(), EditRow() и DeleteRows(), позволяющие вызывать соответствующие функции контрола, связанные со строками таблицы, из кода расширений (например, при нажатии кнопок под таблицей или пунктов контекстного меню).
  47. API: Для объектов карточки Card, результата валидации ValidationStorageResultBuilder и объектов Card***Request/Response добавлены методы ToTypedJson() и FromTypedJson() для сериализации/десериализации в текстовый JSON с сохранением информации по типам всех подобъектов. Таким образом, можно сериализовать/десериализовать объекты в читаемый текст без потерь. Также для всех таких объектов добавлен метод ToJson() для сериализации в JSON без сохранения информации по типам, и для некоторых объектов также есть метод FromJson(), который пытается восстановить информацию по типам тех свойств, о которых знает система (что не учитывает данные в card.Info и некоторые другие свойства).
  48. API: Во все сценарии конструктора бизнес-процессов добавлены свойства Task (тип CardTask) и Tasks (тип List<CardTask>), позволяющие получить текущие объекты заданий из контекста обработки, или изменить список заданий. Эти задания используются при получении значений по привязкам к заданиям.
  49. API: В методах отправки писем в объекте INotificationManager теперь можно определить прикладываемые к письмам файлы и список дополнительных получателей (поля CC/BCC в письме). Для этого в параметре modifyEmailAction укажите делегат, который установит новое свойство NotificationEmail.MailInfo (это тот же объект, передающийся в низкоуровневый метод отправки письма IMailService.PostMessage). Также можно задать функцию NotificationEmail.GetMailInfoFunc, которая позволяет определять разные параметры письма для разных получателей NotificationRecipient.
  50. API: При отправке уведомлений INotificationManager.Send() в объекте NotificationRecipient добавлен признак наличия у пользователя мобильного согласования HasMobileApproval (если пользователь есть в списке сотрудников с мобильным согласованием и доступна соответствующая лицензия). В объекте плейсхолдеров этот признак также доступен через context.Info.Get<bool>(PlaceholderHelper.HasMobileApprovalKey).
  51. API: Добавлено виртуальное свойство CardSatelliteGetExtension.AllowRequestsFromClient, позволяющее разрешить запросы на загрузку карточки-сателлита, отправляемые непосредственно с клиента. Обычно карточки-сателлиты загружаются на сервере вместе с основной карточкой или внутри бизнес-процессов. Для таких карточек, как сателлит сотрудника, который содержит информацию по настройкам сотрудника, возможно выдать разрешение на загрузку с клиента, если в расширениях на загрузку таких карточек предусмотрено ограничение доступа к данным сателлита. По умолчанию свойство AllowRequestsFromClient возвращает false.
  52. API: Добавлены статические свойства EnvironmentHelper.IsNetFramework и EnvironmentHelper.IsNetCore, позволяющие определить, для какой платформы выполняется текущее приложение - для .NET Framework или .NET Core (или другой совместимой с .NET Standard платформой, если оба свойства возвращают false).
  53. API: Добавлен объект INumberDirectorContainer, предоставляющий способ запросить объекты API номеров для заданного типа карточки, такие как INumberDirector, INumberComposer и INumberQueueProcessor. Этот объект также используется для регистрации INumberDirector и других объектов, пример такой регистрации см. в Tessa.Extensions.Default.Shared.Numbers.Registrator. В методе Register укажите идентификатор типа карточки в параметре typeID.
  54. API: Добавлен объект IKrApprovalListExtensionResolver, предоставляющий способ запросить расширение на лист согласования IKrApprovalListExtension, а также выполнить регистрацию расширения по алиасу типа карточки или для всех типов (без указания строки с алиасом). Пример такой регистрации есть в описании интерфейса IKrApprovalListExtensionResolver.
  55. API: Добавлен метод ICardFileManager.CreateContainerRemote(card) для создания контейнера файлов, каждый из которых загружается с Remote-содержимым, которое не кэшируется во временной папке. Загрузка и замена такого содержимого всегда выполняется в памяти, что позволяет оптимизировать операции с содержимым уже существующих в карточке файлов без задействования временной папки. Дополнительно для файлов IFile добавлен метод-расширение file.Replace(), принимающий Func<Stream> и размер содержимого, что позволяет выполнять замену Remote-содержимого. При вызове file.Replace(stream) для Remote-содержимого выполняется копирование переданного потока в MemoryStream, также стала возможна замена массива байт byte[] или строки текста string.
  56. API: Обновлены библиотеки: .NET Core 2.2.1, BarcodeLib 2.2.1, CsvHelper 12.1.2, DocumentFormat.OpenXml 2.9.0, ITFoxTec.Identity.Saml2 3.0.0, Linq2DB 2.7.0, PdfSharp-wpf 1.50.5147, UAParser 3.1.36, Unity 5.9.3. Вместо библиотеки ZKWeb.System.Drawing теперь используется библиотека System.Drawing.Common из состава .NET Core. Библиотеки BarcodeLib и QRCoder подключаются в исходном виде как NuGet-пакеты, они больше не интегрированы в Tessa.dll.

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

  1. Исправлено отображение завершённых заданий доп. согласования в файле листа согласования.
  2. В почтовом уведомлении о завершении последнего задания доп. согласования добавлены пропущенные ссылки на открытие карточки в desktop-клиенте и в web-клиенте.
  3. Кнопки маршрутов “Вернуть на доработку”, “Отозвать процесс” и “Отменить процесс” теперь доступны только для типов документов, в настройках которых стоит флажок “Использовать маршруты”. Кнопка “Отменить регистрацию” доступна для типов документов с флажком “Использовать регистрацию”. Изменения сделаны в соответствующих карточках вторичных процессов в поле “Условие”, при необходимости можно изменить такое поведение.
  4. Исправлено указание должности автора в заданиях, отправляемых в типовых и платформенных процессах. Это относится к типовым задачам, маршрутам и к задачам конструктора бизнес-процессов.
  5. Улучшены алгоритмы открытия боковых панелей в TessaClient, теперь панели всегда открываются, когда должны (при наведении мыши или при клике). При переключении или закрытии вкладок боковые панели принудительно закрываются.
  6. Исправлено редактирование схемы данных при активной фильтрации.
  7. Исправлена ошибка при наличии нескольких типов этапов, использующих один и тот же тип карточки настроек этапа.
  8. В конструкторе бизнес-процессов в редакторе параметров исправлено выделение текущего объекта при изменении размера окна редактора.
  9. В конструкторе бизнес-процессов исправлена ошибка компиляции скриптов событий заданий и группы заданий.
  10. В конструкторе бизнес-процессов исправлена ошибка, возникающая при попытке копировать объект по горячей клавише при наличии выделенной стрелки.
  11. В конструкторе бизнес-процессов исправлена проблема, когда отображаемое имя объекта в редакторе отличалось от реального имени объекта.
  12. В конструкторе бизнес-процессов убрана возможность менять шаблон процесса после снятия блокировки путем использования Undo/Redo.
  13. Улучшен вывод ошибок при выполнении SQL-запросов таким образом, чтобы текст возникшего исключения был рядом с запросом, при выполнении которого возникла ошибка.
  14. Исправлена проверка разрешений при создании карточки, если для неё был создан токен вызовом метода ICardServerPermissionsProvider.SetFullPermissions(newRequest). До исправления возникала ошибка “PropertyNotExists”.
  15. В приложении TessaClient оптимизированы отображение диалога со списком версий файла и диалога результата валидации в режиме “Подробно”, когда в таблицах отображается большое количество строк (более 50).
  16. При удалении подписей в диалоге проверки ЭЦП удалённая подпись теперь исчезает из таблицы в диалоге.
  17. Исправлен автоподбор размеров столбцов и некоторые другие свойства представлений в области предпросмотра в TessaAdmin и во вкладке TessaClient, которая открывается вызовом метода IUIHost.ShowView (например, для истории заданий, открываемой в отдельной вкладке по ссылке).
  18. Исправлено отображение таблиц комментариев и доп. согласования в заданиях согласования и доп. согласования в различных формах вариантов завершения.
  19. Исправлена работа команды tadmin CheckDatabase, которая при подключении к серверу MSSQL возвращала ошибку, если текущая схема для базы данных master не равна dbo.
  20. Оптимизирована генерация файлов по шаблону Excel для таблиц с большим количеством строк (десятки тысяч).
  21. Исправлена проверка на вхождение в несколько контекстных ролей во вторичных процессах маршрутов (в кнопках и действиях).
  22. Исправлена проверка состояний на сервере во вторичных процессах маршрутов (в кнопках и действиях).
  23. Убрана проверка на уникальность поля “Порядок” в карточке “Группа этапов”.
  24. Исправлен поиск по названию в представлении “Вторичные процессы” для СУБД PostgreSQL.
  25. Исправлено отображение ошибки “A task was canceled.” при отмене асинхронной загрузки файла.
  26. Хранимая функция CalendarAddWorkQuants исправлена так, чтобы всегда возвращать тот же квант, что и функция CalendarAddWorkingDaysToDate (раньше могла возникнуть разница в 1 квант).
  27. Исправлена всплывающая подсказка для кнопки “Создать карточку” на панели пейджинга представления, если кнопка создаёт указанный в настройках тип карточки, а не тип по выделенной строке.
  28. Скрипты обновления сборки Upgrade.bat и upgrade.sh теперь явно выполняют включение ограничений в БД (constraints) перед импортом локализации. Ограничения могут остаться отключёнными после неудачного импорта карточек при предыдущем запуске скрипта.
  29. Исправлено обновление Tessa Applications, которое при наличии ошибки доступа к папке пользователя (%appdata%\tessa) могло привести к “зацикливанию” и увеличению размеров логов. Для исправления проблемы необходимо переустановить приложение через msi-инсталлятор.
  30. При обновлении Tessa Applications исправлен вывод прогресса в процентах.
  31. Импорт карточек приложений теперь выполняется успешно, если идентификатор у импортируемой карточки отличается от идентификатора в базе данных, а алиас приложения совпадает. Также если у карточки приложения поменялся идентификатор, то её файлы не загружаются заново, если они совпадают по имени (с учётом подпапки) и по содержимому (по хеш-функции).
  32. Исправлен эскейпинг логина пользователя при поиске в LDAP. Также улучшены возникающие сообщения об ошибках для упрощения поиска проблем при интеграции с LDAP.
  33. Исправлена утечка памяти при использовании реализованной в рамках проекта группировки файлов IFileGrouping или сортировки файлов IFileSorting для desktop-клиента.
  34. В маршрутах в этапах регистрации и дерегистрации теперь явно указывается NumberTransactionMode.WithoutTransaction, чтобы не было ошибок с вложенными транзакциями при взаимодействии с номерами, поскольку снаружи всегда есть транзакция на сохранение карточки.
  35. Для контрола “Строка” в режиме “Avalon” исправлен расчёт высоты при выводе с номерами строк.
  36. Исправлена загрузка на Windows для desktop-приложений, опубликованных на сервере Linux. Теперь содержимое подпапок не будет загружаться каждый раз при запуске так, как если бы оно было изменено.
  37. В скриптах установки Setup.bat (setup.sh) и обновления системы Upgrade.bat (upgrade.sh) увеличен таймаут проверки подключения к веб-сервису до 20 секунд, поскольку 10 секунд иногда недостаточно для успешной инициализации сервиса, если сервер загружен задачами в этот момент.
  38. Добавлен файл IgnoreFiles.txt в папку TessaAppManager.exe, предотвращающий попадание файлов логов и других временных файлов в публикуемое приложение.
  39. При обновлении менеджера приложений Tessa Applications больше не требуется вводить логин/пароль повторно.
  40. В логе AppManager.txt выводится меньше сообщений при настройках логирования по умолчанию, в т.ч. при отключённой Windows-аутентификации.
  41. Исправлены скрипты Fixes/LocalizeEnglish.sql и Fixes/LocalizeRussian.sql в части имени динамической роли “Все сотрудники”.
  42. Исправлен тип параметра “Дата создания” в представлении “Входящие”.
  43. Исправлено перемещение файлов на Linux из одной карточки в другую для хранилища на файловой системе, обычно при удалении в корзину и восстановлении из корзины.
  44. Исправлено восстановление содержимого файлов, приложенных к заданиям для восстанавливаемой из корзины карточки, если используется хранилище на файловой системе.
  45. Исправлено сохранение карточки по горячей клавише Ctrl+S при наличии активного выделения в контроле “Ссылка” или “Список”.
  46. В представлении KrStageTemplates исправлен вывод шаблонов этапов, в которых указана уже удалённая группа этапов.
  47. В скриптах шаблонов этапов теперь по умолчанию подключено пространство имён Tessa.Cards.Extensions, которое предоставляет доступ к интерфейсам контекстов расширений ICardStoreExtensionContext и др.
  48. В уведомлении по ознакомлению добавлен пропущенный пробел.
  49. Исправлены права, выдаваемые типовыми задачами WfResolution.
  50. При редактировании схемы данных убрана колонка ID из списка доступных ссылочных колонок при создании комплексной колонки, которая ссылается на таблицу Tasks или Files.
  51. Исправлен импорт карточек с несколькими разнотиповыми сателлитами (KrSatellite и WfSatellite).
  52. Исправлен параметр localize в методе StampWriter.AppendLine(), который выводит строку в штамп PDF.
  53. Исправлено логирование ошибок SchemeEditor при сохранении схемы в базу данных.
  54. Исправлено именование индексов с именем длиннее 63 символов для PostgreSQL. Такие имена теперь укорачиваются с добавлением уникального хеш-кода, поскольку PostgreSQL не разрешает имена объектов длиннее 63 символов. В метаинформации схемы сохраняется исходное имя. Это изменение не влияет на MS SQL Server.
Back to top