Outlook의 필드 선택기에 나타나도록 EWS를 사용하여 사용자 속성을 만들고 싶습니다. 객체 모델은 VBA를 사용하여 가능하다는 것을 알고 Item.UserProperties 컬렉션을 노출합니다. 그러나 EWS를 사용하면 Item.ExtendedProperty에만 액세스 할 수 있습니다.EWS 또는 EWS Managed API를 사용하여 사용자 속성을 만들어 필드 선택기에 표시하는 방법
ExtendedProperty의 문제는 is가 선택 가능한 사용자 속성 목록에 나타나지 않는다는 것입니다.
근본적인 문제는 Microsoft의 서버 쪽 응용 프로그램이 Dynamics CRM Outlook 클라이언트와 잘 작동한다는 것입니다. CRM Outlook 클라이언트는 사용자 정의 속성을 저장하기 위해 UserProperty를 사용하며 응용 프로그램은 EWS에서만 작동 할 수 있으며 사용자 속성을 만드는 방법을 찾을 수 없습니다.
일부 예제 코드 :
사용자 속성 (VBA 전망) :
희미한에서 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
최종 하위
확장 속성 (교환 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
};
}
비슷한 질문은 거의 일년 전에 마이크로 소프트 포럼에 요청 된
,하지만 대답은 아직 없습니다. http://social.technet.microsoft.com/Forums/en-NZ/exchangesvrdevelopment/thread/c4d6bbb9-ba6a-4aa4-9e39-98a52b733a8c
내가 :)
덕분에 더 성공적이 될 것이다 SO 기대했다, Jeffry
일부 사이트에서는 몇 가지 가능한 답변을 보았습니다. Havent는 그것을 시험 할 시간이 있었다. 기본적으로) EWS는 PUBLICSTRINGS guid를 사용해야합니다. b) 관련성이있는 모든 폴더를 통해 addin 루프가 있어야하며 userProperty가 콜렉션에 추가되었는지 확인해야합니다. c) 그런 다음 열보기 등을 사용자 정의 할 수 있습니다. – MJB