【发布时间】:2014-12-24 06:29:40
【问题描述】:
我有一个需要在 hybris 中上传的 csv 文件。 CSV 文件中的数据要加载到 Hybris 的不同表中。
目前,hybris 采用 CSV 文件,一个文件有一个映射(即 impex 标头)。
我们能否在 hotfolder 配置中为单个 CSV 文件设置多个 impex,以便将数据加载到不同的表中
谢谢, 桑杰·维塔尼。
【问题讨论】:
我有一个需要在 hybris 中上传的 csv 文件。 CSV 文件中的数据要加载到 Hybris 的不同表中。
目前,hybris 采用 CSV 文件,一个文件有一个映射(即 impex 标头)。
我们能否在 hotfolder 配置中为单个 CSV 文件设置多个 impex,以便将数据加载到不同的表中
谢谢, 桑杰·维塔尼。
【问题讨论】:
将 1 个热文件夹 csv 转换为多个输出 impex 文件的简单方法是添加多个具有相同前缀的 ConverterMapping bean。
ImpexTransformerTask bean 将接收输入文件并将它们传递给具有匹配前缀的ConverterMapping bean。每个ConverterMapping 都有一个对应的ImpexConverter。
【讨论】:
使用 Impex / HotFolder,您可以从一个文件中导入多种类型/表格,您只需为以下不同类型/表格示例维护不同的标题:
<bean id="batchProductConverter" class="de.hybris.platform.acceleratorservices.dataimport.batch.converter.impl.DefaultImpexConverter">
<property name="header">
<value>#{defaultImpexProductHeader}
# Insert Products
INSERT_UPDATE Product;code[unique=true];varianttype(code);name[lang=$lang];description[lang=$lang];ean;manufacturerName;manufacturerAID;unit(code)[default=pieces];$approved;Europe1PriceFactory_PTG(code)[default=eu-vat-full];sequenceId[translator=de.hybris.platform.acceleratorservices.dataimport.batch.converter.SequenceIdTranslator];$catalogVersion
</value>
</property>
<property name="impexRow">
<value>;{+0};{1};{2};{3};{4};{5};{6};{7};{8};{9};{S}</value>
</property>
<property name="rowFilter">
<bean class="de.hybris.platform.acceleratorservices.dataimport.batch.converter.impl.DefaultImpexRowFilter">
<property name="expression" value="!row[1]"/>
</bean>
</property>
<property name="type" value="Product"/>
</bean>
通过使用相同的技术,您还可以使用不同的文件填充一种类型/表..
【讨论】:
如果您有多个表头,您可以将数据加载到不同的表中。您可以在一个 csv 文件中包含任意数量的标题。
【讨论】: