Sincronización de buzones de correo y EWS en ExchangeMailbox synchronization and EWS in Exchange

Descubra cómo funciona la sincronización de buzones de correo al usar EWS para tener acceso a Exchange.Find out how mailbox synchronization works when you use EWS to access Exchange.

EWS en Exchange usa dos tipos de sincronización para recuperar el contenido de los buzones y los cambios en el contenido del buzón:EWS in Exchange uses two types of synchronization to retrieve mailbox content and changes to mailbox content:

  • Sincronización de carpetasFolder synchronization

  • Sincronización de elementosItem synchronization

En este artículo, obtendrá información sobre ambos tipos de sincronización, cómo funciona la sincronización, los patrones de diseño de sincronización y los procedimientos recomendados de sincronización.In this article, you'll learn about both types of synchronization, how synchronization works, synchronization design patterns, and synchronization best practices.

Sincronización de carpetas y elementosFolder and item synchronization

La sincronización de carpetas sincroniza una estructura de carpetas o una jerarquía de carpetas.Folder synchronization syncs a folder structure, or folder hierarchy. La sincronización de elementos sincroniza los elementos dentro de una carpeta.Item synchronization syncs the items within a folder. Al sincronizar los elementos, tiene que sincronizar cada carpeta en el buzón de forma independiente.When you synchronize items, you have to sync each folder in the mailbox independently. Puede usar EWS o la API administrada de EWS en su aplicación para implementar la sincronización de carpetas y elementos.You can use EWS or the EWS Managed API in your application to implement both folder and item synchronization.

Tabla 1. Operaciones de EWS y métodos de API administrada de EWS para sincronizar carpetas y elementosTable 1. EWS operations and EWS Managed API methods for syncing folders and items

Operación de EWSEWS operation Método de la API administrada de EWSEWS Managed API method
SyncFolderHierarchySyncFolderHierarchy
Método ExchangeService. SyncFolderHierarchyExchangeService.SyncFolderHierarchy method
SyncFolderItemsSyncFolderItems
Método ExchangeService. SyncFolderItemsExchangeService.SyncFolderItems method

El ámbito de la sincronización que se realiza difiere en función de si es una sincronización inicial o en curso, de la siguiente manera:The scope of the synchronization that occurs differs depending on whether it is an initial or an ongoing sync, as follows:

  • Una sincronización inicial sincroniza todas las carpetas o elementos del servidor con el cliente.An initial synchronization syncs all folders or items on the server to the client. Después de la sincronización inicial, el cliente tiene un estado de sincronización que almacena para futuras sincronizaciones.After the initial synchronization, the client has a sync state that it stores for future synchronizations. El estado de sincronización representa todos los cambios en el servidor que el servidor comunicó al cliente.The sync state represents all the changes on the server that the server communicated to the client.

  • Las sincronizaciones continuas sincronizan los elementos o carpetas que se han agregado, eliminado o cambiado desde la sincronización anterior.Ongoing synchronizations sync any items or folders that have been added, deleted, or changed since the previous synchronization. El servidor usa el estado de sincronización para calcular los cambios que se van a notificar al cliente durante cada uno de los bucles de sincronización en curso.The server uses the sync state to calculate the changes to report to the client during each of the ongoing synchronization loops.

Cada operación o método de sincronización devuelve una lista de cambios, no la carpeta o el mensaje real que ha cambiado.Each synchronization method or operation returns a list of changes, not the actual folder or message that changed. Los cambios en los elementos y las carpetas se notifican por medio de los siguientes tipos de cambio:Changes to items and folders are reported by means of the following change types:

  • Crear: indica que se debe crear un nuevo elemento o una carpeta en el cliente.Create — Indicates that a new item or folder should be created on the client.

  • Actualizar: indica que se debe cambiar un elemento o una carpeta en el cliente.Update — Indicates that an item or folder should be changed on the client.

  • Eliminar: indica que un elemento o carpeta debe eliminarse en el cliente.Delete — Indicates that an item or folder should be deleted on the client.

  • ReadStateChange para EWS o ReadFlagChange para la API administrada de EWS: indica que el estado de lectura del elemento ha cambiado, ya sea de no leído a leído o de lectura a no leído.ReadStateChange for EWS or ReadFlagChange for the EWS Managed API — Indicates that that the read state of the item has changed, either from unread to read, or read to unread.

En Exchange Online, Exchange online como parte de Office 365 y las versiones de Exchange que comienzan con Exchange 2010 SP2, los elementos y las carpetas se devuelven en orden del más reciente al más antiguo.In Exchange Online, Exchange Online as part of Office 365, and versions of Exchange starting with Exchange 2010 SP2, items and folders are returned in order from newest to oldest. En versiones anteriores de Exchange, los elementos y las carpetas se devuelven de más antiguo a más reciente.In previous versions of Exchange, items and folders are returned from oldest to newest.

¿Cómo funciona la sincronización de EWS?How does EWS synchronization work?

En Resumen, si está sincronizando un buzón por primera vez, use el proceso como se muestra en la figura 1.In a nutshell, if you're synchronizing a mailbox for the first time, use the process as shown in Figure 1. Aunque puede usar otros patrones de diseño de sincronización, recomendamos este enfoque para las aplicaciones escalables.Although you can use other synchronization design patterns, we recommend this approach for scalable applications.

Figura 1. Modelo de diseño de sincronización inicialFigure 1. Initial synchronization design pattern

Ilustración que muestra el patrón de diseño de la sincronización inicial. El cliente llama a SyncFolderHierarchy y Load o GetItem para obtener las carpetas y después, llama a SyncFolderItems y LoadPropertiesForItems o GetItem para obtener los elementos de cada carpeta.

Si está usando un estado de sincronización existente en el cliente para sincronizar un buzón de correo, le recomendamos que implemente el patrón de diseño como se muestra en la figura 2.If you're using an existing sync state on the client to synchronize a mailbox, we recommend that you implement the design pattern as shown in Figure 2.

Figura 2. Modelo de diseño de sincronización continuaFigure 2. Ongoing synchronization design pattern

Ilustración que muestra el patrón de diseño de la sincronización continua. Un cliente recibe una notificación y llama a SyncFolderHierarchy o SyncFolderItems, obtiene las propiedades y después, actualiza el cliente o simplemente actualiza la marca de lectura en el cliente.

Patrones de diseño de sincronizaciónSynchronization design patterns

Puede usar uno de los dos patrones de diseño de sincronización en su aplicación para mantener sus buzones actualizados: sincronización basada en notificaciones o el método de sincronización.You can use one of two synchronization design patterns in your application to keep your mailboxes up to date: notification-based synchronization, or the synchronization-only approach.

La sincronización basada en notificaciones, tal como se muestra en la figura 2, se basa en notificaciones para avisar al cliente de que realice una llamada a los métodos SyncFolderItems o SyncFolderHierarchy de la API administrada de EWS o a las operaciones SyncFolderHierarchy o SyncFolderItems de EWS.Notification-based synchronization, as illustrated in Figure 2, relies on notifications to alert the client to make a call to the EWS Managed API SyncFolderItems or SyncFolderHierarchy methods, or the EWS SyncFolderHierarchy or SyncFolderItems operations. Este tipo de sincronización se suele recomendar para aplicaciones escalables, pero es posible que no sea el mejor enfoque para todos los usuarios.This type of synchronization is generally recommended for scalable applications, but it might not be the best approach for everyone. La sincronización basada en notificaciones tiene la siguiente ventaja:Notification-based synchronization has the following advantage:

  • Las notificaciones están optimizadas para reducir las llamadas a la base de datos de Exchange back-end.Notifications are optimized to reduce calls to the backend Exchange database. Las colas de eventos y las suscripciones se administran mediante el servidor de buzones (o el servidor de acceso de cliente de Exchange 2010 y Exchange 2007); sin embargo, la administración de los eventos y las suscripciones utiliza menos recursos que la alternativa, lo que hace llamadas de sincronización más frecuentes a la base de datos de Exchange.Event queues and subscriptions are managed by the mailbox server (or the Client Access server in Exchange 2010 and Exchange 2007); however, the management of the events and subscriptions uses fewer resources than the alternative, which is more frequent synchronization calls to the Exchange database. Además, Exchange tiene directivas de limitación específicas para notificaciones y suscripciones, para proteger el consumo de recursos.In addition, Exchange has specific throttling policies for notifications and subscriptions, to safeguard consumption of resources.

Sin embargo, también hay algunas desventajas en el uso de la sincronización basada en notificaciones:However, there are also some drawbacks to using notification-based synchronization:

  • Las notificaciones tienen ruido porque la mayoría de los escenarios implican varias notificaciones de un propósito del usuario.Notifications are noisy because most scenarios involve multiple notifications for one user intent. Esto es especialmente cierto en la carpeta calendario.This is especially true of the Calendar folder. Por ejemplo, cuando se recibe una sola convocatoria de reunión, se crean varias notificaciones de elementos y carpetas, incluida una notificación para crear el elemento y otra para modificarlo.For example, when a single meeting request is received, multiple item and folder notifications are created, including a notification to create the item and another to modify the item. Una forma de mitigar este inconveniente es crear un retraso de unos segundos en la llamada Load, LoadPropertiesForItems, GetItemo GetFolder .One way to mitigate this drawback is to build a delay of a few seconds into your Load, LoadPropertiesForItems, GetItem, or GetFolder call. En el caso de una convocatoria de reunión, si ha realizado llamadas a la operación GetItem inmediatamente, es posible que tenga una llamada para crear el elemento y otra para modificar el elemento.In the case of a meeting request, if you made calls to the GetItem operation immediately, you might have one call to create the item and another to modify the item. En su lugar, al retrasar la llamada, puede llamar a la operación GetItem una vez y obtener los cambios que abarcan la creación y la modificación del elemento al mismo tiempo.Instead, by delaying the call, you can call the GetItem operation once and get the changes that encompass the creation and the modification of the item at the same time.

  • Las notificaciones se ponen en cola en el servidor de buzones de correo y las suscripciones se guardan en el servidor de buzones.Notifications are queued on the mailbox server and subscriptions are saved on the mailbox server. Si el servidor de buzones de correo que administra la suscripción no está disponible, perderá las notificaciones nuevas, el buzón no se sincronizará y tendrá que volver a suscribirse a las notificaciones.If the mailbox server that manages the subscription is unavailable, you lose any new notifications, your mailbox won't synchronize, and you'll have to resubscribe to the notifications.

  • Deberá planear las estrategias de mitigación en el caso de que se produzca un error en las notificaciones.You'll need to plan for mitigation strategies in the event that notifications fail. De esta forma, el segundo enfoque, el patrón de diseño de solo sincronización, es más resistente que la sincronización basada en notificaciones, ya que solo requiere que el cliente mantenga el estado de sincronización; no hay problemas con la afinidad con el servidor de buzones de correo que administra la suscripción.In this way, the second approach, the synchronization-only design pattern, is more resilient than notification-based synchronization, because it only requires that the client maintain the sync state — there are no issues with affinity to the mailbox server managing the subscription.

Si se implementa como se recomienda, el patrón de diseño de la suscripción basada en notificaciones se basa en:If implemented as recommended, the notification-based subscription design pattern relies on:

  • Notificaciones para determinar Cuándo se modificaron los datos.Notifications to determine when the data changed.

  • Los métodos SyncFolderHierarchy o SYNCFOLDERITEMS de la API administrada de EWS, o las operaciones SyncFolderHierarchy o SyncFolderItems de EWS para determinar lo que ha cambiado, optimizando el número de eventos de sincronización devueltos.The EWS Managed API SyncFolderHierarchy or SyncFolderItems methods, or the EWS SyncFolderHierarchy or SyncFolderItems operations to determine what changed, optimizing the number of sync events returned. ¿Se ha creado, actualizado o eliminado un nuevo elemento?Was a new item created, updated, or deleted? Esto es todo lo que necesita saber de estos métodos, no confíe en ellos para la lista de propiedades de los cambios.That's all you need to know from these methods, don't rely on them for the property list of changes. (No haga una llamada a GetItem o LoadPropertiesForItems en todos los elementos o carpetas devueltos).(Don't do a GetItem or LoadPropertiesForItems call on all items or folders returned).

  • Usar los métodos Load o LOADPROPERTIESFORITEMS en la API administrada de EWS, o la operación de GetItem de EWS para determinar Cómo los datos cambiaron y recuperar propiedades del servidor según sea necesario, organizando las solicitudes por lotes en función de la cantidad de datos que se devolverán.Using the Load or LoadPropertiesForItems methods in the EWS Managed API, or the EWS GetItem operation to determine how the data changed and to retrieve properties from the server as needed, organizing batched requests based on the amount of data that will be returned. Esto va seguido de una comparación de las propiedades en el cliente y las que se devuelven desde el servidor, y en última instancia, la creación, eliminación o modificación del elemento o carpeta en el cliente.This is followed by a comparison of the properties on the client and those just returned from the server, and ultimately the creation, deletion, or modification of the item or folder on the client.

El método de sincronización solo depende completamente de los métodos de la API administrada de EWS SyncFolderItems y SyncFolderHierarchy , o de las operaciones de EWS SyncFolderHierarchy o SyncFolderItems , a las que puede llamar de forma continua o como un evento con hora.The synchronization-only approach relies entirely on the SyncFolderItems and SyncFolderHierarchy EWS Managed API methods, or the SyncFolderHierarchy or SyncFolderItems EWS operations, which you can either call continuously, or as a timed event. Esta opción también tiene ventajas y desventajas.There are pros and cons to this option as well. El método de sincronización es más resistente porque el estado de sincronización se almacena en el cliente en el nivel de buzón y una relación única entre el estado de sincronización y cualquier servidor de buzones de correo que mantiene la suscripción de notificación no es necesaria.The synchronization-only approach is more resilient because the sync state is stored on the client at the mailbox level and a unique relationship between the sync state and any the mailbox server that maintains the notification subscription is not required. El método de sincronización puede sobrevivir a una conmutación por error de buzón debido a su independencia del servidor de buzones de correo.The synchronization approach can survive a mailbox failover because of its independence from the mailbox server. Sin embargo, el enfoque de sincronización aumenta la latencia del usuario porque los elementos se sincronizan una vez que se realiza un período de tiempo o de forma intermitente (no en tiempo real al recibir los elementos).However, the synchronization approach increases latency for the user because items are synchronized on a timed or intermittent basis — not in real time when items arrive. Este enfoque también es más costoso, porque realiza llamadas a la base de datos de Exchange cuando es posible que no se hayan producido cambios.This approach is also more costly, because you're making calls to the Exchange database when it's possible that no changes have occurred.

Procedimientos recomendados de sincronizaciónSynchronization best practices

Para las aplicaciones altamente escalables, le recomendamos que aplique los siguientes procedimientos recomendados para sincronizar los buzones de la aplicación:For highly scalable applications, we recommend that you apply the following best practices to synchronize mailboxes in your application:

  • Al llamar al método SyncFolderItems o SYNCFOLDERHIERARCHY de la API administrada de EWS, use el valor IdOnly para el parámetro PropertySet , o cuando use las operaciones SyncFolderHierarchy o SyncFolderItems de EWS, use el valor IdOnly para el valor BaseShape para reducir las llamadas a la base de datos de Exchange.When calling the EWS Managed API SyncFolderItems or SyncFolderHierarchy method use the IdOnly value for the propertySet parameter, or when using the EWS SyncFolderHierarchy or SyncFolderItems operations use the IdOnly value for the BaseShape value to reduce calls to the Exchange database. Cuanto más propiedades solicite en el conjunto de propiedades de la llamada SyncFolderItems o SyncFolderHierarchy , se crearán más llamadas de back-end.The more properties you request in the property set of the SyncFolderItems or SyncFolderHierarchy call, the more backend calls are created. Se realiza una nueva llamada RPC para cada valor de propiedad solicitado, mientras que solo se realiza una llamada RPC para recuperar todos los ItemIds de la solicitud, independientemente del número de resultados que se van a notificar.A new RPC call is made for every property value requested, whereas only one RPC call is made to retrieve all the ItemIds for a request - no matter the number of results to report. Por lo tanto, una solicitud de IdOnly da como resultado una llamada de base de datos, mientras que una solicitud de contenedor de propiedades para el asunto y el remitente da como resultado tres llamadas a la base de datos: una para el asunto, otra para el remitentey otra para Itemid.So an IdOnly request results in one database call, whereas a property bag request for the subject and sender results in three database calls: one for the Subject, one for the Sender, and one for the ItemId.

  • No llame a los métodos LoadPropertiesForItems Load o LoadPropertiesForItems de la API administrada de EWS, ni a las operaciones GetItem o GetFolder de EWS, en cada elemento de una respuesta de sincronización.Don't call the EWS Managed API Load or LoadPropertiesForItems methods, or the EWS GetItem or GetFolder operations, on every item in a synchronization response. En su lugar, analice los resultados; Busque cambios que no requieran que se recuperen todas las propiedades, como los cambios de estado de lectura.Instead, parse the results; look for changes that don't require all the properties to be retrieved, like read state changes. Si una respuesta incluye un cambio de estado de lectura, simplemente actualice la marca en el cliente y ya ha terminado; no es necesario obtener todas las propiedades del elemento.If a response includes a read state change, just update the flag on the client and you're done; no need to get all the item properties. Y asegúrese de no duplicar el esfuerzo realizando cambios que provienen del mismo cliente.And make sure that you don't duplicate effort by making changes that originated from the same client. Por ejemplo, si la respuesta de sincronización incluye la eliminación de un elemento y la eliminación se produjo en el cliente local, no es necesario volver a eliminar el mensaje ni obtener todas las propiedades de ese elemento.For example, if the synchronization response includes the deletion of an item, and the deletion happened on the local client, you don't need to delete the message again or get all the properties for that item.

  • Para evitar obtener un límite, haga lo siguiente:Avoid getting throttled, by doing the following:

    • Cuando llame al método LoadPropertiesForItems de la API administrada de EWS o a la operación de GetItem de EWS para obtener los elementos de un lote, no se deben procesar demasiados elementos en la solicitud; de lo contrario, puede obtener una limitación.When you do call the EWS Managed API LoadPropertiesForItems method or the EWS GetItem operation to get the items in a batch, do not batch too many items in your request; otherwise, you might get throttled. Se recomienda incluir 10 elementos por lote.We recommend that you include 10 items per batch.

    • No realice demasiadas solicitudes en un momento muy corto.Don't make too many requests in too short a time. Esto también provocará una limitación y aumentará el tiempo de respuesta, en lugar de acortarlo.This will also cause throttling, and increase the response time, rather than shorten it.

    • Si está procesando elementos por lotes, lote todos los elementos con los mismos valores para los atributos ID y changekey del elemento FolderId .If you are batching items, batch all items with the same values for the Id and ChangeKey attributes of the FolderId element.

    • Si obtiene limitaciones, detenga el envío de solicitudes.If you do get throttled, stop sending requests. Las solicitudes que se reenvíen prolongarán el esfuerzo de recuperación.Resending requests will prolong the recovery effort. En su lugar, espere a que expire el tiempo de espera y, a continuación, intente enviar de nuevo las solicitudes de sincronización.Instead, wait for the back off time to expire, and then try sending your sync requests again.

  • Según el tipo de evento de notificación que se haya recibido:Depending on the type of notification event received:

    • Para los eventos de NewMail o Modified , llame al método SyncFolderItems de la API administrada de EWS o a la operación de SyncFolderItems de EWS porque las notificaciones no proporcionan un changekeyy las notificaciones no llaman a los cambios de estado de lectura.For NewMail or Modified events, call the EWS Managed API SyncFolderItems method or the EWS SyncFolderItems operation because notifications do not provide a ChangeKey, and notifications do not call out read state changes.

    • Para los eventos eliminados , si la suscripción de notificación estaba activa antes de la sincronización anterior, elimine el evento localmente.For Deleted events, if the notification subscription was active before the previous sync, just delete the event locally. No es necesario llamar al método SyncFolderItems de la API administrada de EWS o a la operación SyncFolderItems de EWS inmediatamente después de la eliminación.You do not need to call the EWS Managed API SyncFolderItems method or the EWS SyncFolderItems operation immediately after the deletion.

    • Si un evento modificado fue causado por un cambio de estado de lectura, no llame al método LOADPROPERTIESFORITEMS de la API administrada de EWS o a la operación GetItem de EWS; solo tiene que cambiar la marca en el elemento.If a Modified event was caused by a read state change, do not call the EWS Managed API LoadPropertiesForItems method or the EWS GetItem operation , just change the flag on the item.

  • Al sincronizar datos de calendario, realice lo siguiente:When synchronizing calendar data, proceed as follows:

    • Use un método similar a la sincronización basada en notificaciones.Use an approach similar to notification-based synchronization. Dado que SyncFolderItem no incluye ninguna lógica de calendario, use el método FINDAPPOINTMENTS de la API administrada EWS o la operación de FindItem de EWS con el elemento CalendarView para ver las citas entre dos fechas y, a continuación, llame al método LoadPropertiesForItems de la API administrada EWS o a la operación de GetItem de EWS para recuperar las propiedades de elemento del elemento de calendario.Because SyncFolderItem does not include any calendaring logic, use the EWS Managed API FindAppointments method, or the EWS FindItem operation with the CalendarView element to view appointments between two dates, and then call the EWS Managed API LoadPropertiesForItems method, or the EWS GetItem operation to retrieve the item properties for the calendar item.

    • No sondee con el método FindAppointments de la API administrada de EWS ni la operación FindItem de EWS con un elemento CalendarView .Do not poll using the EWS Managed API FindAppointments method, or the EWS FindItem operation with a CalendarView element.

  • Al sincronizar carpetas de búsqueda:When synchronizing search folders:

    • Use un método similar a la sincronización basada en notificaciones.Use an approach similar to notification-based synchronization.

    • Usar notificaciones para determinar cuándo cambian los datos.Use notifications to determine when data changes.

    • Como no puede usar SyncFolderItem en una carpeta de búsqueda, use un método FINDITEMS de la API administrada de EWS ordenado y paginado, o una operación de FindItem de EWS con el conjunto de elementos FractionalPageItemView y SortOrder , para determinar qué ha cambiado.Because you can't use SyncFolderItem in a search folder, use a sorted and paged EWS Managed API FindItems method, or EWS FindItem operation with the FractionalPageItemView and SortOrder element set, to determine what changed.

    • Use el método LoadPropertiesForItems de la API administrada de EWS o la operación de GetItem de EWS para recuperar datos.Use the EWS Managed API LoadPropertiesForItems method or the EWS GetItem operation to retrieve data.

Sincronización filtradaFiltered synchronization

El método SyncFolderItems de la API administrada de EWS y la operación SyncFolderItems de EWS permiten omitir elementos específicos en función de su ItemIds, estableciendo el parámetro ignoreItemIds en la API administrada de EWS o en el elemento Ignore de EWS.The EWS Managed API SyncFolderItems method and the EWS SyncFolderItems operation enable you to ignore specific items, based on their ItemIds, by setting the ignoreItemIds parameter in the EWS Managed API or the Ignore element in EWS. Esto es ideal cuando, por ejemplo, los individuos comienzan a responder a todos a un mensaje de correo electrónico que se envía a todos los usuarios de la compañía.This is ideal when, for example, individuals begin to reply all to an email message sent to everyone in the company.

Puede que se pregunte si se filtran las notificaciones (y, por lo tanto, solo la sincronización) si cambian las propiedades específicas.You might wonder, can I filter my notifications (and therefore only trigger synchronization) if specific properties change? Aunque parece razonable, porque las suscripciones de notificación se basan en el tipo de cambio (crear, actualizar, eliminar) y no en la propiedad que se está actualizando, no se pueden filtrar las notificaciones de esta manera.Although that does seem reasonable, because notification subscriptions are based on the type of change (create, update, delete), and not the property being updated, you cannot filter notifications in this way. En su lugar, puede hacer lo siguiente:Instead, you can do the following:

  • Use el modelo de diseño de la suscripción basada en notificaciones.Use the notification-based subscription design pattern.

  • Llame repetidamente a los métodos SyncFolderItems y SYNCFOLDERHIERARCHY de la API administrada de EWS con el parámetro propertySet establecido en IdOnly para que su estado de sincronización sea actual.Call the EWS Managed API SyncFolderItems and SyncFolderHierarchy methods repeatedly with the propertySet parameter set to IdOnly to make your sync state current. O bien, si usa EWS, llame repetidamente a las operaciones SyncFolderHierarchy y SyncFolderItems con el valor BaseShape establecido en IdOnly.Or if using EWS, call the SyncFolderHierarchy and SyncFolderItems operations repeatedly with the BaseShape value set to IdOnly.

  • Descartar la respuesta (no la analiza ni realiza ninguna comparación de propiedades).Discard the response (don't parse it or do any property comparisons).

  • Use el método FindItems de la API administrada de EWS o la operación FindItem de EWS y Sort and Page para rellenar previamente los elementos en el ámbito filtrado que le interesa.Use the EWS Managed API FindItems method or the EWS FindItem operation and sort and page to prepopulate the items in the filtered scope that you care about.

  • Use el estado de sincronización para seguir llamando al método SyncFolderItems de la API administrada de EWS o a la operación de SyncFolderItems de EWS, pero solo supervise los cambios en el conjunto de elementos filtrados.Use your synchronization state to continue to call the EWS Managed API SyncFolderItems method or the EWS SyncFolderItems operation, but only monitor the changes in the filtered item set. Si se crean nuevos elementos, tendrá que ver si esos nuevos elementos están dentro del ámbito filtrado.If new items are created, you'll have to see if those new items are within your filtered scope.

En esta secciónIn this section

Vea tambiénSee also