嗨,我正在使用一个API(SAP、S4/Hana)
OData 2
我试图在实体中获得一组字段,这些字段与应用于某些嵌套属性的过滤器相匹配。
例如,如果我正在做
GET https://my-base-url.com/http/purchaseOrderDL?$top=2&$skip=0
然后我得到:
"<YY1_PurchaseOrder_DL>
<YY1_PurchaseOrder_Header>
<YY1_Campaign_PDH></YY1_Campaign_PDH>
<YY1_Deal_PDH></YY1_Deal_PDH>
<YY1_ExternalPONumber_PDH></YY1_ExternalPONumber_PDH>
<Supplier>12345</Supplier>
<SupplierName>TEST MIGRATION TEST MIGRATION 02</SupplierName>
<CompanyCode>FR02</CompanyCode>
<PurchaseOrder>4500000000</PurchaseOrder>
<LastChangeDateTime>2018-08-16T14:03:18.517</LastChangeDateTime>
<YY1_PurchaseOrder_Items>
<PurchaseOrderItem>00010</PurchaseOrderItem>
<NetPriceAmount>10.00</NetPriceAmount>
<MaterialGroup>00</MaterialGroup>
<MaterialGroupName>Non-Sto Mat. w.o ID</MaterialGroupName>
<PurchasingGroup>001</PurchasingGroup>
<PurchasingGroupName>Post Sale</PurchasingGroupName>
<CreationDate>2018-08-16T00:00:00.000</CreationDate>
<PurchaseOrderDate>2018-08-16T00:00:00.000</PurchaseOrderDate>
<Plant>00</Plant>
<PlantName>Plant 1 FR</PlantName>
<YY1_PurchaseOrderUUID_PDH></YY1_PurchaseOrderUUID_PDH>
<DocumentCurrency>EUR</DocumentCurrency>
</YY1_PurchaseOrder_Items>
</YY1_PurchaseOrder_Header>
<YY1_PurchaseOrder_Header>
<YY1_Campaign_PDH></YY1_Campaign_PDH>
<YY1_Deal_PDH></YY1_Deal_PDH>
<YY1_ExternalPONumber_PDH></YY1_ExternalPONumber_PDH>
<Supplier>12345</Supplier>
<SupplierName>TEST MIGRATION TEST MIGRATION 02</SupplierName>
<CompanyCode>FR99</CompanyCode>
<PurchaseOrder>4500000001</PurchaseOrder>
<LastChangeDateTime>2018-08-16T14:45:55.516</LastChangeDateTime>
<YY1_PurchaseOrder_Items>
<PurchaseOrderItem>00020</PurchaseOrderItem>
<NetPriceAmount>20.00</NetPriceAmount>
<MaterialGroup>00</MaterialGroup>
<MaterialGroupName>Non-Sto Mat. w.o ID</MaterialGroupName>
<PurchasingGroup>001</PurchasingGroup>
<PurchasingGroupName>Post Sale</PurchasingGroupName>
<CreationDate>2018-08-21T00:00:00.000</CreationDate>
<PurchaseOrderDate>2018-08-21T00:00:00.000</PurchaseOrderDate>
<Plant>FR02</Plant>
<PlantName>ENTERTAIN. (PLT)</PlantName>
<YY1_PurchaseOrderUUID_PDH></YY1_PurchaseOrderUUID_PDH>
<DocumentCurrency>EUR</DocumentCurrency>
</YY1_PurchaseOrder_Items>
<YY1_PurchaseOrder_Items>
<PurchaseOrderItem>00030</PurchaseOrderItem>
<NetPriceAmount>25.00</NetPriceAmount>
<MaterialGroup>00</MaterialGroup>
<MaterialGroupName>Non-Sto Mat. w.o ID</MaterialGroupName>
<PurchasingGroup>001</PurchasingGroup>
<PurchasingGroupName>Post Sale</PurchasingGroupName>
<CreationDate>2018-08-21T00:00:00.000</CreationDate>
<PurchaseOrderDate>2018-08-21T00:00:00.000</PurchaseOrderDate>
<Plant>FR02</Plant>
<PlantName>ENTERTAIN. (PLT)</PlantName>
<YY1_PurchaseOrderUUID_PDH></YY1_PurchaseOrderUUID_PDH>
<DocumentCurrency>EUR</DocumentCurrency>
</YY1_PurchaseOrder_Items>
<YY1_PurchaseOrder_Items>
<PurchaseOrderItem>00010</PurchaseOrderItem>
<NetPriceAmount>15.00</NetPriceAmount>
<MaterialGroup>00</MaterialGroup>
<MaterialGroupName>Non-Sto Mat. w.o ID</MaterialGroupName>
<PurchasingGroup>001</PurchasingGroup>
<PurchasingGroupName>Post Sale</PurchasingGroupName>
<CreationDate>2018-08-21T00:00:00.000</CreationDate>
<PurchaseOrderDate>2018-08-21T00:00:00.000</PurchaseOrderDate>
<Plant>FR02</Plant>
<PlantName>ENTERTAIN. (PLT)</PlantName>
<YY1_PurchaseOrderUUID_PDH></YY1_PurchaseOrderUUID_PDH>
<DocumentCurrency>EUR</DocumentCurrency>
</YY1_PurchaseOrder_Items>
</YY1_PurchaseOrder_Header>
</YY1_PurchaseOrder_DL>"
我设法筛选和选择了位于
<YY1_PurchaseOrder_Header>
,例如:
GET https://my-base-url.com/http/purchaseOrderDL?$top=2&$skip=0&$select=PurchaseOrder&$filter=PurchaseOrder eq '4500000004'
我得到:
<YY1_PurchaseOrder_DL>
<YY1_PurchaseOrder_DLType>
<PurchaseOrder>4500000004</PurchaseOrder>
</YY1_PurchaseOrder_DLType>
</YY1_PurchaseOrder_DL>
这很有效,但我真的很惊讶,因为我能看到
YY1_PurchaseOrder_DLType
我以前在选择所有字段时看不到的级别。
我的问题是,如果我想选择和/或过滤看起来像“数组/集合”的字段:
YY1_PurchaseOrder_Items
例如:
GET https://my-base-url.com/http/purchaseOrderDL?$top=2&$skip=0&$select=YY1_PurchaseOrder_Items
但这不会带来任何回报。
我已经检查了其他答案:
浏览了一遍
OData 2 documentation
和
some SAP bits
,但到目前为止,还没有什么结果。