hybris - 当新的提要/提要更新通过时如何记录 hybris 的最后更改
问题描述
我知道 Hybris 具有savedvaluesmodel
并savedvalueentrymodel
捕获数据模型的最后更改及其属性值,无论最近发生了什么变化,它还保留了历史记录。
这只有在我们登录后台后修改数据时才有效,而且这似乎不适用于通过 HotFolder 提供的提要。我想知道,Hybris 是否有任何开箱即用的规定来捕获通过提要为给定数据模型所做的相同信息或更改?
我根据 OOTB 代码观察到的是,此类DefaultItemModificationHistoryService
负责记录在模型级别完成的更改(填充值并将最后的更改保存到保存的值模型表中),它位于 OOTB 后台扩展并且这个扩展已经被myprojectbakcoffice
扩展扩展,这进一步扩展了myprojectcore
扩展。
为了捕获通过提要完成的最后更改,我们考虑在拦截器中处理该逻辑,但是上面的类在我们的myprojectcore
扩展中不可访问,因为它在 Backoffice 中声明。
为了实现这一点,我还能想到哪些其他可能的解决方案?
在这里找到了一些与此相关的文章。
请指教。
解决方案
您可以使用 hybris commerce 审计框架来记录系统中发生的所有更改。
此处的文档说,“通用审计跟踪每个持久性操作,包括指定类型的创建、修改和删除。审计存储为更改日志,允许您查看项目随时间的变化情况。 ”
但这会带来数据库开销。有一些特定的表会大量记录更改的详细信息。
These tables have a naming convention as <item_type>_sn.
E.g.: For Order item type, the audit table would be auto created as orders_sn
这就是为什么始终建议在适用时关闭审核的原因。
推荐阅读
- sql-server - SQL Update循环将最后一个值返回到所有记录?
- java - 如何制作 if else 语句以确保 login.java 上的编码更安全?
- swift - ios13 不需要的对话行为
- python - 熊猫将日期更改为更短的格式
- java - 为什么子类方法打印 null ?我究竟做错了什么?
- c++ - Windows C++ How to install GLFW library?
- javascript - How to implement single validate method for multiple input fields?
- bash - 如何使用 bash 脚本计算移动的文件?
- swift - 所以我有一个 UIImage 并且我想要它,所以当我点击它时,它会变成不同的图像
- c++ - 如何计算在数组中找到元素的次数