从Groovy类访问catalogVersionService

2020-09-19 06:04发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好,我试图通过groovy访...

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

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


大家好,我试图通过groovy访问catalogversionservice,但这会引发错误。 如果不在课程中,它将很好地工作。

我得到的错误是 脚本执行失败[原因:java.lang.NullPointerException:无法在空对象上调用方法getCatalogVersion()]

  import de.hybris.platform.catalog.model.CatalogVersionModel;
  导入de.hybris.platform.catalog.model.CatalogModel;
  导入de.hybris.platform.core.model.product.ProductModel;
  导入de.hybris.platform.product.ProductService;
  导入de.hybris.platform.catalog.CatalogVersionService;
  导入de.hybris.platform.catalog.model.classification.ClassAttributeAssignmentModel;
  导入de.hybris.platform.catalog.model.classification.ClassificationClassModel;
  导入de.hybris.platform.classification.features。*;
 
  公共类MainClass
  {
   
   def outputData()
    {
      CatalogVersionModel catalogVersion = catalogVersionService.getCatalogVersion(" Maincat"," Staged");
   ProductModel product1 = productService.getProductForCode(catalogVersion," PROD_1");
   
    }
  }
 
  新的MainClass()。outputData()
 
  
付费偷看设置
发送
4条回答
软件心理学工程师
1楼 · 2020-09-19 06:21.采纳回答

catalogVersionService 不在范围内。 它属于隐式脚本类,因此不能从 MainClass

实例访问。

在构造 MainClass

的实例时,您可以执行类似的操作来传递 catalogVersionService
 公共类MainClass {
    def catalogVersionService
    def productService
    
    def outputData(){
      def catalogVersion = catalogVersionService.getCatalogVersion('Maincat','Staged')
      def product1 = productService.getProductForCode(catalogVersion,'PROD_1')
      println product1.name
    }
  }
  
  新的MainClass(catalogVersionService:catalogVersionService,productService:productService).outputData()
  
天桥码农
2楼-- · 2020-09-19 06:46

嗨,

您检查了此文档吗? https://help.hybris.com/6.4.0/hcd/8bec04a386691014938a9996a977d07f.html

您是否尝试通过以下方式获取catalogVersionService:

  catalogVersionService = spring.getBean" catalogVersionService"

  

致谢

Lukasz

浮生未央
3楼-- · 2020-09-19 06:20

这也可以在类的方法中使用。

  CatalogVersionService catalogVersionService =(CatalogVersionService)Registry.getApplicationContext()。getBean(" catalogVersionService");
    CatalogVersionModel catVersion = catalogVersionService.getCatalogVersion(" Maincat"," Staged");

  
宇峰Kouji
4楼-- · 2020-09-19 06:19

嗨,在使用groovy时,您可以通过其bean ID直接访问spring bean。 在您的情况下,宁可使用defaultCatalogVersionService来解决问题。

一周热门 更多>