使用MapValueTranslator进行ImpEx查询

2020-09-19 09:10发布

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

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


嗨,

我创建了具有扩展名 MapValueTranslator 的自定义类,并通过以下impex进行了配置。 但是,当我们运行时,出现" 无效的自定义值转换器类"异常。 但是,当我尝试扩展 AbstractValueTranslator 而不是 MapValueTranslator 时,它可以正常工作。 让我知道MapValueTranslator是否需要任何其他配置或impex查询是否存在任何问题?

Impex查询:

$ productCatalog = hybrisProductCatalog $ catalogVersion = catalogVersion(catalog(id [default ='Default']),version [default ='Staged'])[unique = true,default ='Default:Staged']; $ presetProducts = restrictions [translator = org.training.CustomMapValueTranslator]

INSERT_UPDATE产品;代码[unique = true];制造商名称;制造商AID;单位(代码);变量类型(代码); $ catalogVersion; $ presetProducts; 0001; Mugs&Co; 100;件;

下面的完全异常: java.lang。 InstantiationException :位于de。处的java.lang.Class.newInstance(Class.java:427)上的org.training.CustomMapValueTranslator。 位于de.hybris.platform.impex.jalo.header.StandardColumnDescriptor.createValueTranslator(StandardColumnDescriptor.java:368)处的hybris.platform.impex.jalo.header.StandardColumnDescriptor.createCustomValueTranslator(StandardColumnDescriptor.java:389)位于de.hybris.platform处。 在de.hybris.platform.impex.jalo.translators.AbstractTypeTranslator.translatorColumnDescriptor(AbstractTypeTranslator.java:140)上的impex.jalo.header.StandardColumnDescriptor。(StandardColumnDescriptor.java:117)在de.hybris.platform.impex.jalo.translators处 de.hybris.platform.impex.jalo.header.HeaderDescriptor。(HeaderDescriptor.java:241)处的.AbstractTypeTranslator.translateColumnDescriptors(AbstractTypeTranslator.java:87)at de.hybris.platform.impex.jalo.header.HeaderDescriptor。(HeaderDescriptor。 .java:189),网址为de.hybris.platform.impex.jalo.ImpExReader.c reateNewHeader(ImpExReader.java:2480)位于de.hybris.platform.impex.jalo.ImpExReader.createAndSetAsCurrentHeader(ImpExReader.java:2001)位于de.hybris.platex.jalo.ImpExReader.readLine(ImpExReader.java:1929) 在de.hybris.platform.impex.jalo.imp.ImpExImportReader.readLine(ImpExImportReader.java:503)在de.hybris.platform.impex.jalo.Importer.doImport(Importer.java:254)在de.hybris.platform .impex.jalo.Importer.importNextInternal(Importer.java:757)位于de.hybris.platform.impex.jalo.Importer.importNext(Importer.java:738)位于de.hybris.platform.impex.jalo.cronjob.ImpExImportJob .doImport(ImpExImportJob.java:290)位于de.hybris.platform.impex.jalo.cronjob.ImpExImportJob.performJob(ImpExImportJob.java:247)位于de.hybris.platform.impex.jalo.cronjob.ImpExImportJob(ImpExImportJob.java .java:114)at de.hybris.platform.cronjob.jalo.Job.execute(Job.java:1274)at de.hybris.platform.cronjob.jalo.Job.performImpl(Job.java:794)at。 hybris.platform.cronjob.jalo.Job.performImpl(Job.java:713)at .hybris.platform.cronjob.jalo.Job.perform(Job.java:629)位于de.hybris.platform.servicelayer.cronjob.impl.DefaultCronJobService.performCronJob(DefaultCronJobService.java:138)位于de.hybris.platform.servicelayer .impex.impl.DefaultImportService.importData(DefaultImportService.java:57)位于de.hybris.platform.servicelayer.impex.impl.DefaultImportService.importData(DefaultImportService.java:174)位于de.hybris.platform.hac.facade.impl .defaultImpexFacade.importData(DefaultImpexFacade.java:67)位于de.hybris.platform.hac.controller.console.ImpexController.handleImpexImportContent(ImpexController.java:176)

预先感谢

致谢,Chitra

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

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


嗨,

我创建了具有扩展名 MapValueTranslator 的自定义类,并通过以下impex进行了配置。 但是,当我们运行时,出现" 无效的自定义值转换器类"异常。 但是,当我尝试扩展 AbstractValueTranslator 而不是 MapValueTranslator 时,它可以正常工作。 让我知道MapValueTranslator是否需要任何其他配置或impex查询是否存在任何问题?

Impex查询:

$ productCatalog = hybrisProductCatalog $ catalogVersion = catalogVersion(catalog(id [default ='Default']),version [default ='Staged'])[unique = true,default ='Default:Staged']; $ presetProducts = restrictions [translator = org.training.CustomMapValueTranslator]

INSERT_UPDATE产品;代码[unique = true];制造商名称;制造商AID;单位(代码);变量类型(代码); $ catalogVersion; $ presetProducts; 0001; Mugs&Co; 100;件;

下面的完全异常: java.lang。 InstantiationException :位于de。处的java.lang.Class.newInstance(Class.java:427)上的org.training.CustomMapValueTranslator。 位于de.hybris.platform.impex.jalo.header.StandardColumnDescriptor.createValueTranslator(StandardColumnDescriptor.java:368)处的hybris.platform.impex.jalo.header.StandardColumnDescriptor.createCustomValueTranslator(StandardColumnDescriptor.java:389)位于de.hybris.platform处。 在de.hybris.platform.impex.jalo.translators.AbstractTypeTranslator.translatorColumnDescriptor(AbstractTypeTranslator.java:140)上的impex.jalo.header.StandardColumnDescriptor。(StandardColumnDescriptor.java:117)在de.hybris.platform.impex.jalo.translators处 de.hybris.platform.impex.jalo.header.HeaderDescriptor。(HeaderDescriptor.java:241)处的.AbstractTypeTranslator.translateColumnDescriptors(AbstractTypeTranslator.java:87)at de.hybris.platform.impex.jalo.header.HeaderDescriptor。(HeaderDescriptor。 .java:189),网址为de.hybris.platform.impex.jalo.ImpExReader.c reateNewHeader(ImpExReader.java:2480)位于de.hybris.platform.impex.jalo.ImpExReader.createAndSetAsCurrentHeader(ImpExReader.java:2001)位于de.hybris.platex.jalo.ImpExReader.readLine(ImpExReader.java:1929) 在de.hybris.platform.impex.jalo.imp.ImpExImportReader.readLine(ImpExImportReader.java:503)在de.hybris.platform.impex.jalo.Importer.doImport(Importer.java:254)在de.hybris.platform .impex.jalo.Importer.importNextInternal(Importer.java:757)位于de.hybris.platform.impex.jalo.Importer.importNext(Importer.java:738)位于de.hybris.platform.impex.jalo.cronjob.ImpExImportJob .doImport(ImpExImportJob.java:290)位于de.hybris.platform.impex.jalo.cronjob.ImpExImportJob.performJob(ImpExImportJob.java:247)位于de.hybris.platform.impex.jalo.cronjob.ImpExImportJob(ImpExImportJob.java .java:114)at de.hybris.platform.cronjob.jalo.Job.execute(Job.java:1274)at de.hybris.platform.cronjob.jalo.Job.performImpl(Job.java:794)at。 hybris.platform.cronjob.jalo.Job.performImpl(Job.java:713)at .hybris.platform.cronjob.jalo.Job.perform(Job.java:629)位于de.hybris.platform.servicelayer.cronjob.impl.DefaultCronJobService.performCronJob(DefaultCronJobService.java:138)位于de.hybris.platform.servicelayer .impex.impl.DefaultImportService.importData(DefaultImportService.java:57)位于de.hybris.platform.servicelayer.impex.impl.DefaultImportService.importData(DefaultImportService.java:174)位于de.hybris.platform.hac.facade.impl .defaultImpexFacade.importData(DefaultImpexFacade.java:67)位于de.hybris.platform.hac.controller.console.ImpexController.handleImpexImportContent(ImpexController.java:176)

预先感谢

致谢,Chitra

付费偷看设置
发送
2条回答
何必丶何苦呢
1楼-- · 2020-09-19 09:49

嗨,雪莉,

实例化异常:当应用程序尝试使用Class类中的newInstance方法创建类的实例时抛出,但无法实例化指定的class对象。

请检查您的翻译器类是否具有无参数构造函数。 (它有四个带有声明参数的构造函数)因此,如果没有默认的无参数构造函数,请添加无参数构造函数,并让我们知道它是否有助于解决问题。

感谢Chitra

Aaron 3364
2楼-- · 2020-09-19 09:49

Hi Chitra,

您找到任何原因吗? 我也遇到同样的问题。请帮忙。

谢谢Shelly

一周热门 更多>