2013-03-01 2 views
2

Im faire un processus automatique sur une boîte aux lettres à l'aide du serveur Web intégré webservices et l'affectation ExtendedPropertyDefinition aux messages comme celui-ci:Obtenir des valeurs ExtendedPropertyDefinition de SAP dans Outlook Addin

Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition extendedPropertyDefinition = 
          new Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(DefaultExtendedPropertySet.Common, "Archivado", MapiPropertyType.String); 

    msgComplete.SetExtendedProperty(extendedPropertyDefinition, iddoc); 
          msgComplete.Update(ConflictResolutionMode.AlwaysOverwrite); 

De l'autre côté, je développe un Outlook Addin qui doit évaluer sur chaque clic de message, si ce message a ce nom ExtendedPropertyDefinition défini, mais je ne sais pas comment puis-je récupérer la propriété étendue à partir de Outlook Addin en utilisant la classe Outlook.

Ca ne me dérange pas Si je dois utiliser un autre type de propriétés pour être accessible à partir des deux frameworks.

J'ai essayé d'utiliser les propriétés suivantes dans Outlook sans aucune chance;

item.Userproperties; 

item.PropertyAccesor.GetProperty("Archivado"); 

item.ItemProperties; 

Répondre

2

Ok, enfin je l'ai eu. J'ai dû créer le ExtendedPropertyDefinition en utilisant un Guid et le récupérer à partir de perspectives en utilisant le schéma sur la propriété comme ceci:

//Setting the property with Exchange webservice: 

string guid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; 

Guid MY_PROPERTY_SET_GUID = new Guid(guid); 

Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition extendedPropertyDefinition = 
new Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(MY_PROPERTY_SET_GUID, "Archivado", MapiPropertyType.String); 


//Recover the property using Outlook: 


Outlook.MailItem item = (Outlook.MailItem)e.OutlookItem; 

Outlook.UserProperties mailUserProperties = item.UserProperties; 

dynamic property=item.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/string/{Outlook.MailItem item = (Outlook.MailItem)e.OutlookItem; 

      Outlook.UserProperties mailUserProperties = item.UserProperties; 
      dynamic property=item.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/string/{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}/Archivado"); 
Questions connexes