Ограничить результаты поиска пользователей в определенной перспективе внутреннего офиса

#hybris #backoffice

#sap-commerce-cloud #бэк-офис

Вопрос:

Я работаю с бэк-офисом SAP Hybris, и у нас есть три разные роли бэк-офиса управления, каждая со своей собственной перспективой.

  • Менеджер по продуктам
  • Менеджер CMS
  • Менеджер пользователей

Названия этих ролей должны быть достаточно ясными, чтобы объяснить, что они делают. Теперь менеджеру в внутреннем офисе можно назначить несколько ролей, потому что часто на небольших рынках люди, которые управляют пользователями, также управляют продуктами и статьями. Допустим, теперь мы хотим ограничить результаты поиска, например, в пользовательском представлении в внутреннем офисе, когда вы находитесь только в перспективе управления продуктами.

Первое, о чем вы можете подумать, это ограничения поиска, которые могут быть добавлены и назначены роли, которая добавляет SQL к исходному поисковому запросу в конце, чтобы ограничить результаты.

Однако это не влияет на то, в какой перспективе вы работаете в Backoffice. Если я, например, хочу, чтобы это ограничение поиска применялось только тогда, когда пользователь находится в перспективе управления продуктами, не очевидно, как это сделать. Я думаю, потому что область ограничения поиска является глобальной без такой детализации.

Затем в бэк-офисе у нас есть виджет инициализатора поиска Zk components. Они могут добавлять условия поиска, которые будут отправлены поисковой системе в фоновом офисе. Однако это повлияет на пользовательский интерфейс в бэкофисе, потому что он не является просто невидимым слоем, добавляемым в конце поиска, выполняемого пользователем. Это создает проблему, поскольку пользователь управляет глобальным и единственным оператором в интерфейсе поиска внутреннего офиса. Итак, если я добавлю средство инициализации поиска с условием, которое должно добавить условие И в конце запроса, чтобы ограничить результаты, а затем пользователь изменит оператор глобального условия на ИЛИ, тогда результаты, которые пользователь получает, непредсказуемы и в основном неверны.

Итак, мне не хватало какого-то среднего уровня, где я мог бы добавить такое ограничение в Backoffice, которое влияет на поиск, выполняемый пользователем с определенной ролью в определенной перспективе, не влияя на пользовательский интерфейс бэк-офиса и пользовательский опыт?

Ответ №1:

Я не смог найти общий вариант использования с другими разработчиками во внутренней сети SAP, поэтому мне пришлось искать решение самостоятельно.

Существует возможность устанавливать ограничения на поиск в сеансе с помощью SearchRestrictionService. Это повлияет только на текущий сеанс, который вы используете. Вы можете переопределить контроллер виджета для средства выбора перспективы или переключателя ролей. Поскольку смена ролей обычно меняет перспективы, это также работает.

Затем вы просто добавляете ограничения локального поиска сеанса для этого сотрудника, использующего Backoffice, и делаете их взаимодействие полностью персональным, при этом полностью контролируя их просмотр и возможности с помощью ограничений поиска сеанса.