Compartilhar via


Sobre a máquina de estado de replicação

Aplica-se a: Outlook 2013 | Outlook 2016

Este tópico contém uma visão geral do computador de estado para Microsoft Outlook 2013 e Microsoft Outlook 2010 replicação de dados.

Observação

A API de Replicação deve ser totalmente implementada de acordo com as instruções neste tópico para ser útil ou compatível. A API de Replicação está disponível exclusivamente para replicar alterações do Outlook 2013 ou do Outlook 2010 de e para um servidor.

IOSTX e o State Machine

Um cliente chama IOSTX::SyncBeg, IOSTX::SyncEnd, IOSTX::SyncHdrBeg e IOSTX::SyncHdrEnd em uma sequência para sincronizar pastas e itens do Outlook 2013 ou Outlook 2010 entre uma loja local e um servidor. A sequência real de chamadas depende dos dados que precisam ser replicados (por exemplo, uma hierarquia das pastas outlook 2013 ou Outlook 2010, uma pasta do Outlook 2013 ou Outlook 2010, itens de email, itens de calendário e assim por diante) e a direção da sincronização (seja carregando do repositório local para o servidor ou baixando do servidor para o repositório local). Aqui está uma sequência típica de chamadas:

  1. O cliente chama IOSTX::SyncBeg para iniciar a replicação, especificando um identificador de estado e um ponteiro para um endereço de uma estrutura de dados correspondente.

  2. O Outlook 2013 ou Outlook 2010 aloca a estrutura de dados e inicializa a estrutura de dados com as informações necessárias para o cliente.

  3. O cliente executa a replicação, atualizando a estrutura de dados para transmitir ao repositório local todas as informações necessárias sobre a replicação.

  4. Depois de executar a replicação, o cliente chama IOSTX::SetSyncResult e IOSTX::SyncEnd para notificar o repositório local da conclusão da replicação específica.

Observação

O cliente sempre chama IOSTX::SyncEnd para encerrar uma replicação que o cliente começou para um determinado estado. Dependendo dos dados gerais que o cliente precisa sincronizar, o cliente pode chamar o par de chamadas IOSTX::SyncBeg e IOSTX::SyncEnd mais de uma vez.

Tabela De Estado

Observação

A tabela a seguir lista todos os estados válidos no computador de estado de replicação, juntamente com os identificadores de estado e as estruturas de dados correspondentes. Na coluna Replicada de Dados , o termo "itens" inclui emails, calendário, contato, observação, diário e itens de tarefa. Ao replicar alterações do repositório local para o servidor, use identificadores de estado especificando "UPLOAD" e estruturas de dados com o prefixo "UP" (por exemplo, LR_SYNC_UPLOAD_HIERARCHY e UPHIER ). Ao replicar alterações do servidor para o repositório local, use identificadores de estado especificando "DOWNLOAD" e estruturas de dados com o prefixo "DN" (por exemplo, LR_SYNC_DOWNLOAD_HIERARCHY e DNHIER ).

Estado
Dados replicados
Identificador de Estado
Estrutura de dados
Estado Ocioso
Nenhum
LR_SYNC_IDLE
Nenhum
Estado Sincronizar
Pastas ou itens
LR_SYNC
SINCRONIZAÇÃO
Estado de hierarquia de upload
Pastas
LR_SYNC_UPLOAD_HIERARCHY
UPHIER
Estado da pasta Carregar
Pasta
LR_SYNC_UPLOAD_FOLDER
UPFLD
Sincronizar o estado do conteúdo
Itens
LR_SYNC_CONTENTS
SYNCCONT
Estado da tabela de upload
Itens
LR_SYNC_UPLOAD_TABLE
UPTBL
Carregar o estado da mensagem
Item
LR_SYNC_UPLOAD_MESSAGE
UPMSG
Carregar o estado de leitura status
Itens
LR_SYNC_UPLOAD_MESSAGE_READ
UPREAD
Carregar o estado de exclusão status
Itens
LR_SYNC_UPLOAD_MESSAGE_DEL
UPDEL
Baixar o estado da hierarquia
Pastas
LR_SYNC_DOWNLOAD_HIERARCHY
DNHIER
Baixar o estado da tabela
Itens
LR_SYNC_DOWNLOAD_TABLE
DNTBL
Baixar o estado do cabeçalho de mensagem
Cabeçalho de mensagem
LR_SYNC_DOWNLOAD_HEADER
HDRSYNC

Exemplo: carregar uma hierarquia de pastas

Ao carregar uma hierarquia de pastas, a seguinte sequência de etapas ocorre:

Etapa
Ação
Estado
Estrutura de dados relacionada
1. O cliente inicia o upload de hierarquia com IOSTX::SyncBeg. LR_SYNC_UPLOAD_HIERARCHY
UPHIER
2. O Outlook 2013 ou o Outlook 2010 preenche UPHIER com informações para o cliente. Isso inclui inicializar os parâmetros [out]: o iEnt está definido como 0 e cEnt para o número de pastas na hierarquia que precisa ser carregada. LR_SYNC_UPLOAD_HIERARCHY
UPHIER
3. O cliente faz o upload da hierarquia real. Como exemplo, se cEnt for 10, para cada uma das 10 pastas, o cliente chamará IOSTX::SyncBeg, especificando o identificador de estado apropriado e a estrutura de dados para carregar uma pasta. LR_SYNC_UPLOAD_FOLDER
UPFLD
4. O Outlook 2013 ou o Outlook 2010 preenche o UPFLD inicializando seus parâmetros [out], incluindo o motivo do upload da pasta, o ponteiro para o objeto pasta e a ID de entrada da pasta. LR_SYNC_UPLOAD_FOLDER
UPFLD
5. O cliente carrega a pasta especificada. LR_SYNC_UPLOAD_FOLDER
UPFLD
6. O cliente notifica o repositório local da conclusão do upload da pasta: Após o sucesso, o cliente define o parâmetro [in] ulFlags no UPFLD com UPF_OK e, em seguida, chama IOSTX::SetSyncResult (S_OK) e IOSTX::SyncEnd. Após a falha, o cliente não definiria ulFlags com o sinalizador UPF_OK . Ele chama IOSTX::SetSyncResult, passando o valor HRESULT e IOSTX::SyncEnd. LR_SYNC_UPLOAD_FOLDER
UPFLD
7. Se UPF_OK estiver definido, o Outlook 2013 ou o Outlook 2010 limparão a solicitação interna para carregar a pasta. Em seguida, independentemente do estado de ulFlags, ele limpo qualquer informação de contabilidade interna. Embora ainda haja pastas na hierarquia a serem carregadas (o iEnt ainda é menor que o cEnt), o cliente e o Outlook 2013 ou o Outlook 2010 repetem as etapas 3 a 7. LR_SYNC_UPLOAD_FOLDER
UPFLD
8. O cliente notifica o repositório local da conclusão do upload de hierarquia: após o sucesso, o cliente define o sinalizador [in] no UPHIER com UPH_OK e chama IOSTX::SetSyncResult (S_OK) e IOSTX::SyncEnd. Após a falha, o cliente não definirá o sinalizador de UPH_OK . Ele chama IOSTX::SetSyncResult, passando o valor HRESULT e IOSTX::SyncEnd. LR_SYNC_UPLOAD_HIERARCHY
UPHIER
9. Se UPH_OK estiver definido, o Outlook 2013 ou o Outlook 2010 limparão a solicitação interna para carregar a hierarquia. Em seguida, independentemente do estado de ulFlags, ele limpo qualquer informação de contabilidade interna. LR_SYNC_UPLOAD_HIERARCHY
UPHIER

Confira também

Sobre a API de replicação
Constantes MAPI
SYNCSTATE