SyncFolderHierarchy Operation
Topic Last Modified: 2008-09-05
The SyncFolderHierarchy operation synchronizes folders between the computer that is running Microsoft Exchange Server 2007 and the client.
Note
The SyncFolderHierarchy operation does not return folders when the UnreadCount or TotalCount properties have changed.
SyncFolderHierarchy Request Example
Description
The following example of a SyncFolderHierarchy request shows how to synchronize a client folder hierarchy with the Exchange server. This example shows a folder hierarchy that has already been synchronized at least one time. The SyncState element is not included in the request for the first attempt to synchronize a client with the Exchange server. The first request will return all the folders in the mailbox. The SyncState element will be returned in the SyncFolderHierarchyResponse. This element is used to synchronize the state for subsequent SyncFolderHierarchy requests.
Code
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/"
xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types">
<soap:Body>
<SyncFolderHierarchy xmlns="https://schemas.microsoft.com/exchange/services/2006/messages">
<FolderShape>
<t:BaseShape>AllProperties</t:BaseShape>
</FolderShape>
<SyncState>H4sIA=</SyncState>
</SyncFolderHierarchy>
</soap:Body>
</soap:Envelope>
Comments
The SyncState element base64-encoded data has been shortened to preserve readability.
Request Elements
The following elements are used in the request:
Note
The schema that describes these elements is located in the EWS virtual directory of the computer that is running Microsoft Exchange Server 2007 that has the Client Access server role installed.
Successful SyncFolderHierarchy Response
Description
The following example shows a successful response to the SyncFolderHierarchy request. In this example, a new folder has been synchronized.
Code
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<t:ServerVersionInfo MajorVersion="8" MinorVersion="0"
MajorBuildNumber="628" MinorBuildNumber="0"
xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<SyncFolderHierarchyResponse xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types"
xmlns="https://schemas.microsoft.com/exchange/services/2006/messages">
<m:ResponseMessages>
<m:SyncFolderHierarchyResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:SyncState>H4sIAAA==</m:SyncState>
<m:IncludesLastFolderInRange>true</m:IncludesLastFolderInRange>
<m:Changes>
<t:Create>
<t:Folder>
<t:FolderId Id="AQApAHR=" ChangeKey="AQAAABY" />
<t:ParentFolderId Id="AQApA=" ChangeKey="AQAAAA==" />
<t:FolderClass>IPF.Note</t:FolderClass>
<t:DisplayName>NewFolder</t:DisplayName>
<t:TotalCount>0</t:TotalCount>
<t:ChildFolderCount>0</t:ChildFolderCount>
<t:UnreadCount>0</t:UnreadCount>
</t:Folder>
</t:Create>
</m:Changes>
</m:SyncFolderHierarchyResponseMessage>
</m:ResponseMessages>
</SyncFolderHierarchyResponse>
</soap:Body>
</soap:Envelope>
Comments
The SyncState element base64-encoded data and the folder identifier data have been shortened to preserve readability.
Successful Response Elements
The following elements are used in the response:
SyncFolderHierarchy Error Response
Description
The following example shows an error response to a SyncFolderHierarchy request. This error was caused by an invalid SyncState.
Code
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<t:ServerVersionInfo MajorVersion="8" MinorVersion="0"
MajorBuildNumber="628" MinorBuildNumber="0"
xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<SyncFolderHierarchyResponse xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types"
xmlns="https://schemas.microsoft.com/exchange/services/2006/messages">
<m:ResponseMessages>
<m:SyncFolderHierarchyResponseMessage ResponseClass="Error">
<m:MessageText>Synchronization state data is corrupted or otherwise invalid.</m:MessageText>
<m:ResponseCode>ErrorInvalidSyncStateData</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
<m:SyncState />
<m:IncludesLastFolderInRange>true</m:IncludesLastFolderInRange>
</m:SyncFolderHierarchyResponseMessage>
</m:ResponseMessages>
</SyncFolderHierarchyResponse>
</soap:Body>
</soap:Envelope>
Error Response Elements
The following elements are used in the error response: