点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
让我们以Backoffice为例。 我们查看一个产品,并找到链接的变体的参考列表,我们通过单击进入其中一个,然后在该编辑器中单击垃圾箱将其删除。 即实际的变体,而不是列表中的参考。 然后关闭编辑器,并刷新父窗口小部件。
在下面的图像中,您可以看到列表。 在这里,我们选择F-6522,它链接了许多88xxxx变体,在"产品变体"下以列表形式显示。 我正在谈论的是带有88xxxx的列表:
从产品中删除变体之后。 请注意,父窗口小部件已刷新的弹出窗口后面以及弹出窗口本身为空。 这仅在这里有效。
上面解释的流程适用于具有到目前为止我们看到的变体列表的产品,但仅此而已。 没有其他人。 如果我们有一个具有集合/列表的客户(或任何其他模型)并执行相同的操作,即进入客户列表中的一项,然后将其删除,则仅删除该模型,而父小部件则不会 刷新后,导致模型被删除,但列表条目保留在父窗口小部件编辑器区域中,直到您重新加载页面为止。 我们希望所有地方都像对待产品和变体一样发挥作用,但我们无法弄清楚是什么使产品上的变体列表起作用,以及为什么它对于Backoffice中的任何其他模型都不起作用。
如果任何模型的列表中只有一项,则根本不会刷新窗口,并且即使删除了后端的模型并且列表现在为空,也将保留所有内容。 如果您在此编辑器中手动按刷新,它将消失。 同样,如果您重新加载页面,那么一切都正确,但是Backoffice似乎陷入了不一致的客户端状态。 当从参考编辑器中删除模型或更新模型时,我们不确定发生了什么,或者是否有设置用于刷新父编辑器区域小部件。
(65.5 kB)
我将其放在此处,因为这是一个重要发现。 我们现在正在运行6.3.0.5,我们已经找到了问题。 就像您显示的一样,DefaultEditorAreaController仅侦听objectDeleted事件。
com.hybris.cockpitng.widgets.baseeditorarea.DefaultEditorAreaController#handleObjectDeletedEvent
但是,当您从多引用编辑器(如上图所示)从对话框弹出窗口中删除模型时,它仅发送ObjectsDeleted(注意复数形式为's'),编辑器区域不会收听。 因此,这一定是Hybris的Backoffice中的错误,因为如果我们手动发送objectDeleted事件,它将起作用。 未经修改的原始标准Backoffice中也存在此问题。
我们可以通过扩展DefaultEditorArea并为ObjectsDeleted事件添加另一个GlobalCockpitEvent来解决此问题,这将使删除工作正常进行。
这里是无法正常工作的地方,我有其他模型的多重引用列表,并且更新了名称,如警报所示,但客户端列表 处于不一致状态,因为编辑器区域窗口小部件尚未刷新。 手动刷新后,一切正常:
嗨,
您使用什么版本? 我刚刚尝试了最新的一个,一切似乎都按预期工作。
最好的问候, 雅切克
在这里,我再次单击了列表中的引用,您可以在此处看到它是一致的,并且该模型具有我设置的新名称的正确值。 如果我单击垃圾桶并将其删除,它是列表/集合中最后一个引用的模型,那么即使警报提示已删除后端/服务器上已删除的旧窗口,该窗口也只保留旧值。 后台客户端不会刷新:
已在Hybris 6.7中修复
# p #嗨,
我还没有真正了解您的情况。 让我来描述一下EditorArea的工作方式:它注册了一个全局事件侦听器,该侦听器在删除/更新对象时执行一些检查。 它遍历已更改项的列表,并检查它们是否与编辑器区域中显示的项和/或被其直接引用的项完全相同(属于多引用类型或等于的任何属性) 任何单一参考属性)。
希望它能满足您的需求, 雅切克
一周热门 更多>