Использование API SalesOrderItem с использованием S/4HANA SDK

Я пытаюсь получить все 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"
               }
            }
         }
      ]
   }
}

2 ответа

Решение

Использование.select() перед выполнением запроса обходит эту проблему, но это не является долгосрочным решением. Это должно быть исправлено внутри SDK.

Эта проблема связана с API-интерфейсом заказа на продажу на стороне SAP S/4HANA Cloud. to_ValueAddedService навигационное свойство не заявлено в $metadataОднако это появляется на A_SalesOrderItem OData EDM Entity и не работает. Коллеги SAP S/4HANA Cloud уже изучают инцидент.

Другие вопросы по тегам