<< Click to Display Table of Contents >> Администрирование (Windows) > Обновление системы > Обновление среды разработки > Изменения базового решения Directum RX Изменения в версии 4.4 |
Ознакомьтесь с изменениями базового решения Directum RX. Если используется заказная разработка Directum RX или в среде разработки внесены собственные модификации, код которых связан с перечисленными изменениями, то обновите разработку.
Сокращение избыточных запросов в коде
Для оптимизации работы системы проведен анализ кода стандартной разработки. Благодаря этому найдены участки кода, где встречались избыточные вызовы асинхронных обработчиков, а также запросы в событии обновления карточек сущностей (Refresh) и «тяжелые» запросы получения прав подписи. В новой версии количество таких запросов сократилось:
1.Сокращено количество вывозов асинхронного обработчика, который отвечает за назначение прав доступа на документы согласно настройкам из справочника Правила назначения прав. Ранее асинхронный обработчик вызывался при каждом изменении карточки документа, и это могло нагружать систему. Теперь он вызывается только при изменении конкретных свойств: Вид документа, Категория договора, Наша организация, Подразделение, Ведущий документ.
Если в вашей или заказной разработке перекрыт справочник Правила назначения прав, то для сохранения совместимости можно настроить запуск асинхронного обработчика чаще, т.е. при изменении других свойств карточки, например, подписанта, исполнителя по документу. Для этого необходимо в типе нужного документа в обработчик Изменение значения свойств карточки (Changed) добавить код:
if (e.NewValue != null && !Equals(e.NewValue, e.OriginalValue))
e.Params.AddOrUpdate(Constants.OfficialDocument.GrantAccessRightsToDocumentAsync, true);
2.Оптимизирован код для обновления карточек документов с типом «Официальный документ» (OfficialDocument) и задач с типом «Задача на согласование по регламенту» (ApprovalTask):
•в событии Обновление формы (Refresh) удалены избыточные запросы Remote-функций. Так как это событие выполняется часто, то каждый вызов Remote-функций мог влиять на производительность системы;
•логика получения данных для определения видимости и доступности свойств карточки перенесена из события Обновление формы (Refresh) в событие Показ формы (Showing);
•для передачи данных между обработчиками событий теперь используется параметр e.Params.
При изменении свойств карточки данные разово запрашиваются с веб-сервера и обновляются в e.Params. Благодаря этому другие обработчики получают новые данные из параметра, а не с веб-сервера, что сокращает нагрузку на него;
•логика получения данных также изменена. Ранее обработчик часто получал сущность целиком, хотя нужно было конкретное свойство. Теперь везде, где необходимо, обработчик получает только используемые свойства.
Например, при открытии карточки документа определяется видимость области регистрации. Для этого используются персональные настройки текущего сотрудника. Ранее обработчик получал сущность целиком, а теперь только признак отображения области регистрации.
3.Оптимизированы запросы, которые проверяют наличие прав подписи у сотрудника на документ. Например, при подписании документа или при заполнении подписывающего. Ранее запросы прав подписи могли получать лишние данные с веб-сервера. В новой версии запросы прав подписи упростились, и система работает быстрее.
В ходе доработок обновлена объектная модель базового решения Directum RX:
1.Для типа документов «Официальный документ» (OfficialDocument) добавлены:
Элемент разработки |
Описание |
---|---|
Структуры |
|
OfficialDocumentParams |
Содержит набор полей для получения параметров карточки документа и кэширования |
Серверные функции |
|
GetOfficialDocumentParams() |
Получает параметры документа для кэширования |
GetSignatoriesIds() |
Получает список ИД подписывающих по критериям |
ExpandSignatoriesBySignatureSettings() |
Получает развернутый список подписывающих по правам подписи |
SignatorySettingWithAllUsersExist() |
Проверяет наличие права подписи с ролью «Все пользователи» |
GetDefaultSignatory() |
Получает подписывающего по умолчанию |
CanSignByEmployee() |
Проверяет наличие права подписи у сотрудника |
GetSignatureSettingsByEmployee() |
Получает права подписи сотрудника |
GetSignatureSettingsQuery() |
Получает права подписи по документу |
Разделяемые функции |
|
CreateParamsCache() |
Создает кэш с параметрами документа |
HasDocumentRegistersByDocument() |
Проверяет, имеются ли подходящие журналы регистрации по документу |
2.Из типа документов «Официальный документ» (OfficialDocument) функции помечены устаревшими:
Устаревшая функция |
Новые функции |
---|---|
Серверные функции |
|
GetSignatories() |
GetSignatoriesIds(), SignatorySettingWithAllUsersExist(), GetSignatureSettingsByEmployee(), CanSignByEmployee() |
GetEmployeeSignatories() |
GetSignatoriesIds(), GetSignatureSettingsByEmployee() |
GetSignatureSettings() |
GetSignatureSettingsQuery() |
Разделяемые функции |
|
GetDefaultSignatory() |
GetDefaultSignatory() |
3.В модуле Docflow добавлена серверная функция GetRegistrationSettings(), которая получает настройки регистрации по параметрам документа из кэша.
4.В типе задачи «Задача на согласование по регламенту» (ApprovalTask) функция CreateCacheParams() переименована в CreateParamsCache().
5.Для типа документов «Приложение к документу» (Addendum) добавлена серверная функция GetSignatureSettingsWithLeadingDocument(). Она получает права подписи на приложение с учетом ведущего документа.
Отправка документов по электронной почте
Для типа документов «Официальный документ» (OfficialDocument) клиентская функция CreateEmail(List attachments) помечена как устаревшая. Вместо нее используется CreateEmail(string email, List attachments).
Обмен с контрагентами
В ходе доработки механизма отправки ответов контрагенту через сервис обмена СБИС функции модуля Exchange помечены как устаревшие:
•ProcessSbisDocumentsPackage();
•SendAnswerDocumentsPackage();
•SendPackageServiceDocuments().
Функции оставлены для совместимости, в стандартной разработке они больше не используются.
Регистрация документов
В типе сущности «Настройка регистрации» (RegistrationSetting) модуля Docflow:
1.В разделяемой функции GetAvailableSettingsByParams() удален вызов GetAllCached и добавлен вызов серверной функции GetAvailableRegistrationSettings().
2.В серверной функции GetDocumentRegistersByParams():
•удален вызов GetAllCached;
•оптимизирована загрузка сущностей;
•добавлена серверная функция HasDocumentRegistersByParams(), которая используется, если нужно узнать только наличие журнала регистрации.
3.В серверной функции GetByDocumentRegister() удален вызов GetAllCached и добавлен вызов серверной функции GetRegistrationSettingByDocumentRegister().
Прочие изменения
1.В модуле Docflow серверная функция GetManager() стала виртуальной.
2.В типах документов «Официальный документ» (OfficialDocument) и «Приложение к документу» (Addendum) разделяемая функция IsProjectDocument() помечена как устаревшая. Вместо нее используется функция IsProjectDocument(List).
3.Библиотека AsposeExtensions.dll обновлена под целевую платформу netstandard 2.0. Версии библиотек обновлены:
•Aspose – до 22.2;
•Aspose.PDF – до 22.1;
•Aspose.Words – до 22.3;
•System.Drawing.Common – до 5.0.2.
4.В библиотеке AsposeExtensions метод AddSignatureMarkToDocumentPage помечен устаревшим. Вместо него рекомендуется использовать AddStampToDocumentPage.
5.В модуле RecordManagement отмечены устаревшими серверные функции:
•SynchronizeParentTaskAttachments() – вместо нее рекомендуется использовать SynchronizeAttachmentsToDocumentReview();
•SynchronizeAttachmentsToReviewTask() – вместо нее рекомендуется использовать SynchronizeAttachmentsToDocumentReview().
6.Для типа справочников «Подразделение» (Department) серверная функция DeleteSystemSubstitutions() помечена как устаревшая. Вместо нее используется DeleteSystemSubstitutions() модуля Company.
© Компания Directum, 2024 |