2017-02-08 53 views
1

Я настраиваю рабочий процесс для запросов на предоставление/отмену роли в OIM 11.1.2.3/SOA 11.1.1.9.Рабочий процесс отклонения OIM/SOA по умолчанию

Если запрос инициирован пользователем, который находится в определенной роли администратора, и запрос должен назначить/отозвать определенную роль, я могу настроить правило потока для утверждения запроса, и роль будет предоставлена ​​/ аннулировать с помощью «прямой» обработки рабочего процесса.

Если запрос инициирован системным администратором, я могу использовать готовое правило рабочего процесса для утверждения запроса, и роль будет предоставлена ​​/ отменена с помощью «прямой» обработки рабочего процесса.

Мне нужно отклонить запрос в любых других обстоятельствах.

Я думаю, что способ сделать это - создать настраиваемый композит рабочего процесса SOA, который имеет только один результат REJECT и настроить его как окончательное правило рабочего процесса, чтобы он выполнялся, если предыдущие правила не совпадают.

Правильно ли этот подход к достижению требования? Я не хочу запускать какое-либо человеческое взаимодействие, просто отвергаю изменение и завершаю обработку.

ответ

1

Мы решили достичь этого требования, используя валидатор данных вместо рабочего процесса REJECT SOA.

Мы создали специальный валидатор, который расширяет AssignRolesDataValidator. Если запрос инициирован любым, кто не является администратором, а не в требуемой роли/роли администратора для запрашиваемой роли, валидатор данных выдает исключение InvalidRequestDataException, и на экране отображается сообщение об ошибке. Обработка продолжается и оценивает правила рабочего процесса, если метод validate() проверки достоверности данных завершается без исключения, то есть если запрос разрешен сделать этим пользователем. Правила рабочего процесса затем просто касаются того, как утверждается запрос (в каждом случае выше, через «прямое» назначение и без рабочего процесса), а не с решением одобрить или отклонить.

Это позволяет использовать только «действительные» запросы (назначение ролей действительными членами роли администратора), но затрудняет настройку логики потока. Нам нужно будет поддерживать как код проверки данных, так и правила рабочего процесса.

Любые отзывы/рекомендации будут наиболее желанными.