Operación GetEvents
Los clientes de la suscripción de extracción usan la operación GetEvents para solicitar notificaciones desde el servidor de acceso de cliente. La respuesta de la operación GetEvents devuelve una matriz de elementos y eventos que se han producido en un buzón desde la última notificación.
Importante
La operación DeleteUserConfiguration desencadenará un evento de movimiento para el sistema de notificación de eventos. El objeto de configuración de usuario se moverá al contenedor de memoria.
Notas
Los cambios en los elementos de calendario pueden dar lugar a la generación de varios eventos. Estos eventos son el resultado de que los elementos temporales se crean en el buzón, que los elementos de almacenamiento de datos de disponibilidad se cambian como parte de las operaciones normales del calendario, o ambas. Eventos de la clase de elemento "IPM. SchedulePlus.FreeBusy.BinaryData" debe omitirse por los clientes del servicio web. Estos elementos temporales se eliminan después de crearlos; por lo tanto, si se intenta recuperar estos elementos, se devolverá un error que indica que no se encontró el elemento.
Ejemplo de solicitud GetEvents
Descripción
En el ejemplo siguiente se muestra cómo solicitar los eventos y elementos asociados a una suscripción identificada por el identificador de suscripción y la marca de agua.
Código
<?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>
Elementos de solicitud GetEvents
En la solicitud se usan los siguientes elementos:
Ejemplo de respuesta correcta de GetEvents
Descripción
En el ejemplo siguiente de una respuesta se muestra una notificación de la existencia de dos nuevos mensajes de correo desde que se envió la última solicitud de notificación al servidor.
Código
<?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>
Comentarios
Nota:
Los identificadores de elemento y carpeta se han acortado para conservar la legibilidad.
Elementos de respuesta GetEvents
Los siguientes elementos se usan en la respuesta:
Para buscar otras opciones para el mensaje de respuesta de la operación GetEvents , explore la jerarquía de esquema. Comience en el elemento Notification .
Ejemplo de respuesta de error de GetEvents
Descripción
En el ejemplo siguiente se muestra una respuesta de error a una solicitud GetEvents .
Código
<?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>
Comentarios
Al procesar una solicitud GetEvents , el servidor de acceso de cliente realiza los pasos siguientes:
Se confirma que SubscriptionID de la solicitud es una suscripción válida hospedada en el servidor de acceso de cliente. Si no es así, se produce un error en la llamada a GetEvents .
La dirección SMTP del usuario autenticado para la solicitud se compara con la dirección SMTP del usuario que creó la suscripción. Si no coinciden, se produce un error en la solicitud GetEvents .
Se consulta la cola de suscripciones para los eventos que están a la espera de enviarse al cliente. Si la cola no está vacía, los primeros 50 eventos de la cola se extraen de la cola y se codifican en una notificación.
Si no se encuentra ningún evento en la cola, se genera un objeto StatusEvent y se codifica en una respuesta de notificación.
La respuesta de notificación se devuelve al cliente.
Los eventos que se incluyen en la notificación se quitan de la cola de suscripciones y la última marca de agua local del servidor de acceso de cliente de la suscripción se establece en la marca de agua del último evento que se devuelve.
Se restablece el temporizador de tiempo de espera de la suscripción.