我遇到的问题是使用Outlook FormRegion创建的Outlook Appointement的GlobalAppointmentID与使用EWS托管API时的ItemID不同 .
我正在创建一个Outlook addIn,允许用户将客户和项目信息添加到 Session 中 . addIn还将约会ID和 Session 数据存储在数据库中,服务将定期检查ID以更新约会数据 .
好的,这就是我如何使用AddIn:
Outlook.AppointmentItem appointement = (Outlook.AppointmentItem)this.OutlookItem;
appointement.Save();
string ExchangeID = appointement.GlobalAppointmentID;
这里的GlobalAppointmentID是:040000008200E00074C5B7101A82E0080000000060CADC517255CE01000000000000000010000000847A9CD89052DC49BA28DC8AAFBBB4BA
但是EWS托管API需要类似的东西:AAMkADViNTJlZTg5LTIwYWMtNGY3My1hOWZiLTZiOTM3OTk3Nzk1YQBGAAAAAAAEfbmEhAMsRZur9AvsphPMBwCysaa5HwPMRanSoWSnKrckAAAAXAL / AACysaa5HwPMRanSoWSnKrckAAAAXCxwAAA =
从服务绑定AppointmentItem . 有一个选项可以解决这个问题但只使用自动生成的代理而不是托管API link to proxy solution
那么有没有办法从EWS托管API搜索GlobalAppointementID或从Outlook AddIn检索ItemID?
2 回答
ID可以用不同的方式表示 . Outlook使用第一种形式,EWS使用第二种形式 .
要进行转换,请使用ConvertID方法 .
以下是原始SOAP格式的示例请求/响应调用(使用这些示例,您应该能够使用API实现它们):
Outlook HexEntryID到Exchange EWSID
将EWSID交换到Outlook HexEntryID:
请注意,在使用定期约会和出现时使用这两种类型的ID存在差异:
如果每次出现EWS ID不同,则所有的Outlook十六进制条目ID都相同:
具有一个例外的重复事件的FindItem响应 - 请注意不同的ItemID:
将这些ItemID的EWSID转换为HexEntryID会导致
Outlook约会ID包装外部(iCal)约会ID . 你需要解析它:http://msdn.microsoft.com/en-us/library/ee157690(v=exchg.80).aspx