Jaa


ISSUE - Outlook/SharePoint Interop - Documents won't sync to Outlook

Issue: One of our customers was seeing an issue wherein site users migrated from v2 to v3 were unable to sync the contents of document folders hosted on the my site to their Outlook 2007 folder list. Interestingly, the folders containing the documents would sync as expected.

 

References:

 

- MOSS2007 My Site (personalization) - https://blogs.msdn.com/sharepoint/archive/2006/12/01/getting-started-with-personalization-in-moss-2007.aspx

- Content Types in SharePoint - https://msdn2.microsoft.com/en-us/library/ms452896.aspx and https://msdn2.microsoft.com/en-us/library/ms472236.aspx

- Outlook 2007 integration with V3 - https://download.microsoft.com/download/7/5/1/75168f8a-e2dc-479a-861c-afb3730c9ee6/OutlookSharePointIntegration_OV_E.ppt

- Netmon - https://blogs.technet.com/netmon/

 

Technical Details: We used netmon to determine that metadata about the documents was being transferred across the wire from MOSS to the Outlook client. In the packet below, note that the name of the document is test.docx (highlighted in green). Also note the Site Content type highlighted in yellow. I have snipped out the involved IP addresses.

 

No.     Time                       Source                Destination           Protocol Info

   5259 2007-05-15 12:50:13.329717 <snip>         <snip>          ESP      ESP (SPI=0x83312de5)

 

Frame 5259 (1510 bytes on wire, 1510 bytes captured)

    Arrival Time: May 15, 2007 12:50:13.329717000

    [Time delta from previous packet: 8.550813000 seconds]

    [Time since reference or first frame: 8.550813000 seconds]

    Frame Number: 5259

    Packet Length: 1510 bytes

    Capture Length: 1510 bytes

    [Frame is marked: False]

    [Protocols in frame: eth:ip:esp]

Ethernet II, Src: Cisco_0f:59:ca (00:07:b3:0f:59:ca), Dst: DellComp_15:39:b5 (00:08:74:15:39:b5)

    Destination: DellComp_15:39:b5 (00:08:74:15:39:b5)

        Address: DellComp_15:39:b5 (00:08:74:15:39:b5)

        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)

        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)

    Source: Cisco_0f:59:ca (00:07:b3:0f:59:ca)

        Address: Cisco_0f:59:ca (00:07:b3:0f:59:ca)

        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)

        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)

    Type: IP (0x0800)

<snip>

    Version: 4

    Header length: 20 bytes

    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)

        0000 00.. = Differentiated Services Codepoint: Default (0x00)

        .... ..0. = ECN-Capable Transport (ECT): 0

        .... ...0 = ECN-CE: 0

    Total Length: 1496

    Identification: 0xc8aa (51370)

    Flags: 0x04 (Don't Fragment)

        0... = Reserved bit: Not set

        .1.. = Don't fragment: Set

        ..0. = More fragments: Not set

    Fragment offset: 0

    Time to live: 55

    Protocol: ESP (0x32)

    Header checksum: 0x03cd [correct]

        [Good: True]

        [Bad : False]

    Source: <snip>

    Destination: <snip>

Encapsulating Security Payload

    SPI: 0x83312de5

    Sequence: 353

 

0000  00 08 74 15 39 b5 00 07 b3 0f 59 ca 08 00 45 00   ..t.9.....Y...E.

0010 05 d8 c8 aa 40 00 37 32 03 cd 9d 36 47 1a 41 35   <....@.72...6G.A5>

0020  4b f7 83 31 2d e5 00 00 01 61 00 50 11 7e 9e 10   K..1-....a.P.~..

0030  78 29 a2 f8 69 f2 50 10 ff ff ef a4 00 00 54 79   x)..i.P.......Ty

0040  70 65 3e 31 3c 2f 43 61 6c 65 6e 64 61 72 54 79   pe>1</CalendarTy

0050  70 65 3e 3c 54 69 6d 65 32 34 3e 46 61 6c 73 65   pe><Time24>False

0060  3c 2f 54 69 6d 65 32 34 3e 3c 54 69 6d 65 5a 6f   </Time24><TimeZo

0070  6e 65 3e 34 38 30 3c 2f 54 69 6d 65 5a 6f 6e 65   ne>480</TimeZone

0080  3e 3c 53 6f 72 74 4f 72 64 65 72 3e 32 30 37 30   ><SortOrder>2070

0090  3c 2f 53 6f 72 74 4f 72 64 65 72 3e 3c 50 72 65   </SortOrder><Pre

00a0  73 65 6e 63 65 3e 54 72 75 65 3c 2f 50 72 65 73   sence>True</Pres

00b0  65 6e 63 65 3e 3c 2f 52 65 67 69 6f 6e 61 6c 53   ence></RegionalS

00c0  65 74 74 69 6e 67 73 3e 3c 53 65 72 76 65 72 53   ettings><ServerS

00d0  65 74 74 69 6e 67 73 3e 3c 53 65 72 76 65 72 56   ettings><ServerV

00e0  65 72 73 69 6f 6e 3e 31 32 2e 30 2e 30 2e 34 35   ersion>12.0.0.45

00f0  31 38 3c 2f 53 65 72 76 65 72 56 65 72 73 69 6f   18</ServerVersio

0100  6e 3e 3c 52 65 63 79 63 6c 65 42 69 6e 45 6e 61   n><RecycleBinEna

0110  62 6c 65 64 3e 54 72 75 65 3c 2f 52 65 63 79 63   bled>True</Recyc

0120  6c 65 42 69 6e 45 6e 61 62 6c 65 64 3e 3c 53 65   leBinEnabled><Se

0130  72 76 65 72 52 65 6c 61 74 69 76 65 55 72 6c 3e   rverRelativeUrl>

0140  2f 73 69 74 65 73 2f 76 2d 64 61 73 68 65 65 3c   /sites/v-dashee<

0150  2f 53 65 72 76 65 72 52 65 6c 61 74 69 76 65 55   /ServerRelativeU

0160  72 6c 3e 3c 2f 53 65 72 76 65 72 53 65 74 74 69   rl></ServerSetti

0170  6e 67 73 3e 3c 2f 4c 69 73 74 3e 3c 2f 43 68 61   ngs></List></Cha

0180  6e 67 65 73 3e 0d 0a 3c 72 73 3a 64 61 74 61 20   nges>..<rs:data

0190  49 74 65 6d 43 6f 75 6e 74 3d 22 34 22 3e 0d 0a   ItemCount="4">..

01a0  20 20 20 3c 7a 3a 72 6f 77 20 6f 77 73 5f 49 44      <z:row ows_ID

01b0  3d 27 31 27 20 6f 77 73 5f 6f 77 73 68 69 64 64   ='1' ows_owshidd

01c0  65 6e 76 65 72 73 69 6f 6e 3d 27 32 27 20 6f 77   enversion='2' ow

01d0  73 5f 43 72 65 61 74 65 64 3d 27 32 30 30 37 2d   s_Created='2007-

01e0  30 31 2d 30 38 54 32 31 3a 32 39 3a 32 39 5a 27   01-08T21:29:29Z'

01f0  20 6f 77 73 5f 4d 6f 64 69 66 69 65 64 3d 27 32    ows_Modified='2

0200  30 30 37 2d 30 31 2d 30 38 54 32 31 3a 32 39 3a   007-01-08T21:29:

0210  34 33 5a 27 20 6f 77 73 5f 43 6f 6e 74 65 6e 74   43Z' ows_Content

0220 54 79 70 65 49 64 3d 27 30 78 30 30 44 36 36 35 TypeId='0x00D665

0230 36 32 44 42 44 31 42 35 33 30 34 44 39 35 33 42 62DBD1B5304D953B

0240 46 41 42 37 36 36 44 34 32 41 32 37 27 20 6f 77 FAB766D42A27' ow

0250  73 5f 46 69 6c 65 44 69 72 52 65 66 3d 27 31 3b   s_FileDirRef='1;

0260  23 73 69 74 65 73 2f 76 2d 64 61 73 68 65 65 2f   #sites/v-dashee/

0270  50 72 69 76 61 74 65 20 44 6f 63 75 6d 65 6e 74   Private Document

0280  73 27 20 6f 77 73 5f 45 6e 63 6f 64 65 64 41 62   s' ows_EncodedAb

0290  73 55 72 6c 3d 27 68 74 74 70 3a 2f 2f 6d 79 2f   sUrl='https://my/

02a0 73 69 74 65 73 2f 76 2d 64 61 73 68 65 65 2f 50 sites/v-dashee/P

02b0 72 69 76 61 74 65 25 32 30 44 6f 63 75 6d 65 6e rivate%20Documen

02c0 74 73 2f 74 65 73 74 2e 64 6f 63 78 27 20 6f 77 ts/test.docx' ow

 

Root Cause: On a clean SharePoint install, the site content ID for a document starts with 0x0101. If it doesn’t, then Outlook will not respect the item to be synced as a document. As can be seen above, this content ID (0x00D65...) doesn’t indicate to Outlook that a document is being transferred (according to MSDN, this is not even a valid content id) in spite of the fact that the rest of the document’s metadata looks great!

 

Resolution: Upon further investigation, this assignment of a bad contnet ID was found to be an issue that only happened in Beta1 for V3. There are two workarounds:

 

  • Delete and recreate the user’s my site
  • The second set of workaround steps are to add a new, valid content type to the list, change everything to be that content type, delete ‘Document’, Re-add ‘Document, change everything back to document, then delete the temporary content type you added. Then, disconnect the list from Outlook and reconnect. HINT - Bulk edit of site content types is achievable in the UI:

 

Starting at my site, I created a custom site content type called sfellmandoc.  I then created a custom datasheet view for my Shared Documents list that includes the site content type as a column as seen here:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Note that I changed the first item to the custom site content type sfellmandoc; this is mandatory to make the bulk edit. Then comes the UI magic:

 

  • Right click on the column header “Content Type” then choose Fill and Fill Down from the drop-down menu that appears.

 

The item that you changed in the first field will now be filled for all docs in the list:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Cool issue! Let me know what you think...