点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我们刚刚启用了SLD,除删除内容外,大多数功能似乎都可以正常运行。 从Backoffice删除内容时,它将在bin \ ext-backoffice \ backoffice \ web \ webroot \ WEB-INF \ classes \ com \ hybris \ backoffice \ cockpitng \ dataaccess \ facades \ object \ savedvalues \ DefaultItemModificationHistoryService.class
在这种方法中:
受保护的void logModifications(ItemModel模型,ItemModificationInfo ModifyInfo){
Map originalValues = new HashMap();
Map modifiedValues = new HashMap();
迭代器var6 = ModifyInfo.getModifiedAttributes()。iterator();
while(var6.hasNext()){
字符串属性=(String)var6.next();
originalValues.put(属性,this.toPersistenceLayer(modificationInfo.getOriginalValue(attribute),ModifyInfo.isLocalized(attribute))));
modifiedValues.put(属性,this.toPersistenceLayer(modificationInfo.getModifiedValue(属性),modificationInfo.isLocalized(属性)));
}
如果(!modifiedValues.isEmpty()){
如果(modificationInfo.isNew()){
JaloConnection.getInstance()。logItemCreation(model.getPk(),modifiedValues);
}其他{
JaloConnection.getInstance()。logItemModification(model.getPk(),modifiedValues,originalValues,false);
}
}否则,如果(this.getModelService()。isRemoved(model)){
对象DeleteObject = this.getModelService()。getSource(model);
JaloConnection.getInstance()。logItemRemoval((Item)deletedObject,false);
}
}
注意isRemoved调用。 在那里完成:Object DeleteObject = this.getModelService()。getSource(model);
这看起来像这样:
public T getSource(对象模型){
ServicesUtil.validateParameterNotNull(model,"参数'模型'为空!");
T ret = this.getModelConverterByModel(model).getSource(model);
如果(ret == null){
抛出新的IllegalStateException(" model" + model +"没有源");
}其他{
返回ret
}
}
在启用SLD时,它将引发IllegalStateException。 为了使用SLD,我们是否需要启用更多功能,而不仅仅是文档中所说的persistence.legacy.mode = false?
modelService中有一个方法,该方法表示getPersistenceSource,该方法似乎可以与SLD一起使用,但getSource似乎不起作用。
嗨,
这是一个已知问题,它将在下一版本中(部分)得到修复。 通常,SLD不支持删除操作,并且如果启用了SLD,则删除将不会持久。
据我所知,在这种情况下,没有实现启用的SLD的功能奇偶校验的截止日期。
如果您出于记录目的记录了删除,则可以使用新的GDPR注释框架。 如果这样做是为了允许回滚(重新存储已删除的数据),那么将是不可能的。
干杯, Wojtek
顺便说一句,禁用SLD可使删除工作,然后Backoffice的行为将达到预期。 因此,我们现在可能会这样做,但是能够使用SLD会很好。
一周热门 更多>