SAP Commerce 1811集成API错误:找不到带有限定符baseProduct的属性。

2020-09-09 23:12发布

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

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


我正在配置一个INBOUND Web服务,以使用基于SAP Commerce 18.11(odata2webservices)中基于OData的Integration UI Tool/Integration API公开从VariantProduct派生的ItemType。 我将属性" baseProduct"配置为由服务公开/交付,例如:

  INSERT_UPDATE IntegrationObjectItemAttribute;  integrationObjectItem(integrationObject(code),code)[unique = true];  attributeName [unique = true];  attributeDescriptor(enclosingType(code),qualifier);  returnIntegrationObjectItem(integrationObject(code),code);  unique [default = false];  autoCreate [默认=假]
 
  ...
  ;  MYService:MYItemType;  baseProduct;  MYItemType:baseProduct;  MYService:产品;  ;


  

我希望我可以在GET请求中检索此类型的项目。 实际上,我得到以下错误作为响应:

  <?xml version ='1.0'encoding ='UTF-8'?>
  
       runtime_error 
      检索请求的[MYItemType]时出现问题。
  

  

在日志中记录了以下异常:

 错误[hybrisHTTP9] [DefaultODataProcessor]找不到带有限定符baseProduct的属性。
  de.hybris.platform.servicelayer.exceptions.UnknownIdentifierException:未找到带有限定符baseProduct的属性。
          在de.hybris.platform.servicelayer.type.impl.DefaultTypeService.getAttributeDescriptor(DefaultTypeService.java:201)〜[coreserver.jar :?]
          在de.hybris.platform.odata2services.odata.persistence.populator.processor.AbstractPropertyProcessor.getAttributeDescriptor(AbstractPropertyProcessor.java:120)〜[classes/:?]
          在de.hybris.platform.odata2services.odata.persistence.populator.processor.AbstractPropertyProcessor.readPropertyValue(AbstractPropertyProcessor.java:92)〜[classes/:?]
          在de.hybris.platform.odata2services.odata.persistence.populator.processor.AbstractPropertyProcessor.processEntity(AbstractPropertyProcessor.java:79)〜[classes/:?]
          在de.hybris.platform.odata2services.odata.persistence.populator.DefaultEntityModelPopulator.populateEntity(DefaultEntityModelPopulator.java:54)〜[classes/:?]
          在de.hybris.platform.odata2services.odata.persistence.impl.DefaultModelEntityService.getODataEntry(DefaultModelEntityService.java:95)〜[classes/:?]
          在de.hybris.platform.odata2services.odata.persistence.impl.DefaultPersistenceService.toODataEntry(DefaultPersistenceService.java:121)〜[classes/:?]
          在de.hybris.platform.odata2services.odata.persistence.impl.DefaultPersistenceService.lambda $ 0(DefaultPersistenceService.java:107)〜[classes/:?]


  

如果我直接将ItemType VariantProduct公开给Web服务并添加属性baseProduct,也会出现此错误:

替代文本

(48.4 kB)

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

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


我正在配置一个INBOUND Web服务,以使用基于SAP Commerce 18.11(odata2webservices)中基于OData的Integration UI Tool/Integration API公开从VariantProduct派生的ItemType。 我将属性" baseProduct"配置为由服务公开/交付,例如:

  INSERT_UPDATE IntegrationObjectItemAttribute;  integrationObjectItem(integrationObject(code),code)[unique = true];  attributeName [unique = true];  attributeDescriptor(enclosingType(code),qualifier);  returnIntegrationObjectItem(integrationObject(code),code);  unique [default = false];  autoCreate [默认=假]
 
  ...
  ;  MYService:MYItemType;  baseProduct;  MYItemType:baseProduct;  MYService:产品;  ;


  

我希望我可以在GET请求中检索此类型的项目。 实际上,我得到以下错误作为响应:

  <?xml version ='1.0'encoding ='UTF-8'?>
  
       runtime_error 
      检索请求的[MYItemType]时出现问题。
  

  

在日志中记录了以下异常:

 错误[hybrisHTTP9] [DefaultODataProcessor]找不到带有限定符baseProduct的属性。
  de.hybris.platform.servicelayer.exceptions.UnknownIdentifierException:未找到带有限定符baseProduct的属性。
          在de.hybris.platform.servicelayer.type.impl.DefaultTypeService.getAttributeDescriptor(DefaultTypeService.java:201)〜[coreserver.jar :?]
          在de.hybris.platform.odata2services.odata.persistence.populator.processor.AbstractPropertyProcessor.getAttributeDescriptor(AbstractPropertyProcessor.java:120)〜[classes/:?]
          在de.hybris.platform.odata2services.odata.persistence.populator.processor.AbstractPropertyProcessor.readPropertyValue(AbstractPropertyProcessor.java:92)〜[classes/:?]
          在de.hybris.platform.odata2services.odata.persistence.populator.processor.AbstractPropertyProcessor.processEntity(AbstractPropertyProcessor.java:79)〜[classes/:?]
          在de.hybris.platform.odata2services.odata.persistence.populator.DefaultEntityModelPopulator.populateEntity(DefaultEntityModelPopulator.java:54)〜[classes/:?]
          在de.hybris.platform.odata2services.odata.persistence.impl.DefaultModelEntityService.getODataEntry(DefaultModelEntityService.java:95)〜[classes/:?]
          在de.hybris.platform.odata2services.odata.persistence.impl.DefaultPersistenceService.toODataEntry(DefaultPersistenceService.java:121)〜[classes/:?]
          在de.hybris.platform.odata2services.odata.persistence.impl.DefaultPersistenceService.lambda $ 0(DefaultPersistenceService.java:107)〜[classes/:?]


  

如果我直接将ItemType VariantProduct公开给Web服务并添加属性baseProduct,也会出现此错误:

替代文本

(48.4 kB)
付费偷看设置
发送
1条回答
愤怒的猪头君
1楼-- · 2020-09-09 23:51

它必须是IO建模UI中的错误。 生成的impex无效。 问题出在 attributeDescriptor 列中。 它包含值MYItemType:baseProduct,但应为VariantProduct:baseProduct。

attritributeDescriptor 引用类型系统中的属性描述符,值的前一半是类型系统中的类型。 当然,MYItemType在类型系统中不存在-它是集成对象项的名称(代码); 类型系统类型称为VariantProduct

作为可能的解决方法,您可以修改UI中生成的impex,然后手动跳过UI导入。 或者不为集成对象项自定义类型名称,而将其命名为VariantProduct而不是MYItemType

一周热门 更多>