Opération GetEvents

L’opération GetEvents est utilisée par les clients d’abonnement par extraction pour demander des notifications du serveur d’accès au client. La réponse de l’opération GetEvents retourne un tableau d’éléments et d’événements qui se sont produits dans une boîte aux lettres depuis la dernière notification.

Importante

L’opération DeleteUserConfiguration déclenche un événement de déplacement pour le système de notification d’événements. L’objet de configuration utilisateur est déplacé vers la benne à ordures.

Remarques

Les modifications apportées aux éléments calendrier peuvent entraîner la génération de plusieurs événements. Ces événements sont le résultat de la création d’éléments temporaires dans la boîte aux lettres, de la modification des éléments de stockage de données de disponibilité dans le cadre des opérations de calendrier normales, ou des deux. Événements pour la classe d’élément « IPM. SchedulePlus.FreeBusy.BinaryData » doit être ignoré par les clients du service Web. Ces éléments temporaires sont supprimés après leur création ; par conséquent, si une tentative de récupération de ces éléments est effectuée, une erreur est retournée indiquant que l’élément est introuvable.

Exemple de requête GetEvents

Description

L’exemple suivant montre comment demander les événements et les éléments associés à un abonnement identifié par l’identificateur et le filigrane de l’abonnement.

Code

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
  <soap:Body>
    <GetEvents xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      <SubscriptionId>f6bc657d-dde1-4f94-952d-143b95d6483d</SubscriptionId>
      <Watermark>AAAAAMAGAAAAAAAAAQ==</Watermark>
    </GetEvents>
  </soap:Body>
</soap:Envelope>

Éléments de requête GetEvents

Les éléments suivants sont utilisés dans la demande :

Exemple de réponse GetEvents réussi

Description

L’exemple suivant de réponse montre une notification de l’existence de deux nouveaux messages électroniques depuis l’envoi de la dernière demande de notification au serveur.

Code

<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
               xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Header>
    <t:ServerVersionInfo MajorVersion="8" MinorVersion="0" MajorBuildNumber="628" MinorBuildNumber="0" 
                         xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <GetEventsResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" 
                       xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" 
                       xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      <m:ResponseMessages>
        <m:GetEventsResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>
          <m:Notification>
            <t:SubscriptionId>f6bc657d-dde1-4f94-952d-143b95d6483d</t:SubscriptionId>
            <t:PreviousWatermark>AAAAAMAGAAAAAAAAAQ==</t:PreviousWatermark>
            <t:MoreEvents>false</t:MoreEvents>
            <t:NewMailEvent>
              <t:Watermark>AAAAAM4GAAAAAAAAAQ==</t:Watermark>
              <t:TimeStamp>2006-08-22T00:36:29Z</t:TimeStamp>
              <t:ItemId Id="AQApAHR" ChangeKey="CQAAAA==" />
              <t:ParentFolderId Id="AQApAH" ChangeKey="AQAAAA==" />
            </t:NewMailEvent>
            <t:NewMailEvent>
              <t:Watermark>AAAAAOQGAAAAAAAAAQ==</t:Watermark>
              <t:TimeStamp>2006-08-22T01:00:50Z</t:TimeStamp>
              <t:ItemId Id="AQApAHRw" ChangeKey="CQAAAA==" />
              <t:ParentFolderId Id="AQApAH" ChangeKey="AQAAAA==" />
            </t:NewMailEvent>
          </m:Notification>
        </m:GetEventsResponseMessage>
      </m:ResponseMessages>
    </GetEventsResponse>
  </soap:Body>
</soap:Envelope>

Comments

Remarque

Les identificateurs d’élément et de dossier ont été raccourcis pour préserver la lisibilité.

Éléments de réponse GetEvents

Les éléments suivants sont utilisés dans la réponse :

Pour trouver d’autres options pour le message de réponse de l’opération GetEvents , explorez la hiérarchie de schéma. Commencez par l’élément Notification .

Exemple de réponse d’erreur GetEvents

Description

L’exemple suivant montre une réponse d’erreur à une requête GetEvents .

Code

<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Header>
    <t:ServerVersionInfo MajorVersion="8" MinorVersion="0" MajorBuildNumber="628" MinorBuildNumber="0" 
                         xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <GetEventsResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" 
                         xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" 
                         xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      <m:ResponseMessages>
        <m:GetEventsResponseMessage ResponseClass="Error">
          <m:MessageText>Access is denied. Only the subscription owner may access the subscription.</m:MessageText>
          <m:ResponseCode>ErrorSubscriptionAccessDenied</m:ResponseCode>
          <m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
        </m:GetEventsResponseMessage>
      </m:ResponseMessages>
    </GetEventsResponse>
  </soap:Body>
</soap:Envelope>

Remarques

Lors du traitement d’une requête GetEvents , le serveur d’accès au client effectue les étapes suivantes :

  1. L’ID d’abonnement de la demande est confirmé comme étant un abonnement valide hébergé sur le serveur d’accès au client. Si ce n’est pas le cas, l’appel GetEvents échoue.

  2. L’adresse SMTP de l’utilisateur authentifié pour la requête est comparée à l’adresse SMTP de l’utilisateur qui a créé l’abonnement. S’ils ne correspondent pas, la requête GetEvents échoue.

  3. La file d’attente de l’abonnement est interrogée pour les événements qui attendent d’être envoyés au client. Si la file d’attente n’est pas vide, les 50 premiers événements de la file d’attente sont extraits de la file d’attente et encodés dans une notification.

  4. Si aucun événement n’est trouvé dans la file d’attente, un StatusEvent est généré et encodé dans une réponse de notification.

  5. La réponse de notification est retournée au client.

  6. Les événements inclus dans la notification sont supprimés de la file d’attente de l’abonnement et le dernier filigrane local du serveur d’accès au client pour l’abonnement est défini sur le filigrane du dernier événement retourné.

  7. Le minuteur de délai d’expiration de l’abonnement est réinitialisé.

Voir aussi

Opération d'abonnement

Opération de résiliation d'abonnement

Utilisation d’abonnements par extraction de données