点击此处---> 群内免费提供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)
它必须是IO建模UI中的错误。 生成的impex无效。 问题出在
attributeDescriptor
列中。 它包含值MYItemType:baseProduct,但应为VariantProduct:baseProduct。attritributeDescriptor
引用类型系统中的属性描述符,值的前一半是类型系统中的类型。 当然,MYItemType在类型系统中不存在-它是集成对象项的名称(代码); 类型系统类型称为VariantProduct作为可能的解决方法,您可以修改UI中生成的impex,然后手动跳过UI导入。 或者不为集成对象项自定义类型名称,而将其命名为VariantProduct而不是MYItemType
一周热门 更多>