Freigeben über


Informationen zu Tabellenbenachrichtigungen

Gilt für: Outlook 2013 | Outlook 2016

Clients verwenden häufig Tabellenbenachrichtigungen, um änderungen an Objekten zu erfahren, anstatt sich zu registrieren, um Benachrichtigungen direkt von den Objekten zu empfangen. Typische Änderungen, die dazu führen, dass Benachrichtigungen gesendet werden, sind das Hinzufügen, Löschen oder Ändern einer Zeile und alle kritischen Fehler. Wenn Benachrichtigungen eingehen, können Clients bestimmen, ob ein weiterer Aufruf zum Erneutladen der Tabelle ausgeführt werden soll.

Da Tabellenbenachrichtigungen asynchron sind, gibt es einige Probleme, die die Behandlung von Benachrichtigungen weniger einfach machen können:

  • Die in der TABLE_NOTIFICATION-Struktur übergebenen Daten stellen möglicherweise nicht den aktuellen Zustand der Tabelle dar. Beispielsweise kann ein Client eine Änderung an einer Nachricht vornehmen und dann beschließen, sie zu löschen. Der Nachrichtenspeicheranbieter, der die Inhaltstabelle implementiert, in der die Nachricht enthalten ist, sendet zwei Benachrichtigungen: ein TABLE_ROW_MODIFIED-Ereignis gefolgt von einem TABLE_ROW_DELETED-Ereignis. Je nachdem, wie der Nachrichtenspeicheranbieter Benachrichtigungen wiederholt, erhält der Client möglicherweise die TABLE_ROW_MODIFIED Benachrichtigung nach dem Löschen der Zeile.

  • Der in einer Benachrichtigung enthaltene Spaltensatz kann sich vom aktuellen Spaltensatz der Tabelle unterscheiden. MAPI erfordert, dass der Benachrichtigungsspaltensatz mit dem Spaltensatz übereinstimmt, der zum Zeitpunkt der Benachrichtigungsgenerierung wirksam war. Da es für einen Client möglich ist, IMAPITable::SetColumns aufzurufen, um den Spaltensatz jederzeit – auch nach einer Benachrichtigung – zu ändern, werden die beiden Spaltensätze möglicherweise nicht synchronisiert.

  • Tabellenbenachrichtigungen werden nur für Zeilen gesendet, die Teil der Ansicht sind. Das heißt, wenn eine Zeile aufgrund einer Einschränkung oder weil sich die Tabelle in einem reduzierten Zustand befindet, wird keine Benachrichtigung gesendet, wenn sich diese Zeile ändert. Außerdem werden keine Benachrichtigungen gesendet, um einen Client über eine Änderung des Kategoriezustands zu informieren.

Clients sollten beachten, dass nicht alle Tabellen die TABLE_SORT_DONE-Benachrichtigung unterstützen, und sollten darauf vorbereitet sein, diese Bedingung wie folgt zu behandeln:

  1. Erzwingen der synchronen Sortierung.

  2. Die Zeilen der Tabelle werden erneut geladen, wenn IMAPITable::SortTable zurückgegeben wird .

Siehe auch

MAPI-Tabellen