我想爲包含名稱或地址的子串的特定條目在我的UI中輸入時搜索OData-Service。 sap.ui.model.odata.v2.ODataModel對象有一個方法「read()」,它只是爲了做到這一點,但我沒有得到任何文檔。 我想爲我的OData-Service的集合「PatientSet」搜索特定的名稱子字符串。此外,我想用相同的搜索查詢搜索同一服務中的某些地址。 「AddressSet」是一個通過導航屬性「Addresses」鏈接到「PatientSet」的集合。現在我的搜索查詢是這樣構造的:在sap.ui.model.odata.v2.ODataModel中搜索
this.oModel.read(
"/PatientSet?$expand=Addresses(/Name/Family='" + familyName + "',/Name/First='" + firstName + "')",
{
success: function(data, result) {console.log(result)},
error: function(err) {alert(err)}
}
);
查詢中尚未包含對地址的搜索。該文檔說read() - Method將「觸發一個GET請求到模型構造函數中指定的odata服務,數據將存儲在模型中,請求的數據與響應一起返回。」 然而,我得到該請求的響應說完全不同的東西:
Request
URL:http://XXXXXXXX/proxy/http/XXXXXXXXX/sap/opu/odata/XXXXXXXXX/$batch
Request Method:POST
Status Code:202 Accepted
Remote Address:[::1]:54273
Response
--9D0C08B072143EFCC9C3A1A7A24358190
Content-Type: application/http
Content-Length: 1796287
content-transfer-encoding: binary
HTTP/1.1 200 OK
Content-Type: application/atom+xml;type=feed
Content-Length: 1796172
dataserviceversion: 2.0
以下是包含「PatientSet」集合的第一個千項的XML響應。 那麼爲什麼「read()」 - 方法觸發一個包含POST請求的批處理請求?爲什麼沒有過濾?
這是我想要實現的: http://stackoverflow.com/questions/39791655/odata-v2-filtering-in-expanded-collection – doktormatte