S4sdk 使用S/4HANA SDK使用SalesOrderItem API

S4sdk 使用S/4HANA SDK使用SalesOrderItem API,s4sdk,S4sdk,我正在尝试使用获取所有SalesOrderItems com.sap.cloud.sdk.s4hana.datamodel.odata.services.DefaultSalesOrderService 由S/4HANA SDK提供的类,但响应始终为空列表,在日志中我看到此错误: c.s.c.s.odatav2.connectivity.ODataQuery : Failed to convert response into ODataFeed: Illegal argument for me

我正在尝试使用获取所有SalesOrderItems

com.sap.cloud.sdk.s4hana.datamodel.odata.services.DefaultSalesOrderService

由S/4HANA SDK提供的类,但响应始终为空列表,在日志中我看到此错误:

c.s.c.s.odatav2.connectivity.ODataQuery  : Failed to convert response into ODataFeed: Illegal argument for method call with message 'to_ValueAddedService'.
提及:SDK的最新版本为2.9.1,S/4HANA系统的版本为1902

这是一个响应示例:

{
   "d":{
      "results":[
         {
            "__metadata":{
               "id":"/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem(SalesOrder='1',SalesOrderItem='10')",
               "uri":"/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem(SalesOrder='1',SalesOrderItem='10')",
               "type":"API_SALES_ORDER_SRV.A_SalesOrderItemType"
            },
            "SalesOrder":"1",
            "SalesOrderItem":"10",
            "HigherLevelItem":"0",
            "SalesOrderItemCategory":"",
            "SalesOrderItemText":"Trading Goods Testing",
            "PurchaseOrderByCustomer":"test 1",
            "Material":"HAWA1",
            "MaterialByCustomer":"",
            "PricingDate":"\/Date(1547769600000)\/",
            "RequestedQuantity":"10",
            "RequestedQuantityUnit":"PC",
            "ItemGrossWeight":"1.000",
            "ItemNetWeight":"1.000",
            "ItemWeightUnit":"KG",
            "ItemVolume":"0.000",
            "ItemVolumeUnit":"",
            "TransactionCurrency":"",
            "NetAmount":"1000000",
            "MaterialGroup":"A001",
            "MaterialPricingGroup":"",
            "Batch":"",
            "ProductionPlant":"",
            "StorageLocation":"",
            "DeliveryGroup":"0",
            "ShippingPoint":"",
            "ShippingType":"",
            "DeliveryPriority":"1",
            "IncotermsClassification":"",
            "IncotermsTransferLocation":"",
            "IncotermsLocation1":"",
            "IncotermsLocation2":"",
            "CustomerPaymentTerms":"",
            "SalesDocumentRjcnReason":"",
            "ItemBillingBlockReason":"",
            "WBSElement":"",
            "ProfitCenter":"",
            "ReferenceSDDocument":"",
            "ReferenceSDDocumentItem":"0",
            "SDProcessStatus":"A",
            "DeliveryStatus":"A",
            "OrderRelatedBillingStatus":"",
            "YY1_DownPaymentReferen_SDI":"1400000013",
            "to_Partner":{
               "__deferred":{
                  "uri":"/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem(SalesOrder='1',SalesOrderItem='10')/to_Partner"
               }
            },
            "to_PricingElement":{
               "__deferred":{
                  "uri":"/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem(SalesOrder='1',SalesOrderItem='10')/to_PricingElement"
               }
            },
            "to_SalesOrder":{
               "__deferred":{
                  "uri":"/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem(SalesOrder='1',SalesOrderItem='10')/to_SalesOrder"
               }
            },
            "to_ScheduleLine":{
               "__deferred":{
                  "uri":"/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem(SalesOrder='1',SalesOrderItem='10')/to_ScheduleLine"
               }
            },
            "to_Text":{
               "__deferred":{
                  "uri":"/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem(SalesOrder='1',SalesOrderItem='10')/to_Text"
               }
            },
            "to_ValueAddedService":{
               "__deferred":{
                  "uri":"/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrderItem(SalesOrder='1',SalesOrderItem='10')/to_ValueAddedService"
               }
            }
         }
      ]
   }
}

在执行请求之前使用.select()可以绕过此问题,但这不是一个长期解决方案。这需要在SDK内部修复。

这是SAP S/4HANA云端的问题。
to_ValueAddedService
导航属性未在
$metadata
中声明,但是它出现在
A_SalesOrderItem
OData EDM实体上,并且不起作用。SAP S/4HANA Cloud的同事已经在调查这起事件。

请添加您的代码!最新版本实际上是2.10.0,你能试试这个吗?底层API可能在1902年发生了更改。@GetMapping(“/items”)公共列表salesOrderItems()抛出ODataException{return new DefaultSalesOrderService().getAllSalesOrderItem().execute(new-ErpConfigContext(SALES_ORDER_DESTINATION_NAME));}我已将版本更改为2.10.0,但问题仍然存在。我发现使用select可以绕过此错误。您能否提供针对
/sap/opu/odata/sap/API\u SALES\u ORDER\u SRV/a\u SALES ORDER?format=json
(或
/sap/opu/odata/sap/API\u SALES\u ORDER\u SRV/a\u SALES ORDER(“”)的请求输出,当然可以删除任何敏感数据?由于某种原因,返回的json格式似乎不正确。通常,所提到的错误消息
未能将响应转换为ODataFeed:带有消息的方法调用参数非法…
表明OData API的元数据与您使用的SDK版本不对应。你能用最新的再试一次吗?在撰写本文时,2.11.1是最新版本。2.12.0可能很快就会发布。请尝试使用最新版本,并让我们知道这是否解决了您的问题(不使用解决方法)。