首页 > 解决方案 > 在 Hybris 中找出模型属性发生变化的地方

问题描述

我在CategoryModel中有一个名为visibility的自定义属性,它既可以从后台手动更改,也可以从检查该类别下是否至少有一个产品的 cronjob 进行更改。如果它是从后台更改的,即使在其下找到任何产品,cronjob 也不应该更改可见性。当从后台更改属性时,名为Last Changes in Backoffice的部分会注册与属性相关的更改,但我找不到它是如何完成的或在哪里完成的。

如何找出模型属性发生变化的地方?从 Backoffice 或 Cronjob 或类似的东西?

标签: javacronjobshybris

解决方案


SavedValues - 跟踪属性值修改

如果您在 Backoffice 中修改属性的值,则属性的原始值(修改前)和新值(修改后)存储在 SavedValues 中。早期的 v6.7 有 HMC API 来处理 SavedValues,但现在您必须编写灵活的查询来从服务层获取条目。

在此处查找更多详细信息


编辑:回答你的问题

如何找出模型属性发生变化的地方?从 Backoffice 或 Cronjob 或类似的东西?

在 SavedValueEntry 中找到属性条目,如果当前属性值与 匹配newValue,则从后台修改它,否则从 cronjob。

在此处输入图像描述


其他参考
savedvalues-in-hybris
how-to-access-savedvalues-and-savedvalue-entries


推荐阅读