如何将当前模型(来自数据库)与到达ValidateInterceptor的模型进行比较?

2020-09-18 20:34发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在尝试将datahu...

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

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


嗨,

我正在尝试将datahub发送的促销模型与hybris数据库中的当前模型进行比较,以查看是否进行了修改。

为此,我尝试实现ValidateInterceptor,并尝试从数据库中获取当前模型,并将其与到达ValidateInterceptor的模型进行比较

我已经尝试了一些到目前为止还没有成功的方法。 1)尝试使用modelService获取当前促销-modelService从拦截器返回与促销相同的促销2)尝试使用interceptorContext isModified标志-即使某些属性没有被修改,它也会看到一些已修改的属性3)尝试使用 ModelValueHistory-一些属性分类为dirtyAttributes。

1条回答
hengyuye
2020-09-18 21:26

嗨,

您要进行哪种比较? 任何特定的属性更改? 如果是,请在脏属性列表中检查您的属性。

InterceptorContext.isModified如果有更改,将返回true。

如果需要获取模型中特定属性的OldValue,则可以通过modelContext来获取

例如

ItemModelContextImpl modelContext =(ItemModelContextImpl)yourModel.getItemModelContext();

 对象oldValue;


          如果(modelContext.isLoaded(" yourAttribute"))
        {
              oldValue = modelContext.getOriginalValue(" yourAttribute");
         }
         其他{
              oldValue = modelContext.getAttributeProvider()。getAttribute(" yourAttribute");
          }

  

希望这会有所帮助!

一周热门 更多>