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

Версия 2.5 (03.11.2017)

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

  1. Изменены рабочие места: Administrator.
  2. Изменены представления: AcquaintanceHistory, KrStageCommonMethods (добавлено), KrStageTemplateGroupPosition (добавлено), KrStageTemplates (добавлено), MyAcquaintanceHistory.
  3. Изменены таблицы: Configuration (добавлена, при её отсутствии схема данных не будет корректно работать!), KrAdditionalApprovalUsersCard, KrAdditionalApprovalUsersCardVirtual, KrApprovers, KrApproversVirtual, KrStageBuildOutput (добавлена), KrStageBuildOutputVirtual (добавлена), KrStageCommonMethods (добавлена), KrStages, KrStagesVirtual, KrStageTemplates (добавлена), KrStageTemplateGroupPosition (добавлена), KrStageTemplateRoles (добавлена), KrStageTemplateTypes (добавлена), AcquaintanceComments (добавлена), AcquaintanceRows (перенос в библиотеку Standard solution и др. изменения), PersonalRoles, TaskHistory, WfTaskCards (добавлена), WfTaskCardsVirtual (добавлена).
  4. Изменены типы карточек: Dialogs, KrCard, KrSatellite, KrStageCommonMethod (добавлен), KrStageTemplate (добавлен), PersonalRole (добавлен флажок “Игнорировать часовой пояс” для контрола “Дата рождения”), WfTaskCard (добавлен).
  5. Изменены миграции: Platform.
  6. Изменены карточки: Computed performers (добавлена).
  7. Изменены библиотеки схемы данных и библиотеки локализации.
  8. Перед обновлением схемы данных выполните скрипт Fixes/Migration-2.5-pre.sql. Не требуется при автоматизированном обновлении через Upgrade.bat.
  9. Обновление схемы данных необходимо выполнять через SchemeEditor, причём на предложение обновить версию схемы надо согласиться. Не требуется при автоматизированном обновлении через Upgrade.bat.
  10. Обновите хост Chronos.exe. Версия Chronos увеличена до 2.5.0.
  11. Обновите конфигурационный файл app.json в папке с веб-сервисами.
  12. Обновите конфигурационные файлы web.config внутри папок с веб-сервисами, а также файлы *.exe.config для всех приложений и консольных утилит.
  13. Теперь и клиент, и сервер требуют установленного .NET Framework 4.6.2 или более нового. Поддерживаются ОС, начиная с Windows 7 SP1 и Windows Server 2008 R2 SP1.
  14. Все проекты для библиотек расширений надо явно таргетировать на .NET Framework 4.6.2, т.е. перейти в свойства каждого из проектов в вашем решении, и установить Target framework. В проектах по умолчанию, доступных в сборке, это уже отражено.
  15. Библиотека BLToolkit заменена на Linq2DB. Был добавлен класс DbManager в пространстве имён Tessa.Platform.Data, обеспечивающий доступ к основным методам нового API в формате предыдущего API BLToolkit без необходимости переписывать код. Для доступа к возможностям Linq2DB используйте свойство db.DataConnection. Основное отличие заключается в том, что вместо параметров типа IDbDataParameter в методы задания команд db.SetCommand(…) передаются параметры типа LinqToDB.Data.DataParameter, но создаются они такими же вызовами методов db.Parameter(…). Также при маппинге объектов для выборок db.ExecuteObject<T> или db.ExecuteList<T> учитывайте, что регистр букв в SQL-запросе и в имени свойства класса теперь должен полностью совпадать (или для свойства должен быть задан атрибут [Column(“Name”)] с указанием точного имени колонки).
  16. Библиотека Microsoft.Unity была встроена в Tessa.dll. Пространство имён Microsoft.Practices.Unity перенесено в Tessa.Unity. Весь написанный код должен быть совместим с перенесённым пространством имён.
  17. Библиотека Microsoft.Exchange.WebServices заменена на Microsoft.Exchange.WebServices.NETStandard 1.0.12.
  18. Во всех проектах расширений и плагинов требуется удалить ссылки на библиотеки BLToolkit.4 и Microsoft.Practices.Unity, и добавить ссылку на библиотеку Linq2DB из той же папки Bin\Tessa в вашем репозитории. Также в исходных кодах проекта с расширениями замените строку “using BLToolkit.Data;” на “using Tessa.Platform.Data;”. Затем замените строку “using Microsoft.Practices.Unity;” на “using Tessa.Unity;”. Для потоковой загрузки varbinary-данных вместо db.ExecuteScalar<Stream>() используйте db.ExecuteStream().
  19. В плагины Chronos требуется перекомпилировать с новыми зависимостями, причём проекты для плагина (Tessa.Extensions.Chronos) также надо таргетировать на .NET Framework 4.6.2.
  20. Из всех проектов удалите ссылку на сборку System.ComponentModel.Composition.
  21. Сканирование всех сборок с расширениями в папке больше не будет выполняться, если отсутствует файл extensions.xml с указанием загружаемых сборок. Аналогично не будет выполняться сканирование всех сборок с плагинами в папке при отсутствии файла plugins.xml с указанием загружаемых плагинов.
  22. Приложение tadmin.exe теперь расположено в папке “Tools” сборки, ранее оно было в папке “Applications\Tools”.
  23. Замена подписи для токена безопасности SignatureKey теперь выполняется только для файлов app.json для веб-сервисов и Chronos, т.к. в файлах app.config и web.config подпись более не указывается.
  24. В Workflow API в конструкторы классов WorkflowStoreExtension, KrWorkflowStoreExtension и WorkflowManager добавлен необязательный параметр IWorkflowQueueProcessor. Если он не указан, то используется реализация по умолчанию, которой достаточно для функционирования платформы и типового решения. Но рекомендуется изменить регистрацию ваших классов ***WorkflowStoreExtension так, чтобы получать IWorkflowQueueProcessor из Unity через конструктор, это позволит расширить его в случае необходимости. Примеры изменённых конструкторов доступны в классах WfWorkflowWorker и TestWorkflowWorker.
  25. Были внесены изменения в схему данных для типового процесса согласования, поэтому для всех шаблонов документов с типовым процессом, доступных в системе (в т.ч. созданных пользователями) рекомендуется выполнить исправление структуры (нажать плитку “Исправить” в левой боковой панели). Это можно сделать от администратора (которому всегда доступны шаблоны), выбрав все шаблоны в соответствующем представлении (при этом можно отключить постраничное отображение, чтобы выбрать всё сразу). Если структура не будет исправлена, то процесс исправления будет выполняться каждый раз при создании по шаблону, т.е. пользователям будет отображаться множество лишних предупреждений (при этом создание всё равно будет корректным).
  26. Создание карточки на основании другой карточки перенесено на сервер, поэтому любые изменения в этом типовом функционале должны быть адаптированы для новой реализации. Пример использования в методе KrTypesAndCreateBasedOnTileExtension.CreateBasedOnTileAction().

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

  1. Типовой процесс согласования был расширен настройками шаблонов этапов (Создать карточку -> Настройки -> Шаблон этапов). В шаблоне можно указать несколько этапов с произвольными настройками, согласующими и доп. согласующими. В шаблоне можно указать типы документов, роли и скрипты, в соответствии с которыми этапы автоматически добавляются в процесс согласования документа. В скриптах также можно модифицировать этап, используя объектную модель на языке C#. Пересчёт этапов выполняется при запуске согласования, при начале нового цикла согласования и при нажатии кнопки “Пересчитать” вручную (рядом с кнопкой “Визуализировать”). В скриптах можно использовать как любые методы, добавляемые в расширениях, так и методы, добавляемые через карточки базовых методов, это позволяет выделить повторно используемую логику в нескольких шаблонах этапов. Также для конкретного этапа в шаблоне можно указать специальную роль “Вычисляемые исполнители” и SQL-запрос для определения списка подставляемых ролей прямо в этапе.
  2. К задачам типового процесса исполнения теперь можно прикрепить файлы. Для этого в задании по кнопке с иконкой скрепки можно перейти в карточку задания, в которой можно просмотреть или прикрепить файлы, а затем по ссылке или по той же кнопке можно вернуться в основную карточку. Если к заданию прикреплены файлы, то в области с заданием видна ссылка с указанием количества файлов, по которой также осуществляется переход в карточку задания. Кроме того, для всех заданий, к которым были прикреплены файлы, в истории заданий отображается иконка скрепки, по которой можно открыть и просмотреть файлы.
  3. В web-клиенте добавлены функции, аналогичные функционалу desktop-клиента: создание копии карточки; создание карточки на основании другой карточки, в т.ч. с копированием файлов из исходной карточки; создание файлов по шаблонам для карточек и представлений; выгрузка представлений в html и csv; отправка на ознакомление; рассылка задач по решениям в протоколе; проверка и подписание документов ЭЦП посредством установленного плагина КриптоПро. По способу использования обратитесь к документации.
  4. Значительное ускорение повторного запуска web-клиента за счёт использования механизма Service Worker API для кэширования конфигурации со стороны клиента. Для домена должен быть установлен валидный сертификат SSL, для которого браузер указывает, что “соединение защищено”. Также веб-браузер должен поддерживать этот механизм. Например, последние версии Google Chrome и Mozilla Firefox его поддерживают, а Microsoft Edge не поддерживает. Информация по тому, когда выполнялось кэширование и выполнялось ли оно вообще, доступно в плитке “О программе” (на правой боковой панели внутри плитки с именем сотрудника). Локальный кэш с конфигурацией сбрасывается при выходе из системы (logout).
  5. В приложении Tessa Applications реализовано асинхронное подключение при работе с несколькими серверами. Приложения можно использовать с момента, когда был выполнен вход на сервер приложения, в то время как раньше требовалось дождаться подключения ко всем серверам. Это актуально для работы со множеством серверов на слабых каналах связи. Также любые возникшие ошибки асинхронно отображаются во всплывающих уведомлениях и при нажатии по кнопке “Показать ошибки”.
  6. В приложении Tessa Applications изменена настройка “Таймаут открытия соединения” на “Таймаут подключения”, теперь этот таймаут накладывается на всё взаимодействие с сервером, т.к. часто соединение выполняется почти мгновенно, в то время как все остальные операции могут работать существенно более медленно при загруженности сервера.
  7. Приложение Tessa Applications теперь загружает локализацию с сервера в момент запуска, что позволяет изменить отображаемый текст через библиотеки локализации. Если подключение к основному серверу не удалось при запуске, то будет использоваться локализация по умолчанию, поставляемая вместе с приложением.
  8. Добавлены фоновые изображения для TessaClient, теперь для каждой темы доступно по 6 фонов на выбор. Изменено изображение, устанавливаемое по умолчанию для новых пользователей. Из доступных фонов для “холодной” темы были удалены 2 фона, для сотрудников, выбравших эти фоны, автоматически заменится фон на один из новых. Предыдущие фоны, а также дополнительные фоны, не вошедшие в стандартную поставку, можно загрузить с сайта.
  9. Появилась возможность добавлять фоновые изображения, отображаемые пользователю для выбора помимо стандартных изображений, в подпапку “wallpapers” в папке TessaClient. Папки, изображения из которых добавляются (в алфавитном порядке, без учёта вложенных подпапок) можно указать в настройке “WallpaperFolder” (TessaClient.exe.config), несколько папок разделяются точкой с запятой.
  10. Добавлена функция установки фонового изображения по умолчанию для всех сотрудников. Это можно сделать в настройке “DefaultWallpaper” (TessaClient.exe.config), где можно прописать путь к файлу до фонового изображения, например, “wallpapers/01.jpg”. При запуске TessaClient для пользователя будет установлено это фоновое изображение, после чего пользователь сможет его изменить и далее использовать своё изображение (или это же, если оно доступно для выбора в папке wallpapers). При изменении настройки “DefaultWallpaper” новое изображение опять будет установлено для пользователя при запуске TessaClient, после чего пользователь сможет также его изменить.
  11. При отправке на массовое ознакомление введённый при отправке комментарий теперь не только используется в почтовых уведомлениях, но и доступен в представлении по истории ознакомления, а также выводится в тексте сообщения “Вы ознакомлены с документом” вместе с отправителем и датой отправки.
  12. Добавлены настройки для разрывов масштаба на числовых осях в диаграммах. Описание конструктора диаграмм и его функций доступно в руководстве администратора.
  13. Реализована поддержка длинных путей к файлам и папкам на диске во всех клиентских и серверных компонентах платформы, которые запущены на Windows 10 или Windows Server 2016. Требования к версии Windows обусловлено тем, что соответствующая поддержка длинных путей также должна быть реализована в Win32 API. Ранее платформа не могла взаимодействовать с файловой системой по путям длиннее 260 символов. Для более ранних версий Windows действует прежнее ограничение (как и в проводнике Windows, и в других компонентах ОС).
  14. Добавлена поддержка версионности конфигурации: при изменении конфигурации через TessaAdmin или SchemeEditor теперь обновляется информация в таблице Configuration. Также по данным в этой таблице можно получить актуальную версию сборки платформы в поле BuildVersion. Если клиентское приложение поддерживает локальное кэширование конфигурации, то при запуске данные по инициализации могут не запрашиваться, если версия конфигурации не изменялась. В API информация по конфигурации доступна через интерфейс IConfigurationInfoProvider.
  15. В контроле “Список” доработана навигация клавиатурой и выбор элементов через использование сочетания клавиш Shift+стрелки.
  16. В настройках маппинга представления для контролов “Список файлов”, “Список” и “Ссылка” добавлена поддержка константных значений, указанных непосредственно в настройках (а не связанных с полем карточки).
  17. Утилита tadmin.exe: для поддержки версионности конфигурации добавлены команды IncrementVersion и BuildVersion, а также скрипты Fixes\GetBuildVersion.sql, Fixes\SetBuildVersion.sql и Fixes\SetConfigDescription.sql. Описание и примеры использования доступны в руководстве администратора, а также во встроенной в утилиту справке.
  18. Утилита tadmin.exe: в утилиту интегрированы все функции из приложений ted.exe и cest.exe, которые были удалены за ненадобностью. Справку по перенесённым командам можно получить, вызвав tadmin.exe без параметров. Также команды описаны в руководстве администратора.
  19. API: В Workflow API добавлены сигналы, обрабатываемые в методе IWorkflowWorker.ProcessSignal. Сигналы позволяют обработать внешнее воздействие на подпроцесс Workflow API, например, отзыв процесса или обработка по таймеру из плагина Chronos. Из обработчика сигнала можно выполнять те же действия, как и из других методов IWorkflowWorker, в т.ч. выполнять переходы, стартовать или завершать подпроцессы, создавать или изменять счётчики и др. Пример отправки сигнала доступен в тестовом расширении TestProcessTileExtension, пример обработки - в тестовом бизнес-процессе TestWorkflowWorker.
  20. API: Добавлено событие RowAdding для GridViewModel, позволяющее задавать позицию в таблице для вставки новой строки.
  21. API: Добавлена возможность указать дополнительный контент снизу от формы задания через свойство TaskWorkspaceViewModel.AdditionalContent в расширении CardUIExtension, в т.ч. в виде ссылки, при нажатии на которой выполняется произвольное действие - это метод TaskWorkspaceViewModel.SetLink(). Заданный контент может отображаться в т.ч. на форме задания, которое ещё не взято в работу. Пример есть в руководстве разработчика. Метод SetLink() использован для формирования ссылки на файлы задания, это метод WfCardUIExtension.ModifyResolutionTask().
  22. API: Добавлена возможность указать иконку-тег для заданий в карточке через метод TaskWorkspaceViewModel.SetTag() в расширении CardUIExtension. Пример есть в руководстве разработчика. Метод SetTag() использован для формирования ссылки на файлы задания, это метод WfCardUIExtension.ModifyResolutionTask().
  23. API: Изменён механизм поиска и загрузки сборок расширений Tessa и плагинов Chronos. Ранее использовалась библиотека MEF, теперь используется собственная реализация Tessa.Platform.Composition (Chronos.Platform.Composition для Chronos).
  24. API: Возможность редактирования и замены номера, определяемая настройками типового решения и правилами доступа, теперь вычисляется на сервере и доступно вызовами card.TileIsVisible(ButtonNames.ReplaceNumber) и аналогично ButtonNames.EditNumber.
  25. API: Обновлены библиотеки: Cmd.Net 1.4.1 (встроен в Tessa.dll), Linq2DB 1.9.0, Microsoft Unity 4.0.1 (встроен в Tessa.dll), Newtonsoft.Json 10.0.3 (встроен в Tessa.dll), OpenPop.NET 2.0.6.1120 (встроен в Tessa.dll), Syncfusion.SfChart.WPF 15.3460.0.26. Также были обновлены другие библиотеки до актуальной версии .NET Framework, при этом версии самих библиотек не изменились.

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

  1. Оптимизация работы приложений, связанная с обновлённой архитектурой платформы. В частности, TessaClient, TessaAdmin и Chronos теперь быстрее запускаются.
  2. Оптимизировано чтение содержимого больших файлов из базы данных.
  3. Chronos теперь может загружать сборки с плагинами, у которых одинаковые имена, но которые располагаются в разных папках. Например, сборка из проекта Tessa.Extensions.Chronos может быть загружена из разных папок, где в одной сборке будут плагины проекта, а в другой - плагины некоторого переносимого модуля.
  4. Исправлены ошибки в диаграммах.
  5. Колонка “Дата рождения” в таблице с сотрудниками PersonalRoles теперь имеет тип Date вместо DateTime.
  6. В Tessa Applications исправлена возможность запустить приложение через функцию “Запустить ещё один экземпляр”, пока выполняется скачивание приложения.
  7. Исправлен импорт представлений с разными алиасами, но одинаковым ID. Такая ситуация может возникнуть в случае некорректного слияния файла .view в репозитории. Теперь представления импортируются по алиасу, а идентификатор остаётся неизменным в базе данных.
  8. Оптимизированы представления, связанные с массовым ознакомлением.
  9. В конструкторе схемы данных при сохранении через горячую клавишу Ctrl+S теперь всегда применяются изменения в значениях по умолчанию, даже если не было потери фокуса в поле для ввода значения.
  10. Если при импорте представлений с заменой прав доступа указаны роли, которые отсутствуют в системе, то в сообщении об ошибке теперь выводятся алиас представления и идентификатор роли.
Back to top