验证器消息未在Backoffice中正确显示-SAP Commerce 1905

2020-08-15 07:50发布

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

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


你好

SAP Commerce 1905面临与某个验证程序拦截器有关的问题。 这些拦截器引发的异常未在Backoffice通知小部件中正确显示。 取而代之的是,显示一般错误消息"无法更新"或"无法创建"。

当我正在使用SAP Commerce 6.7进行另一个项目时,它没有发生。 您对更改有什么想法,或者如何在Backoffice中再次显示自定义拦截器消息?

谢谢!

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

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


你好

SAP Commerce 1905面临与某个验证程序拦截器有关的问题。 这些拦截器引发的异常未在Backoffice通知小部件中正确显示。 取而代之的是,显示一般错误消息"无法更新"或"无法创建"。

当我正在使用SAP Commerce 6.7进行另一个项目时,它没有发生。 您对更改有什么想法,或者如何在Backoffice中再次显示自定义拦截器消息?

谢谢!

付费偷看设置
发送
4条回答
zZ12138
1楼-- · 2020-08-15 08:05

你好,

当BackSoffice中发生ModelSavingException时,最终将通过OOTB NotificationService发布NotificationEvent。 可以从每个backoffice扩展名的-backoffice-config.xml文件中配置每个NotificationEvent的消息。

所有模型的创建,更新,删除等默认消息是platformbackoffice扩展的一部分,因此是platformbackoffice-backoffice-config.xml的一部分。

例如,模型更新失败通知的定义如下:

 
     user.notification.items.unable_to_update 
    <!-表单对象中的预期映射->异常->
    
       

    
  

由于上面的定义对于SAP Commerce 6.7和SAP Commerce 19.05似乎都是相同的,所以我猜测是6.7版本之后ExceptionTranslationService.toString()方法的实现已更改。

话虽如此,为了更改Backoffice中显示的消息,有一些可能的选择,包括但不限于:

  • 重写OOTB ExceptionTranslationService.toString()方法,以便它返回所需的自定义消息。 不用说,这将覆盖整个系统中该方法的所有用法。
  • 在您的自定义后台扩展中重新定义eventType =" UpdateObject" level =" FAILURE"的通知元素,以使其完全不使用ExceptionTranslationService。

P.S。 尽管这是一个古老的问题,但似乎有些人也面临着同样的问题,因此答案就是如此。

BR,

Kremena

能不能别闹
2楼-- · 2020-08-15 08:18

我正面临着同样的问题,对此可以使用任何解决方案。

风早神人
3楼-- · 2020-08-15 08:08

嗨,Kremena,

感谢您的回复。 我在文档中找到以下链接。 但是在1905年找不到为defaultExceptionTranslationService的backoffice-core-spring.xml和bean定义。有什么方法可以启用它。

https://help.sap.com/viewer/ 5c9ea0c629214e42b727bf08800d8dfa/1905/zh-CN/8bc9570b86691014a901c290d2c5f107.html

我可以看到异常显示在我的日志中,但后台办公室的通知区域中没有显示异常。 同样在1808年为我工作。

示例日志

原因:de.hybris.platform.servicelayer.interceptor.impl.MandatoryAttributesValidator $ MissingMandatoryAttributesException:[de.hybris.platform.servicelayer.interceptor.impl.MandatoryAttributesValidator@16940d83]:[brandCategoryID,brandLogo, 在模型configuratorModel(<未保存>)中创建新的Configurator jvm 1 | 主| 2020/07/14 13:06:54.054 | 在de.hybris.platform.servicelayer.interceptor.impl.MandatoryAttributesValidator.onValidate(MandatoryAttributesValidator.java:104)〜[coreserver.jar :?]信息| jvm 1 | 主| 2020/07/14 13:06:54.055 | 在de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.invokeValidateInterceptors(ModelWrapper.java:296)〜[coreserver.jar :?]信息| jvm 1 | 主| 2020/07/14 13:06:54.055 | 在

此致

Amrita

代楠1984
4楼-- · 2020-08-15 08:20

嗨Amrita,

正如您找到的文档中提到的那样,defaultExceptionTranslationService是在backoffice-core-spring.xml中定义的。 您应该可以在/hybris文件夹中找到它。 如果要扩展服务并重新定义bean,则应在自定义扩展中执行。

BR,
Kremena

一周热门 更多>