2017-02-24 6 views
0

odaata 요청이 SAPUI5의 특정 응용 프로그램에서 충돌하는 경우가 있습니다 (iwfnd/error_log의 GW 측 오류 없음). 크롬 네트워크 탭에서 통화를 재생하면 항상 작동합니다.ODATA 요청이 중단되었습니다.

는이 오류를 얻을 : 다음 문제가 발생했습니다 중단 요청 -

사용 SAPUI5 버전은 다음과 같습니다 "1.38.9". 다음은 스택입니다 :

O @ sap-ui-core.js:formatted:9550 
Q.fatal @ sap-ui-core.js:formatted:9571 
h._handleError @ ODataModel.js:6 
k @ ODataModel.js:6 
(anonymous) @ ODataModel.js:6 
i.abort @ datajs.js:17 
abort @ ODataModel.js:6 
c.abortPendingRequest @ ODataListBinding.js:6 
c.filter @ ODataListBinding.js:6 

그것은 내가 세부에서 일부 데이터를 필터링 "마스터"목록에서 항목을 클릭 "마스터 세부 사항"시나리오의 경우입니다. 문제는 Odata 요청이 중단됨에 따라 데이터가 실제로 업데이트되지 않는다는 것입니다.

_onRouteMatched: function(oEvent) { 
filterCharac.push(new sap.ui.model.Filter("Zrwk", sap.ui.model.FilterOperator.EQ, oArgs.idRework)); 
     filterCharac.push(new sap.ui.model.Filter("Ztasknb", sap.ui.model.FilterOperator.EQ, oArgs.taskId)); 
     this.getView().byId("TableCharac").getBinding("items").filter(filterCharac); 
     this.getView().byId("StatusLog").getBinding("items").filter(new sap.ui.model.Filter("Zrwk", sap.ui.model.FilterOperator.EQ, oArgs.idRework)); 
     this.getView().byId("lowestItems").getBinding("items").filter(filterCharac); 
     var commentsFeed = this.getView().byId("Comments"); 
     var oFilter = new sap.ui.model.Filter("Zrwk", sap.ui.model.FilterOperator.EQ, oArgs.idRework); // name between A and G 
     commentsFeed.getBinding("items").filter(oFilter); 

} 
+0

필터 메소드가 호출 된 함수를 공유 할 수 있습니까? 필터가 XMLview에 하드 코딩되어 있습니까? 필터 메소드를 호출 한 직후 당신은 무엇을합니까? 일반적으로 더 많은 코드가 도움이됩니다. – boghyon

답변

1

이 주로 필터링 (또는 분류) 전에 목록 인가되기 때문에 일부 데이터 (예를 들면 전체 내용 나열)을 획득하기위한 요청이 중단 될 때 일어난다 : 여기서 코드의 짧은 버전 요청이 완료되었습니다. UI5는 처음 요청한 데이터가 더 이상 유용하지 않음을 감지하기 때문에 요청을 중단합니다.

UI5 코드에서 다음 주석 (code is on github)이 설명 : 이론적으로

/*  
* Aborts the current pending request (if any). 
* 
* This can be called if we are sure that the data from the 
* current request is no longer relevant, e.g. when filtering/
* sorting is triggered or the context is changed. 
*/ 

은이 응용 프로그램의 동작에 영향을주지해야한다 (그러나 나는 콘솔에서 오류를보고 추한 것 같다) . 필터링을 집계 초기에 적용하여이를 피할 수 있습니다 (예 : 컨트롤러 내부가 아니라보기에서 직접).

필터링하는 집계 (아마 JS)와 뷰에서 필터링을 정의하는 방법을 보여줄 수 있다면 좀 더 구체적인 해결책을 제시 할 수 있습니다.