如何为超级类别列编写Translator。

2020-09-13 10:02发布

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

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


专家们,

我想为我的Insert_Update产品impex中的supercategories字段编写一个翻译器。 我写的如下:-

@@重写公共对象importValue(最终字符串mediaCode,最后一个项目paramItem)引发JaloInvalidParameterException {

 最终Collection  categoryModelList = new ArrayList ();
          最终的CategoryModel categoryModel = new CategoryModel();
          categoryModel.setCode(mediaCode);
          categoryModel.setCatalogVersion(sampleCatalogVersion);
          categoryModelList.add(categoryModel);

          返回categoryModelList;
     

  }

  

但是我遇到以下错误:-

主脚本中的错误[hybrisHTTP27](000003UW)[导入器]第8行:异常'第8行:无法创建具有值ItemAttributeMap [的产品]注册:null,类型:,数据:{code = test2223,catalogversion = testproductcatalog/Staged (8796125823577),由于[com.test.testcore.interceptors.CategoryInterceptor@28b34d1b]而导致超级类别= [CategoryModel()]}]:意外的验证器错误:(分离的)模型de.hybris.platform.servicelayer没有LocaleProvider。 model.ItemModelContextImpl@39ce9183'处理异常:第8行:无法创建具有值ItemAttributeMap [的产品:注册表:null,类型:,数据:{code = test2223,catalogversion = testproductcatalog/Staged(8796125823577),超类别= [CategoryModel()] }]由于[com.test.testcore.interceptors.CategoryInterceptor@28b34d1b]:意外的验证程序错误:(分离的)模型de.hybris.platform.servicelayer.model.ItemModelContextImpl@39ce9183 WARN [hybrisHTTP27](000003UW )[导入器]导入在0d后中止 00h:00m:02s:157ms错误[hybrisHTTP27](000003UW)[ImpExImportJob]主脚本的第8行:第8行:无法创建具有值ItemAttributeMap [的产品]注册表:null,类型:,数据:{code = test2223,catalogversion = testproductcatalog/Staged(8796125823577),由于[com.test.testcore.interceptors.CategoryInterceptor@28b34d1b]而导致超级类别= [CategoryModel()]}]:意外的验证器错误:(分离的)模型de.hybris.platform没有LocaleProvider。 servicelayer.model.ItemModelContextImpl@39ce9183 de.hybris.platform.impex.jalo.ImpExException:主脚本的第8行:第8行:无法创建具有值ItemAttributeMap [的产品:注册表:null,类型:,数据:{code = test2223,catalogversion = testproductcatalog/Staged(8796125823577),由于[com.test.testcore.interceptors.CategoryInterceptor@28b34d1b]而导致的超级类别= [CategoryModel()]}]:意外的验证器错误:(分离的)模型de.hybris没有LocaleProvider。 platform.servicelayer.model.ItemModelContextImpl@39ce9183 [HY-0] at de .hybris.platform.impex.jalo.Importer.importNextInternal(Importer.java:763)位于de.hybris.platform.impex.jalo.Importer.importNext(Importer.java:738)位于de.hybris.platform.impex.jalo .cronjob.ImpExImportJob.doImport(ImpExImportJob.java:287)位于de.hybris.platform.impex.jalo.cronjob.ImpExImportJob.performJob(ImpExImportJob.java:244)位于de.hybris。平台 .performCronJob(ImpExImportJob.java:111)位于de.hybris.platform.cronjob.jalo.Job.execute(Job.java:1297)位于de.hybris.platform.cronjob.jalo.Job.performImpl(Job.java:815) ),网址为de.hybris.platform.cronjob.jalo.Job.performImpl(Job.java:738)

任何建议???

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

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


专家们,

我想为我的Insert_Update产品impex中的supercategories字段编写一个翻译器。 我写的如下:-

@@重写公共对象importValue(最终字符串mediaCode,最后一个项目paramItem)引发JaloInvalidParameterException {

 最终Collection  categoryModelList = new ArrayList ();
          最终的CategoryModel categoryModel = new CategoryModel();
          categoryModel.setCode(mediaCode);
          categoryModel.setCatalogVersion(sampleCatalogVersion);
          categoryModelList.add(categoryModel);

          返回categoryModelList;
     

  }

  

但是我遇到以下错误:-

主脚本中的错误[hybrisHTTP27](000003UW)[导入器]第8行:异常'第8行:无法创建具有值ItemAttributeMap [的产品]注册:null,类型:,数据:{code = test2223,catalogversion = testproductcatalog/Staged (8796125823577),由于[com.test.testcore.interceptors.CategoryInterceptor@28b34d1b]而导致超级类别= [CategoryModel()]}]:意外的验证器错误:(分离的)模型de.hybris.platform.servicelayer没有LocaleProvider。 model.ItemModelContextImpl@39ce9183'处理异常:第8行:无法创建具有值ItemAttributeMap [的产品:注册表:null,类型:,数据:{code = test2223,catalogversion = testproductcatalog/Staged(8796125823577),超类别= [CategoryModel()] }]由于[com.test.testcore.interceptors.CategoryInterceptor@28b34d1b]:意外的验证程序错误:(分离的)模型de.hybris.platform.servicelayer.model.ItemModelContextImpl@39ce9183 WARN [hybrisHTTP27](000003UW )[导入器]导入在0d后中止 00h:00m:02s:157ms错误[hybrisHTTP27](000003UW)[ImpExImportJob]主脚本的第8行:第8行:无法创建具有值ItemAttributeMap [的产品]注册表:null,类型:,数据:{code = test2223,catalogversion = testproductcatalog/Staged(8796125823577),由于[com.test.testcore.interceptors.CategoryInterceptor@28b34d1b]而导致超级类别= [CategoryModel()]}]:意外的验证器错误:(分离的)模型de.hybris.platform没有LocaleProvider。 servicelayer.model.ItemModelContextImpl@39ce9183 de.hybris.platform.impex.jalo.ImpExException:主脚本的第8行:第8行:无法创建具有值ItemAttributeMap [的产品:注册表:null,类型:,数据:{code = test2223,catalogversion = testproductcatalog/Staged(8796125823577),由于[com.test.testcore.interceptors.CategoryInterceptor@28b34d1b]而导致的超级类别= [CategoryModel()]}]:意外的验证器错误:(分离的)模型de.hybris没有LocaleProvider。 platform.servicelayer.model.ItemModelContextImpl@39ce9183 [HY-0] at de .hybris.platform.impex.jalo.Importer.importNextInternal(Importer.java:763)位于de.hybris.platform.impex.jalo.Importer.importNext(Importer.java:738)位于de.hybris.platform.impex.jalo .cronjob.ImpExImportJob.doImport(ImpExImportJob.java:287)位于de.hybris.platform.impex.jalo.cronjob.ImpExImportJob.performJob(ImpExImportJob.java:244)位于de.hybris。平台 .performCronJob(ImpExImportJob.java:111)位于de.hybris.platform.cronjob.jalo.Job.execute(Job.java:1297)位于de.hybris.platform.cronjob.jalo.Job.performImpl(Job.java:815) ),网址为de.hybris.platform.cronjob.jalo.Job.performImpl(Job.java:738)

任何建议???

付费偷看设置
发送
5条回答
骆驼绵羊
1楼 · 2020-09-13 11:03.采纳回答

嗨,阿米特,

首先,我将跳过直接从CategoryModel调用构造函数,而切换到ModelService#create。

希望这是唯一的问题:)

Mirek

SAP砖家
2楼-- · 2020-09-13 10:39

我很高兴听到:)

致谢,Mirek

野沐沐
3楼-- · 2020-09-13 10:48

嗨,阿米特,您如何在此处实例化了ModelService对象? 如果将我们的服务放在翻译类中,自动翻译可能吗? 我在Translator类中将所有服务(包括ModelService)都获取为null。

槿木_熙
4楼-- · 2020-09-13 10:59

Hi Amit/Sethu,

我还试图为Product item属性编写一个自定义转换器。 在此翻译器中,我试图将所有特殊字符替换为连字符。 覆盖方法importValue()时,我无法访问ProductModel本身,因此无法将修改后的值设置为ProductModel属性。 我收到编译错误。 您能帮我怎样进行?

Nan4612
5楼-- · 2020-09-13 10:50

@Override public Object importValue(String impexColumn,Item product)引发JaloInvalidParameterException {类别category = new Category(); 设置结果类别=新的HashSet <>(); ProductService productService = Registry.getApplicationContext()。getBean(" productService",ProductService.class); CategoryService categoryService = Registry.getApplicationContext()。getBean(" categoryService",CategoryService.class); ModelService modelService = Registry.getApplicationContext()。getBean(" modelService",ModelService.class); 字符串fieldValue = String.valueOf(impexColumn); if(null!= product){试试{

 字符串productCode =(String)product.getAttribute(" Code");
              CatalogVersionModel catalogVersion = modelService.get(product.getAttribute(" catalogversion"));
              ProductModel productModel = productService.getProductForCode(catalogVersion,productCode);
              Collection 类别= productModel.getSupercategories();
              如果(StringUtils.isNotEmpty(fieldValue))
              {
                  resultCategories.addAll(categories);
                  由此产生的Categories.add(categoryService.getCategoryForCode(catalogVersion,fieldValue));
              }
          }
          捕获(JaloSecurityException e)
          {
              e.printStackTrace();
          }
      }
     
      返回结果类别;

  }
  

}

一周热门 更多>