2016-05-31 19 views
0

Ich sende die folgende XML-Abfrage mit der Methode Office.context.mailbox.makeEwsRequestAsync an EWS. Es funktioniert, solange Traversal auf "Shallow" eingestellt ist. Ich erhalte den Fehler "Die Anfrage ist ungültig", wenn ich Traversal auf "Tief" setze. Wie rekrutiere ich Unterordner rekursiv, wenn ich keine tiefen Suchen durchführen kann?Wie tiefe Durchquerungen mit FindItem-Abfragen durchgeführt werden

<?xml version="1.0" encoding="utf-8"?> 
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Header> 
     <t:RequestServerVersion Version="Exchange2013_SP1" /> 
    </soap:Header> 
    <soap:Body> 
     <m:FindItem Traversal="Shallow"> 
     <m:ItemShape> 
      <t:BaseShape>AllProperties</t:BaseShape> 
     </m:ItemShape> 
     <m:IndexedPageItemView MaxEntriesReturned="10" Offset="0" BasePoint="Beginning" /> 
     <m:Restriction> 
      <t:Contains ContainmentMode="FullString" ContainmentComparison="IgnoreCase"> 
      <t:FieldURI FieldURI="item:Categories" /> 
      <t:Constant Value="MyCategory" /> 
      </t:Contains> 
     </m:Restriction> 
     <m:ParentFolderIds> 
      <t:DistinguishedFolderId Id="inbox" /> 
      <t:DistinguishedFolderId Id="sentitems" /> 
     </m:ParentFolderIds> 
     </m:FindItem> 
    </soap:Body> 
    </soap:Envelope> 

Antwort

1

Der FindItem EWS Aufruf nicht unterstützt Traversal = "Deep". Siehe FindItem.

Dies liegt daran, dass der Anruf nach Elementen in den Ordnern sucht, die in ParentFolderIds angegeben sind. Um eine rekursive Suche durchzuführen, müssen Sie die Liste der Ordner abrufen, die in die Suche einbezogen werden sollen, indem Sie die EWS-Operation FindFolder verwenden, die Traversal = "Deep" für nicht öffentliche Ordner unterstützt. Weitere Informationen finden Sie unter FindFolder.