<< Click to Display Table of Contents >> Разработка > Рекомендации по разработке для масштабируемых систем > Оптимизация длительных процессов Массовое удаление субъектов прав |
![]() ![]() |
Иногда за один раз нужно удалить множество субъектов прав. Вручную удалять каждую запись трудоемко, а массовое удаление снижает отклик системы. Поэтому, например, откажитесь от удаления ошибочно созданных записей или неиспользуемых ролей в пользу менее ресурсоемких способов.
Пример 1. Удаление из справочника ошибочно созданных записей
Предположим, для загрузки данных организационной структуры используется интеграция с внешней системой. Ключевым полем для поиска загруженных сотрудников в Directum RX является поле с идентификатором внешней системы. Если изменяется внешняя система, меняются и значения ключевого поля. Если не доработать настройки интеграции, то при следующей загрузке данных в систему Directum RX учетные записи сотрудников дублируются. Нужно удалить ошибочно продублированные записи.
В рабочее время рекомендуется отказаться от массового удаления учетных записей сотрудников, так как оно снижает быстродействие и отклик системы для всех пользователей. Это связано с медленным удалением записей из СУБД: в ней нет полного покрытия индексами ограничений (constraints), и их проверка происходит длительное время.
Вместо удаления рекомендуется выбрать один или несколько вариантов:
•измените состояние учетных записей на Закрытая;
•в редакторе типа справочника Сотрудники (Employee) добавьте новое свойство – признак того, что запись отмечена на удаление. В событии UI-фильтрация (UIFiltering) или Фильтрация (Filtering) напишите логику, с помощью которой в открытых списках не будут отображаться записи с признаком на удаление;
•настройте замещения на самих себя для дублирующихся записей сотрудников.
Пример 2. Удаление неиспользуемых ролей
Например, для назначения прав на регистрацию документов использовались роли. Они автоматически генерировались в разрезе журналов регистрации. В процессе работы создавались тысячи новых ролей.
После опытной эксплуатации подход к выдаче прав изменился, и для назначения прав стали использовать замещения на виртуального сотрудника. В результате в системе остались ранее созданные тысячи неиспользуемых ролей.
В этой ситуации вместо удаления ролей рекомендуется:
•переименовать роли. Вместо названия использовать символы, чтобы при like-вводе такие записи не попадали в выпадающий список. Например, можно использовать символы кодировки UTF-8;
•изменить состояние роли на Закрытая.
© Компания Directum, 2024 |