点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我们正尝试通过热文件夹映射导入CSV数据,但是当数据包含半冒号时,它会为少量记录生成不正确的Impex,因此由于映射中发生不匹配而失败,因为半冒号被视为列 根据impex systax分隔。
示例:下面的CSV记录按照impex标头映射到4列,第3列数据包含半冒号,因此生成的impex考虑为2个不同的值条目(" MR"和" Hybris"),但应视为简单 值输入。
" 123" |" ABC" | " MR; Hybris" |" experts.hybris。 com " |
有什么解决方案/建议吗?
你好。
首先,在hot-folder-spring.xml中检查ImpexTransformerTask的fieldSeparator是否设置为与分号不同的值。 这是我正在谈论的代码片段:
但这还不够,因为OOTB转换器的escapeQuotes方法中的OOTB转换器de.hybris.platform.acceleratorservices.dataimport.batch.converter.impl.DefaultImpexConverter会以分号作为标记来分割字符串。 因此,如果数据中有分号,则整个impex会失真。
有两种处理方法:
再次为csv和impex插入封闭字符多余的双引号:
"" MR; 杂种""
另一种方法是更改DefaultImpexConverter,以便它以不同的方式拆分字符串。 这样做的方法如下:
复制现有的DefaultImpexConverter,将其重命名(例如,TestingImpexConverter),然后将其粘贴到某处。
检查名为convert(...)的覆盖方法在中间附近,有一个代码段,如下所示:
进行调试时,您会发现colValue是数据的Impex版本,但没有所需的封闭字符。 如果要使用封闭字符而不更改csv文件,则最好进行一些处理,然后将如下所示的代码段用于测试目的。
更新您的映射:
无论您从上面使用哪种方法,最后一步都是覆盖escapeQuotes方法,以使我们了解我们使用双引号作为封闭字符:
希望有帮助,
一周热门 更多>