現在、EWS を使用して、会社のアプリケーションを Exchange 2010 と統合する作業を行っています。EWS を使用して Exchange 2010 への予定を作成していますが、正常に動作します。しかし、最近、予定を作成するときにカスタム/拡張プロパティを追加しようとしました。以下は、拡張プロパティを追加するコードです。
Dim customField As New ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "MyCustomField", MapiPropertyType.String)
appointment.SetExtendedProperty(customField, "CustomFieldValue")
上記のコードは、カスタム フィールドを予定に作成することができます。
ここに私の問題があります。Outlook で作成した予定を開き、[開発者] > [このフォームをデザイン] の [すべてのフィールド] タブに移動すると、[フォルダー内のユーザー定義フィールド] に作成したカスタム フィールドしか表示されませんが、[フォルダー内のユーザー定義フィールド] には表示されません。 「このアイテムのユーザー定義フィールド」。
また、ユーザーが Outlook で予定を開いたときに EWS を使用して作成したカスタム フィールドに反応する Outlook アドインを作成しました。カスタム フィールドを検索しようとしたときに、カスタム フィールドが見つかりませんでした。フィールドは「フォルダ内のユーザー定義フィールド」に作成されますが、「このアイテム内のユーザー定義フィールド」には作成されません。
これは Outlook アドインのコードであり、ユーザーが Outlook で予定を開いたときに実行されます。しかし、カスタム フィールドが「この項目内」にないため、.Find() は Nothing を返します。
Dim appt As Outlook.AppointmentItem
appt = TryCast(inspector.CurrentItem, Outlook.AppointmentItem)
If appt.UserProperties.Find("MyCustomField") Is Nothing Then
'Some action
Else
'Some action
End If
私が達成したいのは、EWS を使用してカスタム フィールド (拡張プロパティ) で予定を作成し、ユーザーが Outlook で予定を開いたときに Outlook アドインでカスタム フィールド (拡張プロパティ) を読み取ることです。
編集:
EWS を使用してカスタム フィールドに割り当てた値は、「フォルダー内のユーザー定義フィールド」に表示されます。Outlook アドインから値を取得するにはどうすればよいですか? 値を取得してカスタム フィールドをアイテムに追加し、その値を使用することはできますか?
ありがとう。