<< Click to Display Table of Contents >> Что нового в Directum RX 4.12 > Версия для локальной установки > Модификация системы Объектная модель |
![]() ![]() |
В разделе описаны новинки:
•Добавление контрола с типом «Идентификатор» в диалог ввода
•Добавление комментариев в историю при изменении прав доступа
•Перезагрузка свойств сущности
•Настройка тайм-аута для синхронного завершения обработчиков
•Изменения базового решения Directum RX
1.В версии 4.12 появилась возможность изменять свойства объектов при выборе варианта процесса. Для этого в репозитории Sungero.Workflow.ProcessKinds добавлено свойство Operations.
2.Теперь можно задавать сотрудников, для которых модуль не должен отображаться в проводнике. Для этого в справочнике Sungero.CoreEntities.IModuleView появилось новое свойство ExceptedRecipients – субъекты прав, для которых модуль скрыт.
3.Теперь в карточках заданий и уведомлений можно задать одно расположение вложений и предпросмотра, а в карточках задач – другое. Для этого в репозитории Sungero.CoreEntities.ExplorerViews появились свойства:
•IsPanelsOnRightInAssignment – признак того, что в карточках заданий и уведомлений предпросмотр и вложения отображаются справа;
•IsPanelsOnRightInTask – признак того, что в карточках задач предпросмотр и вложения отображаются справа.
Добавление контрола с типом «Идентификатор» в диалог ввода
В новой версии появился метод AddIdentifier(), который поддерживает идентификаторы всех объектов с типом long. С помощью метода в диалоге ввода можно запрашивать у пользователя идентификатор объекта. Например, чтобы найти по нему документ.
Добавление комментариев в историю при изменении прав доступа
Теперь при выдаче или изъятии прав доступа на объект можно к стандартному комментарию в истории добавлять свой. Например, таким образом при выполнении фонового процесса «Копирование прав доступа» к комментарию о выдаче прав добавляется информация о том, что права скопированы от определенного сотрудника:
Для добавления комментария используется новый класс HistoryCommentScope. С помощью его методов SetComment() и SetLocalizationComment() можно добавлять простой текстовый комментарий либо локализованный. Он заполняется при вызове метода выдачи прав Grant() или изъятия Revoke() и RevokeAll() и добавляется к стандартному комментарию через точку.
Пример кода:
using (var historyCommentScope = new HistoryCommentScope())
{
var document = Sungero.Content.ElectronicDocuments.Get(documentId);
historyCommentScope.SetLocalizationComment("CopyAccessRights", fromUser.DisplayValue, fromUser.Id);
document.AccessRights.Grant(toUser, copyAccessRightsTypes);
document.AccessRights.Save();
}
Иногда перед редактированием сущности требуется ее перезагрузить, получив актуальное состояние из базы данных. Это необходимо, чтобы избежать ошибок рассинхронизации данных, которые могут возникнуть, если сущность одновременно изменяют разные запросы или асинхронные обработчики.
В новой версии можно программно обновить свойства сущности из базы данных. Для этого появился метод Reload().
Настройка тайм-аута для синхронного завершения обработчиков
С помощью метода ExecuteAsync() можно программно вызывать асинхронные обработчики, а также задавать всплывающие сообщения об их запуске и завершении.
Если используются перегрузки метода с параметрами startedNotification и completedNotification для отображения всплывающего сообщения, то по умолчанию после вызова метода в системе срабатывает тайм-аут. В течение двух секунд ожидается синхронное завершение обработчиков. В это время в веб-клиенте отображается индикатор выполнения действия, и если обработчики не завершены, то для пользователя появляется сообщение. Например, после согласования договор преобразуется в формат PDF с отметкой об электронной подписи. Если преобразование занимает больше 2 секунд, то система уведомляет пользователя об этом.
В новой версии для метода ExecuteAsync() добавлены перегрузки. В них с помощью нового параметра timeout можно задать свое значение тайм-аута. Например, увеличить значение, чтобы подождать, пока выполнятся обработчики, либо совсем убрать время ожидания:
// Отключить тайм-аут ожидания синхронного завершения обработчика.
handler.ExecuteAsync("message", user, TimeSpan.Zero);
// Установить тайм-аут ожидания синхронного завершения обработчика.
handler.ExecuteAsync("message", user, TimeSpan.FromMilliseconds(500));
Изменения базового решения Directum RX
Изменения базового решения Directum RX см. в разделе «Изменения в версии 4.12».
© Компания Directum, 2025 |