Exchange日历:ConversationId是FindItem实例的主事件的良好标识符吗? [英] Exchange calendar: Is ConversationId a good identifier of master events for FindItem occurrences?
问题描述
我在SOAP FindItem
调用的Exchange日历中收集约会。这会返回单个事件和(自定义)重复事件的发生。
当处理这些事件时,我使用 GetItem
每个事件的主事件的ID( ItemType
= citOccurrence
)。完成后,我可以确定是否仍然需要在内部存储主事件(并检索其所有详细信息),或者是否已经这样做。
但是在更长的 FindItem
期间,许多发生相同的重复事件(特别是无止境的事件),这意味着必须做很多 GetItem
'get master'调用到服务器(第一个结果是'你必须存储主人',所有其他人都在你已经有这个主人)。
我看过 BaseShape
AllProperties
返回的属性,看起来 ConversationId
可以是一个属性,我可以用它来标识同一主事件的发生。测试事件的示例数据:
< t:ItemId Id =AAMk [snip] AAEA ==ChangeKey =DwAAABYAAABs2 / j8u1jEQJde5BzoAC + PAAC5aMZ //>
< t:Subject>发生次数< / t:Subject>
< t:ConversationId Id =AAQkADgyMTc3ZTI4LTU1ZmItNGI5Yy04YzVjLTk2MjFiZjY5ODkyYgAQANxmlGQ / 3ahArhg + mv + UJSo =/>
< t:ItemId Id =AAMk [snip] AAEA ==ChangeKey =DwAAABYAAABs2 / j8u1jEQJde5BzoAC + PAAC5aMZ //>
< t:Subject>修改的发生< / t:Subject>
< t:ConversationId Id =AAQkADgyMTc3ZTI4LTU1ZmItNGI5Yy04YzVjLTk2MjFiZjY5ODkyYgAQANxmlGQ / 3ahArhg + mv + UJSo =/>
< t:ItemId Id =AAMk [snip] RrAAA =ChangeKey =DwAAABYAAABs2 / j8u1jEQJde5BzoAC + PAAC5aMaA/>
< t:Subject>新的单一事件< / t:Subject>
< t:ConversationId Id =AAQkADgyMTc3ZTI4LTU1ZmItNGI5Yy04YzVjLTk2MjFiZjY5ODkyYgAQAMRNQtffkIdFvs73IVVObM =/>
< t:ItemId Id =AAMk [snip] AAEA ==ChangeKey =DwAAABYAAABs2 / j8u1jEQJde5BzoAC + PAAC5aMZ //>
< t:Subject>发生次数< / t:Subject>
< t:ConversationId Id =AAQkADgyMTc3ZTI4LTU1ZmItNGI5Yy04YzVjLTk2MjFiZjY5ODkyYgAQANxmlGQ / 3ahArhg + mv + UJSo =/>
< t:ItemId Id =AAMk [snip] RtAAA =ChangeKey =DwAAABYAAABs2 / j8u1jEQJde5BzoAC + PAAC5aMaG/>
< t:Subject>会议< / t:Subject>
< t:ConversationId Id =AAQkADgyMTc3ZTI4LTU1ZmItNGI5Yy04YzVjLTk2MjFiZjY5ODkyYgAQAOZVB7gVSTJCtmZMMcXVBfQ =/>
问题:是 ConversationId
注意:
尝试iCalUID这是财产,但我可以离开一点)。如果您有多房间会议,UID将在两个房间的约会相同。我没有在一段时间检查,但我相信它也将一样的同一主人的实例。
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 evenInstanceIndex
are all candidates. Which is the 'definitive' one?
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.
这篇关于Exchange日历:ConversationId是FindItem实例的主事件的良好标识符吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!