Exchange calendar: Is ConversationId a good identifier of master events for FindItem occurrences?

筅森魡賤 提交于 2019-12-02 06:42:34

问题


I collect the appointments in an Exchange calendar with a SOAP FindItem call. This returns single events and (custom) occurrences of recurring events.

When processing these I use GetItem to retrieve the ID of the master event for each occurrence (ItemType=citOccurrence). After that is done, I can determine if I still need to store the master event internally (and retrieve all its details), or if I have already done so.

But with many occurrence of the same recurring event (especially with unending ones) in a longer FindItem period, this means having to do a lot of GetItem 'get master' calls to the server (with the 1st one resulting in 'you must store the master' and all the others in 'you already have this master').

I have looked at the properties returned with BaseShape AllProperties and it seems that ConversationId could be a property that I can use to identify occurrences of the same master event. Sample data for test events:

<t:ItemId Id="AAMk[snip]AAEA==" ChangeKey="DwAAABYAAABs2/j8u1jEQJde5BzoAC+PAAC5aMZ/"/>
<t:Subject>Occurrence</t:Subject>
<t:ConversationId Id="AAQkADgyMTc3ZTI4LTU1ZmItNGI5Yy04YzVjLTk2MjFiZjY5ODkyYgAQANxmlGQ/3ahArhg+mv+UJSo="/>

<t:ItemId Id="AAMk[snip]AAEA==" ChangeKey="DwAAABYAAABs2/j8u1jEQJde5BzoAC+PAAC5aMZ/"/>
<t:Subject>Modified occurrence</t:Subject>
<t:ConversationId Id="AAQkADgyMTc3ZTI4LTU1ZmItNGI5Yy04YzVjLTk2MjFiZjY5ODkyYgAQANxmlGQ/3ahArhg+mv+UJSo="/>

<t:ItemId Id="AAMk[snip]RrAAA=" ChangeKey="DwAAABYAAABs2/j8u1jEQJde5BzoAC+PAAC5aMaA"/>
<t:Subject>New single event</t:Subject>
<t:ConversationId Id="AAQkADgyMTc3ZTI4LTU1ZmItNGI5Yy04YzVjLTk2MjFiZjY5ODkyYgAQAMRNQtffkIdFvs73IVVJObM="/>

<t:ItemId Id="AAMk[snip]AAEA==" ChangeKey="DwAAABYAAABs2/j8u1jEQJde5BzoAC+PAAC5aMZ/"/>
<t:Subject>Occurrence</t:Subject>
<t:ConversationId Id="AAQkADgyMTc3ZTI4LTU1ZmItNGI5Yy04YzVjLTk2MjFiZjY5ODkyYgAQANxmlGQ/3ahArhg+mv+UJSo="/>

<t:ItemId Id="AAMk[snip]RtAAA=" ChangeKey="DwAAABYAAABs2/j8u1jEQJde5BzoAC+PAAC5aMaG"/>
<t:Subject>Meeting</t:Subject>
<t:ConversationId Id="AAQkADgyMTc3ZTI4LTU1ZmItNGI5Yy04YzVjLTk2MjFiZjY5ODkyYgAQAOZVB7gVSTJCtmZMMcXVBfQ="/>

Question: Is ConversationId a reliable property to use for this?

Notes:

  • From reading around I get the impression that is primarily used for messages, not appointments.

  • There is a similar question here but that does not definitively answer mine.

  • Also, there are some issues retrieving ConversationId under Exchange 2007, but they seem solvable.

  • (Edited to add) A quick test shows that ConversationID, UID, and even InstanceIndex are all candidates. Which is the 'definitive' one?


回答1:


Try iCalUID (I think that is the property, but I could be off a little). If you have a multi-room meeting, the UID will be the same for appointments in both rooms. I've not checked in some time, but I believe it will also be the same for instances of the same master.



来源:https://stackoverflow.com/questions/31611739/exchange-calendar-is-conversationid-a-good-identifier-of-master-events-for-find

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!