EWSを使用してユーザープロパティを作成し、Outlookのフィールド選択ツールに表示したいと考えています。 VBAを使用することが可能であることはわかっています。オブジェクトモデルはItem.UserPropertiesコレクションを公開しています。しかし、EWSを使用すると、Item.ExtendedPropertyにしかアクセスできません。EWSまたはEWS Managed APIを使用してユーザープロパティを作成してフィールド選択ツールに表示する方法
ExtendedPropertyの問題は、isが選択可能なユーザーのプロパティリストに表示されないことです。
当社のサーバー側アプリケーションは、Dynamics CRM Outlook Clientとうまく連携しようとしています。 CRM Outlookクライアントはカスタムプロパティを格納するためにUserPropertyを使用しており、アプリケーションはEWSでしか動作できず、ユーザープロパティを作成する方法を見つけることができません。
いくつかのサンプルコード:
ユーザプロパティ(VBAのOutlook):
薄暗いWITHEVENTS m_objApp
If Item.Class = olAppointment Then
Set m_objApp = Item
End If
Outlook.AppointmentItem
プライベートサブApplication_ItemLoad(オブジェクトとしてByValアイテム)として終了サブ
プライベートサブm_objApp_Open(ブール値としてキャンセル)
Dim oProp1 As UserProperty
Dim oProp2 As UserProperty
If m_objApp.UserProperties.Count = 0 Then
Set oProp1 = m_objApp.UserProperties.Add("crmid", olText)
oProp1.Value = ""
Set oProp2 = m_objApp.UserProperties.Add("crmLinkState", olText)
oProp2.Value = "0"
m_objApp.Save
End If
End Subの
拡張プロパティ(交換EWS):
CalendarItemType item = new CalendarItemType();
item.MeetingTimeZone = new TimeZoneType() { TimeZoneName = _userTimeZone };
item.StartSpecified = true;
item.Start = GetDateFromXml(node.Value);
item.EndSpecified = true;
item.End = GetDateFromXml(node.Value);
List<ExtendedPropertyType> properties = new List<ExtendedPropertyType>();
properties.Add(CreateExtendedProperty("crmid", pending.CrmId.Value.ToString(), MapiPropertyTypeType.String));
properties.Add(CreateExtendedProperty("crmLinkState", "2", MapiPropertyTypeType.Double));
item.ExtendedProperty = properties.ToArray();
CreateRequest createRequest = new CreateItemType()
{
Items = new NonEmptyArrayOfAllItemsType
{
Items = new ItemType[] { item }
},
SavedItemFolderId = new TargetFolderIdType()
{
Item = new DistinguishedFolderIdType()
{
Id = folder,
Mailbox = new EmailAddressType() { EmailAddress = _user.MailBox }
}
},
SendMeetingInvitations = CalendarItemCreateOrDeleteOperationType.SendToNone,
SendMeetingInvitationsSpecified = true
};
CreateItemResponseType response = exchange.CreateItem(createRequest);
private ExtendedPropertyType CreateExtendedProperty(string name, string value, MapiPropertyTypeType type)
{
return new ExtendedPropertyType()
{
ExtendedFieldURI = new PathToExtendedFieldType()
{
PropertyName = name,
DistinguishedPropertySetId = DistinguishedPropertySetType.PublicStrings,
DistinguishedPropertySetIdSpecified = true,
PropertyType = type
},
Item = value
};
}
同様の質問はほぼ一年前、マイクロソフトのフォーラムで尋ね、ないされていますまだ答えている。私はSOもっと成功するだろう期待していたhttp://social.technet.microsoft.com/Forums/en-NZ/exchangesvrdevelopment/thread/c4d6bbb9-ba6a-4aa4-9e39-98a52b733a8c
:)
おかげで、 Jeffry
一部のサイトでいくつかの回答があります。 Haventはそれをテストする時間がありました。基本的にa)EWSはPUBLICSTRINGS guidを使用する必要があります。 b)関連性のあるすべてのフォルダを介してaddinループを作成し、userPropertyがコレクションに追加されていることを確認する必要があります。c)次に列ビューなどをカスタマイズできます。 – MJB