All I know about Outlook 2010/2013 and SharePoint Synchronization

When does Outlook 2010/2013 synchronies SharePoint Lists and Document Libraries?

By default, WSS lists can be synchronized once during each Send/Receive interval, and there are four basic ways to initiate this Send/Receive process in Outlook:

· Send/Receive (automatic or manual)
· Shift+F9 or F9
· Folder focus change
· Synchronize when Saving/Updating an Item

The All Accounts Send/Receive group has SharePoint list synchronization enabled by default and an automatic send/receive interval of 30 minutes. If you want to customize the default Send/Receive settings for your Outlook profile, Click on Send/Receive Tab, Click on Send/Receive Groups and then click Define Send/Receive Groups. The Send/Receive Groups dialog box is displayed.

clip_image001

Then, in the Send/Receive Groups dialog box select the All Accounts group and click Edit.The Send/Receive Settings – All Accounts dialog box is displayed.

All Accounts

The Send/Receive Settings – All Accounts dialog box contains two settings related to SharePoint list synchronization.

· Include Windows SharePoint lists in this Send/Receive group - With this checkbox enabled, every time the Send/Receive process is initiated for the Send/Receive group, the enabled SharePoint lists may be synchronized (depending on the Send/Receive update setting and the WSS automatic synchronization limit). If this checkbox is not enabled, then your SharePoint lists are not synchronized with Outlook during a Send/Receive operation. In this situation, you have to use different method for synchronizing the data.

· Send/Receive Options - Every SharePoint list configured on the SharePoint Lists tab of the Account Settings dialog box is listed under Send/Receive Options in the Send/Receive Settings – All Accounts dialog box. Only lists whose checkbox is enabled are synchronized whenever the synchronization process for the parent Send/Receive group is initiated.

Automatic Send/Receive Synchronization
In the Send/Receive Groups dialog box is a setting for All Accounts called Schedule an automatic send/receive every x minutes. When this x-minute interval expires, Outlook performs an automatic send/receive operation based on the settings you have configured for the All Accounts group in the Send/Receive Settings – All Accounts dialog box. If you disable SharePoint list synchronization via the Include Windows SharePoint lists in this Send/Receive group checkbox, or synchronization of specific SharePoint lists via the Send/Receive Options checkbox for the lists, then an automatic send/receive operation does not synchronize the WSS lists.

Manual Send/Receive Synchronization
There are several ways to perform a manual send/receive operation.

· Press F9
· Click Send/Receive All Folders on the Send/Receive Tab

If you have SharePoint synchronization enabled, then your SharePoint list should be synchronized whenever you use one of these manual send/receive operations.

If you disable SharePoint list synchronization via the Include Windows SharePoint lists in this Send/Receive group checkbox or you disable synchronization of specific SharePoint lists via the Send/Receive Options checkboxes, then your SharePoint lists are not synchronized when you use one of these manual send/receive operations. This occurs because these methods honor the settings you specify for the Send/Receive group.

Shift + F9
Using Shift+F9 is not technically classified as a Send/Receive operation because it does not utilize the settings you have for your Send/Receive group(s). Even if you disable SharePoint list synchronization via the Include Windows SharePoint lists in this Send/Receive group checkbox or synchronization of specific SharePoint lists via the Send/Receive Options checkboxes, your SharePoint list for the selected folder is still synchronized.

To initiate a manual synchronization of a SharePoint List folder, use the following steps.

· Select the folder for the WSS list or document library in the Folder List module.
· Press Shift + F9

Folder Focus Change
A third method of synchronizing a SharePoint list is to click off the folder for the list and then click back to it. This is another useful method if you disabled SharePoint list synchronization via the Include Windows SharePoint lists in this Send/Receive group checkbox or synchronization of specific SharePoint lists via the Send/Receive Options checkbox for the lists.

Synchronize when Saving an Item
To make collaboration a good user experience, Outlook automatically synchronizes your list if you add or edit a list item within the Outlook interface. Outlook does not wait for an automatic synchronization or a manual synchronization in this scenario and it only respects the server’s TTL value(We will look at what this is later in the article).

Does the STSSyncInterval registry key for Outlook control synchronization on Outlook 2010/2013?

The STSSyncInterval regkey corresponds to the "SharePoint folder sync interval" GPO which is included by default in the Outlook 2010/2013 adm template.

Although this is present, it is no longer used by Outlook .

How can we control the frequency of synchronization?

The Outlook client makes a call to the SharePoint Server to returns changes made to the specified list since the date and time specified in the token, if specified, or to return all the list items in the list. It uses the GetListItemChangesSinceToken operation. More details can be found in the article below:

Lists.GetListItemChangesSinceToken method
https://msdn.microsoft.com/en-us/library/websvclists.lists.getlistitemchangessincetoken.aspx

The following example shows a request that uses the change token extracted from a previous GetListItemChangesSinceTokenResponse:

 <?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
    <GetListItemChangesSinceToken xmlns="https://schemas.microsoft.com/sharepoint/soap/">
        <listName>TestListItem</listName>
        <query><Query><OrderBy><FieldRef Name="ID"/></OrderBy></Query></query>
        <viewFields>
            <ViewFields>
                <FieldRef Name="ID" /><FieldRef Name="Title" />
            </ViewFields>
        </viewFields>
        <rowLimit>10</rowLimit>
        <changeToken> 1;3;e074e60a-0126-4446-a751-a5be7a55ed81;633374187828130000;243</changeToken>
    </GetListItemChangesSinceToken>
</soap:Body>
</soap:Envelope>
 
 

The response we get:

 <?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema">
<soap:Body>
    <GetListItemChangesSinceTokenResponse xmlns="https://schemas.microsoft.com/sharepoint/soap/">
        <GetListItemChangesSinceTokenResult>
            <listitems MinTimeBetweenSyncs='0' RecommendedTimeBetweenSyncs='180' MaxBulkDocumentSyncSize='500' AlternateUrls='https://siteaddress/' EffectivePermMask='FullMask' 
            xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882' xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882' xmlns:rs='urn:schemas-microsoft-com:rowset' xmlns:z='#RowsetSchema'> 
            <Changes LastChangeToken="1;3;e074e60a-0126-4446-a751-a5be7a55ed81;633374187828130000;243"><List excluded content that matches GetList call … > </List></Changes> 
                <rs:data ItemCount="1"> 
                    <z:row ows_ID='1' ows_Title='Test new entry' ows_MetaInfo='1;#' ows__ModerationStatus='0' ows__Level='1' ows_owshiddenversion='3' ows_UniqueId='1;#{078CAB5C-5FEA-43EA-B23A-FB93EF35397D}' 
                    ows_FSObjType='1;#0' ows_Created='2008-01-28 08:06:11' ows_FileRef='1;#Lists/TestListItem/1_.000' />
                </rs:data>
            </listitems>
        </GetListItemChangesSinceTokenResult>
    </GetListItemChangesSinceTokenResponse>
</soap:Body>
</soap:Envelope>

Notice the MinTimeBetweenSyncs and the RecommendedTimeBetweenSyncs values returned, these values are used to control how synchronization works in Outlook.

 By default, a SharePoint list does not have a publishing limit configured and the Current provider limit value in the SharePoint List Options dialog box will show Not Published. Therefore, by default, you can manually synchronize your WSS list data with Outlook as often as you want. 
 Where can I see this in the Outlook UI? You can go to Account Settings, then to the SharePoint Lists Tab and then double click on the list you are interested in.

xxx

 The MinTimeBetweenSyncs represents the minimum amount of time between user-initiated or automatic synchronization. The value represents a time in minutes.

Clients should respect this value even if the user initiates synchronization manually. That is, if this is set to 5 minutes, clients should only send one request per 5 minutes even if the user repeatedly clicks "send/receive".
This setting is also known TTL and the property name that needs to be set on the SharePoint server is “min-time-between-syncs”. The default value for this property is 0 minutes. How do we set it on the SharePoint Server?

 To set this value on the server, use the STSADM interface on the SharePoint server. The general syntax for setting a property is:
 stsadm -o setproperty –propertyname <property name> -propertyvalue <property value>
 So in this case:
 STSADM -o setproperty - propertyname "min-time-between-syncs" - propertyvalue "0"
 Users can prevent their clients from honoring the TTL value you specify by clearing the Update Limit checkbox in the SharePoint List Options dialog box for a list. However, you can also set policy key to force Outlook clients to respect the TTL value published by WSS.
 The policy is called “Override published sync interval”.

Registry Key: software\policies\microsoft\office\14.0\outlook\options\wss

Registry Value Name: IgnoreTTL

Registry Value: 1 or 0

Description: This policy setting allows you to prevent users from overriding the sync interval published by managed SharePoint lists. If you enable this policy setting, the ''Update Limit'' checkbox found under File tab | Info | Account Settings | SharePoint List | Change& is disabled, and the user's connected SharePoint lists will only sync as defined by the list's administrator. If you disable this policy setting, then individual users will be able to override the sync interval by unchecking the ''Update Limit'' checkbox in the SharePoint List's Options dialog.

 However, there is a different server synchronization limit that is used for automatic synchronizations initiated by an Outlook Send/Receive operation. The default limit for automatic synchronizations by Outlook is 180 minutes.
 This setting is also known ASI and the property name that needs to be set on the SharePoint server is “recommended-time-between-syncs”. The default value for this property is 180. How do we set it on the SharePoint Server?
 To set this value on the server, use the STSADM interface on the SharePoint server. The general syntax for setting a property is:
 stsadm -o setproperty –propertyname <property name> -propertyvalue <property value>
 So in this case:
 STSADM -o setproperty - propertyname "recommended-time-between-syncs" - propertyvalue "60"
 When the “recommended-time-between-syncs” is set on the server, Outlook will synchronize the lists once in 60 minutes(as set in the example above) even when automatic synchronizations is scheduled to happen in 30 minutes by default.
 If users synchronize too often with the SharePoint server or they complain that the automatic synchronization interval is too long, you can adjust the ASI and the TTL values on the server to better suit the needs of your users. 
 Enjoy!