我有一个 csv 文件,需要在 hybris 中上传。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 文件中拥有尽可能多的标题。