Eigenschaften und erweiterte Eigenschaften in EWS in Exchange
Informationen zum Definieren von und Zugreifen auf Eigenschaften von Elementen und Ordnern mit EWS in Exchange.
Ein Exchange-Postfach enthält eine große Anzahl von Elementen, einschließlich E-Mails, Terminen, Besprechungen usw. Diese Elemente bestehen aus Eigenschaften; die Eigenschaften beschreiben die Elemente. Sie können Elementeigenschaften zum Ausführen einer Suche, Synchronisieren von Elementänderungen und Erstellen von benutzerdefinierten Eigenschaftentypenverwenden. Dieser Artikel enthält eine Übersicht über die Eigenschaften und deren Funktionsweise mit Eigenschaften in Ihrer Anwendung.
Exchange-Elementeigenschaften
Elemente und Ordner in Exchange bestehen im Wesentlichen aus Zeilen in Tabellen. Die wichtigste Eigenschaft eines Elements oder Ordners ist der EWS-Bezeichner. Zwar gibt es andere Bezeichner-bezogene Eigenschaften in der Exchange-Datenbank, der EWS-Bezeichner fungiert für EWS jedoch als Primärschlüssel für die Sammlung von Eigenschaften, die ein Element beschreiben. Die EWS-Bezeichnereigenschaft besteht aus zwei Teilen:
Eine ItemId- oder FolderId-Eigenschaft, die das Element identifiziert.
Eine ChangeKey-Eigenschaft, die Statusinformationen dazu enthält, ob Änderungen an einem Element oder Ordner vorgenommen wurden.
Alle Elemente in einem Postfach werden in derselben Exchange-Datenbank gespeichert und verwenden dasselbe Datenbankschema. Elemente sind durch eine Kombination aus ItemClass-Eigenschaft, Eigenschaftsbeschränkungen und Geschäftslogikschichten gekennzeichnet, die deren Verwaltung im Exchange-Speicher beeinflusst. In Tabelle 1 wird dargestellt, wie Eigenschaften über verschiedene Elementtypen hinweg angewendet werden. In diesem Beispiel handelt es sich um E-Mail- und Terminelemente. Beide Elemente verfügen über einen Wert für die Subject-Eigenschaft. Beachten Sie jedoch, dass die IsAllDayEvent-Eigenschaft für das E-Mail-Element und die IsReadReceiptRequested-Eigenschaft für das Terminelement nicht festgelegt sind. Glücklicherweise müssen Sie nicht wissen, welche Eigenschaften für welche Elementklasse anwendbar sind; EWS übernimmt dies.
Tabelle 1. Vergleich von Termin- und E-Mail-Eigenschaften
Elementtyp | Elementklasse | Betreff | IsAllDayEvent | IsReadReceiptRequested |
---|---|---|---|---|
E-Mail |
IPM.Note |
Statusbericht: Projekt X abgeschlossen |
NULL |
true |
Termin |
IPM.Appointment |
Contoso-Unternehmenssitzung |
False |
NULL |
Das EWS-Schema unterstützt viele der Einschränkungen, die von der Exchange-Datenbank und den Geschäftslogikebenen zwischen EWS und der Exchange-Datenbank verwaltet werden. Das EWS-Schema wendet einen definierten Satz von Eigenschaften auf jeden Elementtyp an. Im Folgenden sind die stark typisierten Exchange-Datenbankelemente aufgeführt, die von EWS bereitgestellt werden:
E-Mails
Termine
Kontakte
Verteilerlisten
Besprechungsnachrichten
Besprechungsanfragen
Besprechungsantworten
Besprechungsabsagen
Aufgaben
Bereitstellungselemente
Generische Elemente werden von EWS als E-Mails zurückgegeben. Die EWS Managed API implementiert alle diese Elementtypen.
Hinweis
Antwortobjekte werden nur vom Client an den Server als Antwort auf die von anderen Personen empfangenen Elemente gesendet. Sie sind nicht in der Exchange-Datenbank vorhanden.
Was sind Eigenschaften in EWS?
Das EWS-Schema beschreibt die Daten, die zwischen einem EWS-Client und Exchange gesendet werden. Ein großer Teil des Schemas beschreibt die Element- und Ordnereigenschaften, auf die Sie in der Exchange-Datenbank zugreifen können. Das EWS-Schema beschreibt die XML-Darstellung der Exchange-Datenbankeigenschaften, die in Ihrer Anwendung verfügbar sind. Die tatsächlichen Eigenschaften variieren im Hinblick auf die verfügbaren Eigenschaften, die Form und die Rückgabewerte je nachdem, was Sie tun. Die Body-Eigenschaft z. B. gibt nur die ersten 512 Zeichen in einem FindItem-Vorgang zurück, der GetItem-Vorgang gibt jedoch den vollständigen Text des Elements zurück. Obwohl die meisten Eigenschaften festgelegt und abgerufen werden können, werden einige Eigenschaften nur von Exchange festgelegt. Jede Eigenschaft weist im Schema ein XML-Format auf, das die Eigenschaft so widerspiegelt, wie sie in der Exchange-Datenbank gespeichert ist, oder wie sie anhand der in der Exchange-Datenbank gespeicherten Eigenschaften berechnet wurde. Die Subject-Eigenschaft stellt ein Beispiel für eine Eigenschaft dar, die festgelegt werden kann; die UnreadCount-Eigenschaft eines Ordners stellt ein Beispiel für eine berechnete Eigenschaft dar. Eine Kerngruppe von Eigenschaften haben die Kernelementtypen gemeinsam.
Die folgenden Faktoren bestimmen die festgelegte Eigenschaft, die Ihre Anwendung von Exchange abruft:
Der Vorgang, den die Anwendung aufruft
Das Basisshape der Antwort
Der Elementtyp
Die angegebenen Eigenschaftspfade
Es ist wichtig zu wissen, wie diese verschiedenen Faktoren die Daten beeinflussen, auf die Sie zugreifen können. Wie in dem weiter oben erwähnten Beispiel der Body-Eigenschaft, ist die Verfügbarkeit einiger Informationen von verschiedenen Faktoren abhängig. Wenn Sie mit diesen Faktoren vertraut sind, können Sie durch die Auswahl der richtigen Optionen zum Zugreifen auf die gewünschten Informationen Zeit sparen. Zur Ermittlung der Eigenschaften, auf die zugegriffen werden kann, müssen Sie diese Faktoren testen, um festzustellen, wie Sie auf die von Ihrer Anwendung benötigten Eigenschaften zugreifen müssen. In diesem Abschnitt wird beschrieben, wie sich diese verschiedenen Faktoren darauf auswirken, welche Eigenschaften in EWS-Antworten zurückgegeben werden.
EWS-Antwortshapes
Exchange speichert eine Vielzahl an Informationen über die Elemente. In manchen Fällen werden nicht alle Informationen für Ihre Anwendung benötigt, manchmal wird sogar empfohlen, nicht alle Informationen abzurufen. EWS-Antwortshapes, auch Eigenschaftsshapes genannt, geben an, welche Eigenschaften vom Server zurückgegeben werden. Das Kernelement des Antwortshapes ist das Basisshape. Beim Basisshape handelt es sich um einen standardmäßig voreingestellten Eigenschaftenbehälter für stark typisierte Elemente. Die Entsprechung des Basisshapes in der EWS Managed API ist BasePropertySet. EWS umfasst drei standardmäßige Antwortshapes.
Tabelle 2. Standardmäßige Antwortshapes
Name des standardmäßigen Antwortshapes | Entsprechung in der verwalteten EWS-API | Beschreibung |
---|---|---|
IdOnly |
BasePropertySet.IdOnly-Wert |
Es werden nur der EWS-Bezeichner und der Änderungsschlüssel zurückgegeben. Verwenden Sie, wenn der Client nicht alle vom AllProperties- oder Standardshape zurückgegebenen Eigenschaften verwendet, das IdOnly-Shape, und geben Sie weitere Eigenschaften unter Verwendung der Eigenschaftspfade in der PropertySet-Klasse an. Die meisten Anwendungen verwenden das IdOnly-Antwortshape mit zusätzlichen Eigenschaften. Dies reduziert den Umfang der nicht verwendeter Daten, die von Clients angefordert werden. |
Standard |
– |
Ein Satz von Standardeigenschaften für den Elementtyp. Verwenden Sie dieses Antwort-Shape nur, wenn Ihre Anwendung alle Eigenschaften verwendet. |
AllProperties |
BasePropertySet.FirstClassProperties-Wert |
Eine größere Gruppe von Eigenschaften als das Standardshape. Auch wenn der Name dies andeutet, gibt diese Option nicht alle Eigenschaften eines Elements zurück. Dieser Eigenschaftensatz gibt die Eigenschaften zurück, die am häufigsten von Clientanwendungen verwendeten werden. Wenn Sie weitere Eigenschaften benötigen, können Sie diese durch den entsprechenden Eigenschaftspfad anfordern. Verwendet Ihre Anwendung nicht alle mit diesem Antwortshape zurückgegebenen Eigenschaften, verwenden Sie das IdOnly-Antwortshape mit zusätzlichen Eigenschaften. |
Viele EWS-Vorgänge geben Elemente und die zugehörigen Eigenschaften zurück. Unabhängig vom angegebenen Antwortshape, können unterschiedliche Vorgänge unterschiedliche Eigenschaftensätze zurückgeben. Unterschiedliche Elementtypen geben je nach Vorgang und festgelegtem Antwortshape unterschiedliche Eigenschaften zurück. Die folgenden Vorgänge verwenden Antwortshapes, um die zurückzugebenden Eigenschaften zu identifizieren.
Tabelle 3. Vorgänge, die Antwortshapes verwenden
Eigenschaftshapes stellen eine elementare Methode dar, um die Eigenschaften zu identifizieren, die Ihre Anwendung zurückgeben soll. In manchen Fällen benötigt Ihre Anwendung jedoch einen begrenzten Satz bestimmter Eigenschaften. Zu diesem Zweck können Sie den Eigenschaftspfad verwenden.
Wählen von Eigenschaften anhand des entsprechenden Eigenschaftspfads
Bei einem EWS-Eigenschaftspfad handelt es sich um Metadaten, die zum Identifizieren von Eigenschaften in einer Anforderung oder Antwort verwendet werden.
Tabelle 4. Typen von Eigenschaftspfaden
Typ des Eigenschaftspfads | Schematyp | Implementierung der verwalteten EWS-API | Beschreibung |
---|---|---|---|
FieldUri |
PathToUnindexedFieldType |
Typen, die von ServiceObjectSchema erben. |
Der am häufigsten verwendete Eigenschaftspfad. FieldUri-Eigenschaftspfade werden in einem PropertySet-Objekt in der verwalteten EWS-API angegeben. Die meisten EWS-Eigenschaften können mit dem FieldUri-Eigenschaftspfad angegeben werden. Dies wird durch das UnindexedFieldURIType-Objekt im EWS-Schema beschrieben. Der XML-Code des FieldUri-Eigenschaftspfad sieht wie folgt aus: XML<FieldURI FieldURI="item:Subject"/> Dieser Eigenschaftspfad entspricht dem ItemSchema.Subject in der verwalteten EWS-API. |
IndexedFieldUri |
PathToIndexedFieldType |
Typen, die von ItemSchema erben. |
Identifiziert Wörterbucheigenschaften, die einen Eigenschaftenindex erfordern, um den zurückzugebenden Wert anzugeben. Verwenden Sie diesen Pfad, wenn eine Eigenschaft mehr als einen Wert enthalten kann. Dies wird von der DictionaryURIType-Eigenschaft im EWS-Schema beschrieben. DictionaryURIType-Eigenschaftspfade werden in einem PropertySet-Objekt in der verwalteten EWS-API angegeben. Der XML-Code des IndexedFieldUri-Eigenschaftspfad sieht wie folgt aus: XML<IndexedFieldURI FieldURI="contacts:PhysicalAddress:Street FieldIndex="Home"/> |
ExtendedFieldUri |
PathToExtendedFieldType |
ExtendedPropertyDefinition |
Gibt eine erweiterte Eigenschaftsdefinition an, die benutzerdefinierte oder nicht schematisierte Eigenschaften von Elementen identifiziert. Der XML-Code des ExtendedFieldUri-Eigenschaftspfad sieht wie folgt aus: XML<ExtendedFieldURI> PropertyTag="0x1234" PropertyType="Integer" /> |
ExceptionFieldUri |
ExceptionFieldURI |
ServiceResponse |
Gibt die Eigenschaften an, die einem Fehler in einer EWS-Antwort zugeordnet sind. Dies wird vom ExceptionPropertyURIType-Typ im EWS-Schema beschrieben. Dieser Fehler tritt nur im MessageXml-Element der Fehlerantworten auf, die beim Arbeiten mit Kalenderserienmustern auftreten. |
Verwenden Sie als bewährte Methode beim Anfordern von Eigenschaften das IdOnly-Basisshape (BasePropertySet.IdOnly in der verwalteten EWS-API), und fordern Sie dann nur die Eigenschaften durch Angeben der Eigenschaftspfade an, die Ihre Anwendung benötigt.
Schematisierte Eigenschaften
Die meisten Eigenschaften, die Ihr EWS-Client benötigt, werden durch das EWS-beschrieben. Die primären Ordner- und Elementtypdefinitionen, die die Eigenschaftsdefinitionen enthalten, sind im Schema „types.xsd“ enthalten. Die folgenden Schematypen enthalten die Eigenschaftsdefinitionen für die meisten Objekte, die Sie verwenden können.
Tabelle 5. Schematypen, die Eigenschaftsdefinitionen enthalten
EWS-Schematyp | Typentsprechung in der verwalteten EWS-API | Definiert... |
---|---|---|
ItemType |
Elementklasse |
den Eigenschaftensatz für den Basiselementtyp. Dieser Typ kann von einem Client erstellt werden, wird jedoch nie von Exchange zurückgegeben. Exchange gibt ein MessageType-Objekt für alle generische Objekte zurück. |
MessageType |
EmailMessage-Klasse |
den Eigenschaftensatz für das E-Mail-Objekt und alle generischen Objekte. |
CalendarItemType |
Appointment-Klasse |
den Eigenschaftensatz für den Kalenderelementtyp. Dies umfasst einzelne und wiederkehrende Termine. |
ContactItemType |
Contact-Klasse |
den Eigenschaftensatz für das Kontaktelement. |
DistributionListType |
ContactGroup-Klasse |
den Eigenschaftensatz für die persönliche Verteilerliste. |
MeetingMessageType |
MeetingMessage-Klasse |
den Eigenschaftensatz für den Besprechungsnachrichttyp. |
MeetingRequestMessageType |
MeetingRequest-Klasse |
den Eigenschaftensatz für den Besprechungsanfragentyp. |
MeetingResponseMessageType |
MeetingResponse-Klasse |
den Eigenschaftensatz für den Besprechungsantworttyp. |
MeetingCancellationMessageType |
MeetingCancellation-Klasse |
den Eigenschaftensatz für den Besprechungsabsagentyp. |
TaskType |
Task-Klasse |
den Eigenschaftensatz für den Aufgabentyp. |
PostItemType |
PostItem-Klasse |
den Eigenschaftensatz für den Bereitstellungselementtyp. |
FolderType |
Folder-Klasse |
den Eigenschaftensatz für den Ordnertyp. |
CalendarFolderType |
CalendarFolder-Klasse |
den Eigenschaftensatz für den SearchFolder-Typ. |
ContactsFolderType |
ContactsFolder-Klasse |
den Eigenschaftensatz für den ContactsFolder-Typ. |
SearchFolderType |
SearchFolder-Klasse |
den Eigenschaftensatz für den SearchFolder-Typ. |
TasksFolderType |
TasksFolder-Klasse |
den Eigenschaftensatz für den TaskFolder-Typ. |
UserConfigurationType |
UserConfiguration-Klasse |
den Eigenschaftensatz für den UserConfiguration-Typ. |
Die Eigenschaften im EWS-Schema sind für viele Anwendungen ausreichend. Manche Szenarien können jedoch nicht ausschließlich unter Verwendung dessen, was im Schema beschrieben ist, implementiert werden. Für diese Szenarien können Sie erweiterte Eigenschaften verwenden.
Erweiterte Eigenschaften (auch nicht schematisierte Eigenschaften genannt)
Mit erweiterten Eigenschaften können Sie benutzerdefinierte Eigenschaften erstellen, mit denen Sie auf Elemente und Ordner im Exchange-Speicher zugreifen können, die nicht im EWS-Schema definiert sind. Sie können sie zum Zugreifen auf die Eigenschaften des systemeigenen MAPI-Elements und Ordnereigenschaften in der Exchange-Datenbank verwenden. Mit erweiterten Eigenschaften ist der Zugriff auf alle schematisierten Eigenschaften möglich, da diese schematisierten Eigenschaften nichts Anderes als MAPI-Eigenschaften in der Exchange-Datenbank sind.
Der PathToExtendedFieldType-Schematyp im types.xsd-Schema definiert den XML-Code, der eine erweiterte Eigenschaft darstellt. Dieser Schematyp definiert das ExtendedFieldURI-Element in XML-Instanzen; in anderen Worten, er definiert den XML-Code, der zwischen dem Dienst und dem Client gesendet wird. Der ExtendedPropertyType-Schematyp definiert das ExtendedFieldURI-Element und den Wert oder Array von Werten, den eine erweiterte Eigenschaft enthält. Die folgende Tabelle zeigt die ungefähre Zuordnung des XML-Codes der erweiterten Eigenschaften und die zugehörige Implementierung in Elementen in der EWS Managed API.
Tabelle 6. Implementierung des XML-Codes der erweiterten Eigenschaften in der EWS Managed API
Implementierung der verwalteten EWS-API | Inhalt | Zuordnung |
---|---|---|
Item.ExtendedProperties-Eigenschaft |
Eine Sammlung erweiterter Eigenschaften eines Elements. |
Wird einer oder mehreren Instanzen von erweiterten Eigenschaften eines Elements zugeordnet. |
ExtendedProperty-Eigenschaft |
Die Definition und Werte der erweiterten Eigenschaft. |
Wird dem ExtendedPropertyType-Schematyp zugeordnet. |
ExtendedPropertyDefinition-Eigenschaft |
Die Definition einer erweiterten Eigenschaft. |
Wird dem PathToExtendedFieldType-Schematyp zugeordnet. |
Weitere Informationen zum Verwenden erweiterter Eigenschaften in Ihrer Anwendung finden Sie in den folgenden Codebeispielen:
Exchange 2013: Programmgesteuertes Bereitstellen von benutzerdefinierten X-Headern
Exchange 2013: Zugreifen auf eine Eigenschaft anhand des zugehörigen Eigenschaftentags
Exchange 2013: Zugreifen auf eine benannte Eigenschaft anhand des zugehörigen Bezeichners
Exchange 2013: Zugreifen auf eine benannte Eigenschaft anhand des zugehörigen Namens
Exchange 2013:Zugreifen auf eine Eigenschaft anhand der GUID und des Namens des Eigenschaftensatzes
Exchange 2013:Programmgesteuertes Erstellen von benutzerdefinierten erweiterten Eigenschaften