1

我正在使用 Hybris 6.7.0 版,但遇到以下问题:当我尝试从 excel 文件导入产品时。它给了我以下错误-> 在此处输入图像描述

我检查了excel文件,当然有“订阅期限*”字段,这是强制性的,这就是为什么那里有一个星号。值得一提的是,这个字段是自定义的,所以我为它编写了自定义翻译器并且导出部分工作正常,但是在我进行调试时导入部分我发现了一个奇怪的事实:
这个WorkbookMandatoryColumnsValidator验证器调用方法findColumnIndex(typeSystemSheet, sheet, this.prepareSelectedAttribute (必填项)); DefaultExcelTemplateService此方法返回 -1 并且验证未通过。我深入研究了这个方法,有这样一行代码: String attributeDisplayName = this.findAttributeDisplayNameInTypeSystemSheet(typeSystemSheet, selectedAttribute);它返回“订阅期限”字符串,如您所见,没有星号。
我检查了其他必填字段,例如“目录版本*^”,它返回后有 2 个符号。问题是字符串相等操作后的“订阅期限”和“订阅期限*”返回 false 并且验证失败,如您在此处看到的: attributeDisplayName.equals(this.getCellValue(headerRow.getCell(i)))
当然,第二个值取自星号符号所在的 excel 文件。
如果我从 excel 文件中删除星号,则会收到:WorkbookTypeCodeAndSelectedAttributeValidator验证器中 ISku 类型错误的未知属性: 在此处输入图像描述

星号应该出现在 excel 文件中,我刚刚检查了会是什么......
它根本无法帮助我理解真正发生的事情。

我无法理解一件事:“订阅期限”字符串的来源是什么?为什么没有星号?它是在某处预定义的常量吗?

从调试中我无法弄清楚该字符串来自哪个来源。

4

2 回答 2

0

检查您是否为该用户提供了对该属性的读写权限。在执行此操作之前请与管理员用户确认。如果管理员用户没有问题,那么只有用户的权限问题。

于 2020-10-24T14:36:21.913 回答
0

我不确定,但我希望该字符串(即订阅期限)来自基于后台当前会话语言的本地化文件(例如,如果当前语言为 en,则为{extensionName}-locales_en.properties )。

尝试在所有属性文件中搜索“订阅期限”。

也许,如果该属性是强制性的(即items.xml 中的optional="false"),那么 Hybris 将在执行导入时为其名称添加一个“*”。

于 2019-08-12T07:42:11.657 回答