SmartEdit将空字符串另存为空白字符串,这将使后备语言无法正常工作

2020-08-21 04:26发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 当您在CMS项目上编辑字...

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

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


嗨,

当您在CMS项目上编辑"字符串类型"(本地化/未本地化)的属性时,空字符串值将存储为""(空字符串)而不是空值。 这意味着属性值不为null; 因此它将无法从后备语言中获取价值! 这不仅发生在自定义组件上,还发生在所有OOTB组件上。

如果您对Backoffice中的组件进行了一些更改并保存,则后备语言会按预期工作。 调试了SmartEdit(位于CMSFacade)发送的有效负载; 它确实包含应为 attribute:null

attribute:""

我可以在这里考虑几种解决方案:

  1. cmsContentItemTypePopulatorsMap ?的自定义填充器。 但是考虑到我需要查找所有String,String属性的集合并将它们设置为null的事实,我发现这是一个开销

  2. 扩展GenericEditor? 但是我找不到任何文档可以使它更容易理解:-(.。我认为确保空字符串作为最佳解决方案发送为null,而不必在后端执行太多逻辑, 就像其他后台系统如何工作

感谢任何帮助/输入。

hybris版本:1811.1

谢谢

最好的问候, 珊

3条回答
我是小鹏鹏啊
2020-08-21 04:48 .采纳回答

嗨,

实施一种解决方案,因为杂音识别为错误。 实际上不知道何时以及是否修复它。 杂种的官方提议的解决方法是

"而不是创建自定义填充器并验证所有属性,然后查找所有String(就像提到的解决方案一样,在调试过程中,我在DefaultCMSItemConverter类-> transformLocalizedValue()方法[第484行]上找到了对'value'的验证) 如果为空,则将其设置为null(利用该迭代而不是添加另一个迭代),并且将其保存为null,因此您可以尝试扩展DefaultCMSItemConverter。"

最诚挚的问候,比约恩(Björn)

一周热门 更多>