如何覆盖EditorConfigurator或DefaultModelValueHandler

2020-09-07 07:54发布

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

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


我想获取更多参考行以显示在PCM Backoffice editorArea上。 它是引用类型,因此我可以覆盖EditorConfigurator.updateObjectsReferencedByEditor()或DefaultModelValueHandler.getSimpleValue()。

问题是,我不确定如何覆盖其中的任何一个。 有人尝试过吗?

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

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


我想获取更多参考行以显示在PCM Backoffice editorArea上。 它是引用类型,因此我可以覆盖EditorConfigurator.updateObjectsReferencedByEditor()或DefaultModelValueHandler.getSimpleValue()。

问题是,我不确定如何覆盖其中的任何一个。 有人尝试过吗?

付费偷看设置
发送
4条回答
暮风yp
1楼 · 2020-09-07 08:25.采纳回答

嗨,

我认为这不是您应该采取的方式。 请考虑创建一个扩展 com.hybris.cockpitng.editor.defaultmultireferenceeditor.DefaultMultiReferenceEditor 的新编辑器。 那里有一个 #render 方法,每次选择显示新产品时都会调用该方法。 在这种方法中,您可以轻松加载所需的任何数据,以根据需要加载操作数据。 可能还可能需要创建一个扩展 com.hybris.cockpitng.editor.commonreferenceeditor.ReferenceEditorLayout 的新布局,并在编辑器的 #createReferenceLayout 方法中创建 (每次选择显示新项目时都会调用它)。 然后,您可以将此编辑器分配给特定视图中的特定属性。

还请记住编辑器和布局之间的区别: -编辑器负责解释模型中的数据并进行更新(我想它不应该使用继承的模型来更新模型) -布局负责显示编辑器提供的数据(您可以在此处尝试添加一些元素)。

希望有帮助, Jacek

闻人可可
2楼-- · 2020-09-07 08:22

嗨,

这完全取决于您是否对继承的项目调用 removeSelectedObject addSelectedObject refreshObjects changeSelectedObject 。 如果是这样,则可以将它们直接分配给显示的项目,并且可能不是应用程序的预期行为。 请确保切勿使用不正确的引用列表调用 com.hybris.cockpitng.editors.EditorListener#onValueChanged

干杯, 雅切克

骆驼绵羊
3楼-- · 2020-09-07 08:15

嗨,

referenceModelProperties bean不会足够覆盖吗?

干杯, 雅切克

骆驼绵羊
4楼-- · 2020-09-07 08:30

感谢Jacek,您总是会指出正确的方向。

我尝试了您的方法。 这是我重写的方法 collectReferencedObjects 与此有关的有两个问题:

  1. 我没有找到直接方法来获取当前产品。 由于当前产品的值可能为零,但我想从当前产品上方的变体中获取更多结果。

  2. 我希望仅在用户在PCM Backoffice上时执行此操作。 这意味着我想添加一些权限检查。 有什么方法可以通过编程检查吗?

非常感谢您的投入。 另外,为了提供一些背景知识,我们想实现数据继承。 我们使用"产品"和"变型产品"在多个级别上设置了产品。 我想从所有级别获取数据并运行一些合并逻辑。

我们目前在Cockpit中进行此操作,但是由于我们必须迁移到PCM Backoffice。

感谢Pratik

一周热门 更多>