2017-05-10 9 views
0

Outlook 캘린더에 1100 개의 약속이 있으며 그 중 330 개에 category = "concrete_category"및 body = "concrete_body"가 있습니다.EWS Managed API - 본문 별 항목 필터링

내가 부문별로 일정 약속을 필터링하려고하고 몸이 다음 AQS를 사용하여 하위 문자열 :

"카테고리 : {concrete_category}과 몸 : \"{concrete_body} \ ""

330 개의 항목을받을 것으로 예상되지만 Outlook에서는 250 개의 약속 만 반환하고 응답을 캐시합니다. 따라서 약속 본문 또는 범주를 변경하면 Outlook은 이전 쿼리와 동일한 약속을 반환하지만 aqs 필터와 일치하지 않는 업데이트 된 범주 및 본문이 반환됩니다. 그리고 나는 클라이언트 쪽에서 그들을 다시 채워야한다.

쿼리 캐싱을 방지하고 250 개의 약속 수 제한을 초과하는 방법은 무엇입니까? 본문으로 필터를 사용하지 않으면이 문제가 발생하지 않습니다.

답변

0

QueryString 요소의 ResetCache 특성 https://msdn.microsoft.com/en-us/library/office/exchangewebservices.querystringtype.resetcache(v=exchg.150).aspx을 사용하여 캐시를 다시 설정할 수 있습니다. 유감스럽게도 EWS Managed API는이를 공개하지 않으므로 SOAP 또는 프록시 코드 EWS API Search Filter does not return all information을 사용하거나 github repo에서 EWS Managed API의 소스를 수정해야합니다.

250 한계는 정상이지만 다음 250 항목을 얻으려면 페이지를 넘길 수 있어야합니다.

+0

리셋 캐시 플래그를 사용하여 비누 문자열을 보내고 페이지 크기를 1000으로 설정하는 코드를 다시 작성했지만 Outlook은 여전히 ​​false 'hasLastItemInResponse'플래그에 대한 응답으로 250 개의 약속을 반환합니다. 캘린더에 새로운 유효한 약속을 추가했지만 250 개의 항목 만 다시 보냈습니다. –

+0

250이 올바른 동작입니다. 이것은 AQS 및 본문을 사용할 때 EWS 및 조절에 대한 제한 사항입니다. hasLastItemInResponse가 false이면 검색 할 수있는 항목이 더 많으므로 250의 다음 페이지를 가져옵니다. –