动态属性提供者

2020-09-24 05:13发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我们正在从5.6迁移到6...

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

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


嗨,

我们正在从5.6迁移到6.6,并面临重新转换为动态属性的问题。 我们有一个Cronjob,可以创建新的ProducFeatures并将其保存在产品中。 我们遇到的问题是,ProductFeature的Value-setter调用了de.hybris.platform.servicelayer.model.ItemModelContextImpl#setDynamicValue,并且此时尚未初始化DynamicAttributesProvider,因此该设置器实际上没有执行任何操作,从而导致以后持续存在错误, 因为没有设置值。

从后台设置值不会导致此错误:setter由de.hybris.platform.catalog.dynamic.ProductFeatureValueAttributeHandler正确处理。

ProductFeatureValueAttributeHandler在hybris \ bin \ platform \ ext \ platformservices \ resources \ catalog-spring.xml中注册为ProductFeature_valueAttributeHandler,并且应该全局可用。

有什么方法可以激活此处理程序以在cronjob上下文中使用?

谢谢,瓦迪姆

1条回答
歪着头看世界
2020-09-24 05:49 .采纳回答

嗨,

您可以在cronjob中尝试以下代码来激活处理程序并设置productfeature值。

  @Autowired
    ProductFeatureValueAttributeHandler valueAttrHandler;
 
 
  最终的ProductFeatureModel功能=新的ProductFeatureModel();
        最终Map  dynamicAttributes = new HashMap ();
        dynamicAttributes.put(ProductFeatureModel.VALUE,valueAttrHandler);
        最终的DefaultDynamicAttributesProvider提供程序=新的DefaultDynamicAttributesProvider(dynamicAttributes);
        (((ItemModelContextImpl)ModelContextUtils.getItemModelContext(feature))。setDynamicAttributesProvider(provider);
 
        feature.setProduct(product);
        feature.setValue(" testValue");
        feature.setQualifier(" testQualifier");
        modelService.save(feature);

  

此致

Raghavendra。

一周热门 更多>