在Backoffice登录后设置默认目录(导航节点)

2020-09-13 18:42发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我的用例是这样的:

  • 我们有catalogA和catalogB(所有用户组的可读目录中都有)。

  • 如果用户是userGroupA的成员,则登录后应默认选择catalogA。

  • 如果用户是userGroupB的成员,则登录后应默认选择catalogB。

到目前为止,我发现最好的方法是重写方法 GenericInitAdvancedSearchController.createAdvancedSearchInitContext(NavigationNode navigationNode),该方法在参数中包含一个navigationNode

我的问题是我该如何定义一个新的导航节点,因为该对象只是通过套接字从小部件socketId =" nodeSelected"传递的,是否有一个初始化程序,一个通过目录生成一个的工厂。

谢谢。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我的用例是这样的:

  • 我们有catalogA和catalogB(所有用户组的可读目录中都有)。

  • 如果用户是userGroupA的成员,则登录后应默认选择catalogA。

  • 如果用户是userGroupB的成员,则登录后应默认选择catalogB。

到目前为止,我发现最好的方法是重写方法 GenericInitAdvancedSearchController.createAdvancedSearchInitContext(NavigationNode navigationNode),该方法在参数中包含一个navigationNode

我的问题是我该如何定义一个新的导航节点,因为该对象只是通过套接字从小部件socketId =" nodeSelected"传递的,是否有一个初始化程序,一个通过目录生成一个的工厂。

谢谢。

付费偷看设置
发送
4条回答
追夢秋陽
1楼 · 2020-09-13 18:46.采纳回答

我这样做的方法是通过覆盖FullTextSearchController中的initializeInContext方法,该方法在用户首次登录时被调用。这是您可以检查已登录用户的组并将条件添加到solr查询的方法。/p>

bbpeas
2楼-- · 2020-09-13 19:04

调试登录过程后,我发现当用户登录到产品座舱时,默认情况下会显示所有产品(因为Hybris默认情况下会创建SolrSearchQuery来检索所有产品),因此有一种方法可以 拦截并更改该查询以为其添加条件。

在此先感谢您提供的任何帮助。 干杯。

哎,真难
3楼-- · 2020-09-13 18:48

嗨,

有一个 Advanced Search Engine Generic Initializer 小部件,该小部件可将您希望添加的任何条件添加到搜索中。 我会做的是:

  1. 为不同的组引入了两个 Explorer Tree 配置

  2. 通过引入两个虚拟输出套接字(我们称它们为 catalogA catalogB )和两个设置(扩展了 explorerTreeSelectionProxy 多路复用器小部件)。 catalogA_expression`和 catalogB_expression ); 这两个设置应该提供一个SpEL表达式,如果以 #root 传递适当的节点(即#root.id EQ'explorer-tree-nodes-catalogA'如果 表示 catalogA 的节点的ID设置为 explorer-tree-nodes-catalogA

  3. 创建实现 com.hybris.backoffice.widgets.advancedsearch.AdvancedSearchInitializer 的新bean,并根据选定的节点添加适当的条件

  4. 引入了新的 Advanced Search Engine Generic Initializer 小部件,该小部件指向上一步中创建的bean

  5. 使用初始化程序和具有高级搜索的初始化程序将 explorerTreeSelectionProxy 中的虚拟套接字连接

这样,您将使那些节点按预期工作。

要默认选择那些节点,可以通过以下小部件网格物体更改来实现:

  1. PerspectiveContainer perspectiveSelected 套接字与 Condition Evaluator 连接,以检查其是否为 hmc2

  2. 将此条件评估器 true 套接字与 Property Extractor 连接,该套接字将创建 com.hybris的新实例。 backoffice.navigation.TreeNodeSelector

  3. 将此属性提取器 genericOutput Explorer Tree nodeIdSelected 套接字

此解决方案的唯一问题是,每次打开管理控制台时,它将选择该节点。

干杯, Jacek

小c菟菟
4楼-- · 2020-09-13 19:09

嗨,

我并没有真正想要实现的目标。 我的猜测是:

    Administration Cockpit 左侧的
  1. Explorer树包含两个附加节点-每个节点代表不同的目录

  2. 当用户登录时,根据他所属的组,将选择一个特定的节点

  3. 选择传播到高级搜索,最终传播到集合浏览器,其中显示分配给选定目录的产品列表

我是对的吗? 如果是这样,那么用户是否仍然可以更改目录并在 Advanced Search 条件下自由操作? 您正在使用什么版本的SAP CX?

干杯, 雅西克

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答