如何配置热文件夹以导入具有不同分隔符值的文件?

2020-08-21 10:28发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我有两个.csv文件...

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

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


专家们,

我有两个.csv文件。 一个文件以逗号作为每列之间的分隔符,另一个文件以 | 作为分隔符。 使用ImpexTransformerTask,我只能为所有文件设置一个分隔符。 请指导我,如何为不同的文件设置不同的分隔符。

感谢和问候,

2条回答
小c菟菟
2020-08-21 11:26 .采纳回答

Nagoor,你好

可以自定义

ImpexTransformerTask来实现。 我已经尝试过您的情况如下。

在此示例中,商品是我创建的加速器的名称,hybris是我的商店。

覆盖bean batchTransformerTask,并在位于merchandisecore/resources/merchandise/integration中的hot-folder-store-hybris-spring.xml中进行输入

  
          
          
          
          
          
          <地图>
             << entry key =" price-010.csv" value =" |"/>
             << entry key =" price-001.csv" value =","/>
          
          
   

  

确保文件hot-folder-store-hybris-spring.xml在merchandisecore-spring.xml中具有如下所示的条目

  

  

创建一个CustomImpexTransformerTask类,并扩展ImpexTransformerTask类。 如下重写方法createCsvReader。

  @Override
      受保护的CSVReader createCsvReader(最终文件文件)抛出UnsupportedEncodingException,FileNotFoundException
      {
          final CSVReader csvReader =新的CSVReader(文件,编码);
          csvReader.setLinesToSkip(linesToSkip);
          如果(fileSeparatorDetails.containsKey(file.getName()))
          {
              csvReader.setFieldSeparator(new char []
              {fileSeparatorDetails.get(file.getName())});
          }
          其他
          {
              csvReader.setFieldSeparator(new char []
              {fieldSeparator});
          }
 
          返回csvReader;
      }

  

完成所有操作并重启服务器后,如果将两个文件放在带有不同分隔符的热文件夹中,则会更新各自的数据。

这是有关如何实现方案的示例实现,您可以根据需要添加任何集合,正则表达式和相应的验证。

如果您需要更多信息,请告诉我。

一周热门 更多>