<< Click to Display Table of Contents >> Объектная модель > Базовое решение Directum RX > Docflow – документооборот > Автоматическое назначение прав на документы Механизм массового назначения прав на документ |
Массовое назначение прав происходит на документы, подходящие под правила, в которых:
•состояние «Действующее»;
•установлен признак GrantRightsOnExistingDocuments (Массово назначать права на созданные ранее документы);
•были изменения в свойствах, отвечающих за критерии подбора документов или назначения прав.
При сохранении таких правил:
•в BulkProcessingState (Массовое назначение прав) устанавливается значение Planned (Запланировано);
•вызывается асинхронный обработчик «Автоматическое назначение прав на документы при создании/изменении правила».
Асинхронный обработчик делит все подходящие под правило документы на пакеты. Размер пакета устанавливается параметром DocsForAccessRightsRuleProcessingBatchSize в таблице Sungero_Docflow_Params. Для каждого пакета создается свой элемент очереди со статусом «Scheduled».
Фоновый процесс «Документооборот. Массовое назначение прав на документы» гарантирует, что асинхронных событий по массовой выдаче прав будет запущено не больше, чем указано в параметре QueueItemsCountForAccessRightsBulkProcessing таблицы Sungero_Docflow_Params.
Для этого фоновый процесс:
1.Проверяет количество элементов очереди со статусом «InProcess». Если таких элементов меньше, чем указано в параметре, то добирает элементы очереди со статусом «Scheduled» до значения параметра и запускает для них назначение прав (см. пункт 5). Отбор элементов очереди происходит согласно приоритету. Если превышено количество элементов, то переходит к пункту 6.
2.Запускает назначение прав по отобранным элементам:
•изменяет статус на «InProcess» для правил, указанных в отобранных элементах очереди;
•в отобранных элементах очереди изменяет статус на «InProcess». Запускает по ним асинхронные обработчики «Автоматическое назначение прав на список документов».
3.Удаляет те элементы очереди, у которых:
•статус «Processed»;
•LaunchId (ИД запуска) в элементе очереди не соответствует LaunchId (ИД правила) правила;
•удалено правило.
4.Если по правилу не осталось элементов очереди в статусе «Scheduled» или «InProcess», то запускается асинхронный обработчик «Очистка статуса обработки правила назначения прав». Он очистит BulkProcessingState (Массовое назначение прав) в правиле назначения прав.
5.Асинхронный обработчик «Автоматическое назначение прав на список документов» назначает права на документы, указанные в элементе очереди, и изменяет статус элемента очереди на «Processed». Для документов, на которые не удалось назначить права, создается новый элемент очереди с приоритетом 0.
© Компания Directum, 2024 |