2016-04-20 34 views
0

私は、EWSのAPIを使用してExchangeで予定を追跡するアプリケーションを抱えています。それはユニークだが、それは(Exchange web services: why is ItemId not constant? [continued])に変更する可能性がありますので、プロパティ.ItemIdを使用することは、悪いです。アイテムを追跡する場合、これは悪い状況です。したがって、私はプロパティAppointment.ICalUidを使用します。なぜICalUidは、長さが異なりますか?

このプロパティは、常に同じに見えていないと、私の知る限り見ることができる、それが何らかの形で変更されます。私はいくつかの変更を記録しました。最初のレコードは、次の.ICalUIDで作成されます。

5fc22493-7212-4c44-9cd6-971c3bae28af 

その後、私は、同じアイテムExchangeでレコードを見て、次回は別の.ICalUIDを返します。

040000008200E00074C5B7101A82E00800000000F01883C1D49AD101000000000000000010000000C321E8A40C6DE948836C422E2DA8610C 

私が持っていないのはなぜ最初の文字列は36文字で返され、後に190文字の文字列に?この値はなぜ変わるのですか?

編集: Exchange Serverに接続されたAndroid端末を使用しているときに短いIDが作成され、Outlook 2013を使用してWindows 10上でOutlookを使用してロングIDが作成されています。

+0

あなたがはい – stuartd

+0

あなたが値を取得するコードを表示することができますが、それは私が推測する奇妙な何もない:searchFilterは、日付範囲である ExchangeService.FindItems(WellKnownFolderName.Calendar、searchFilter、IV)を、 、およびItemView静脈=新しいItemView(1000)。 iv.ProperytSetには基本的なプロパティがいくつかあり、AppointmentSchema.ICalUid – renevondecafe

答えて

1

これは、iCalのRFCがUid https://tools.ietf.org/html/rfc5545の形式または長さをグローバルに一意でなければならないということを定義していないためです。 Exchange/OutlookはGOID形式(具体的にはPidLidCleanGlobalObjectId https://msdn.microsoft.com/en-us/library/office/cc839502.aspxおよびPidLidGlobalObjectId https://msdn.microsoft.com/en-us/library/office/cc815676.aspx)を使用します(これらは通常、予定の作成時にExchangeサーバーによって生成されます) 。

異なる形式が予想されるはずですが、一般的に、icaluidプロパティではなくPidLidCleanGlobalObjectId拡張プロパティを使用することをお勧めします。これは、一度設定したExchangeが厳密に型指定されたプロパティの不一致特定のケースはあなたのように見えます。 (原則としてGOIDを返すべきです)。

乾杯 グレン

関連する問題