2017-05-10 13 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リポジトリからEWS Managed APIのソースを変更する必要があります。

通常の制限はありますが、次の250アイテムを取得するには、ページスルーするだけで済みます。

+0

キャッシュフラグをリセットしてページサイズを1000に設定してsoap文字列を送信するようにコードを書き直しましたが、Outlookはfalse 'hasLastItemInResponse'フラグに応答して250の予定を返します。私はカレンダーに新しい有効なアポイントメントを追加しましたが、私は再び250アイテムしか返しませんでした。 –

+0

250が正しい動作です。これは、AQSと本体を使用する場合のEWSおよびスロットリングの制限です。 hasLastItemInResponseがfalseの場合は、取得できる項目が増えているので、250の次のページを取得するだけです。 –

関連する問題