Operação ConvertId

Encontre informações sobre a operação ConvertId EWS.

A operação ConvertId Exchange Web Services (EWS) converte identificadores de item e pasta entre formatos aceitos por Exchange Online, Exchange Online como parte de Office 365 e versões locais do Exchange começando com Exchange Server 2013.

Usando a operação ConvertId

Você pode converter os seguintes identificadores usando a operação ConvertId :

  • O formato do identificador para EWS na versão inicial do Exchange 2007. Isso é representado pelo valor de EwsLegacyId enumeração na enumeração IdFormat .

  • O formato de identificador para EWS no Exchange 2007 SP1 ou Exchange 2010. Isso é representado pelo valor de EwsId enumeração no IdFormat.

  • O identificador MAPI, como na propriedade PR_ENTRYID . Isso é representado pelo valor de EntryId enumeração na enumeração IdFormat .

  • O identificador de eventos do calendário de disponibilidade. Esta é uma representação hexadecimal codificada da propriedade PR_ENTRYID . Isso é representado pelo valor de HexEntryId enumeração no IdFormat.

  • O identificador do exchange store. Isso é representado pelo valor de StoreId enumeração no IdFormat. A operação ConvertId não converte identificadores de pastas públicas do identificador EWS no identificador do repositório.

  • O identificador Outlook Web App. Isso é representado pelo valor de OwaId enumeração no IdFormat

    Não há suporte para a passagem de URLs criadas desse identificador para Outlook Web App. O identificador Outlook Web App é aplicável ao Exchange 2007 e ao Exchange 2010. Outlook Web App para Exchange Online e versões do Exchange começando com Exchange Server 2013 usa identificadores EWS.

A operação ConvertId não funciona conforme o esperado ao converter identificadores de pastas públicas do identificador EWS no identificador do repositório no Exchange Online e no Exchange 2013. Você pode atualizar manualmente o identificador que é retornado como uma solução alternativa. Para atualizar manualmente o identificador:

  1. No código do aplicativo, determine se o item/pasta de destino está em uma pasta pública.

  2. Decodificar a cadeia de caracteres do identificador codificado base64.

  3. Verifique se o byte de tipo (21º byte) tem um valor de 7. Um valor de 7 indica que o identificador está no formato incorreto.

  4. Ignore os quatro primeiros bytes. Eles devem ser definidos como zero.

  5. Atualize os próximos 16 bytes com o seguinte GUID: 1A447390AAA6611CD9BC800AAA002FC45A

  6. Atualize o próximo byte (byte de tipo) com um valor de 9.

  7. Altere o identificador para uma cadeia de caracteres codificada por Base64.

Observação

A operação ConvertId valida que um determinado endereço SMTP tem um formato válido. A operação não determina se um endereço SMTP representa uma caixa de correio válida.

A operação ConvertId pode usar os cabeçalhos SOAP listados na tabela a seguir.

Tabela 1. Cabeçalhos SOAP da operação ConvertId

Header Elemento Descrição
Representação
ExchangeImpersonation
Identifica o usuário que o aplicativo cliente está representando. Isso é aplicável a uma solicitação.
RequestVersion
RequestServerVersion
Identifica a versão do esquema para a solicitação de operação Isso é aplicável a uma solicitação.
Serverversion
ServerVersionInfo
Identifica a versão do servidor que respondeu à solicitação. Isso é aplicável a uma resposta.

Exemplo de solicitação de operação ConvertId

O exemplo a seguir de uma solicitação ConvertId mostra como converter de um identificador EWS em um identificador Outlook Web App.

O elemento RequestServerVersion no cabeçalho SOAP deve ser definido como Exchange2007_SP1 ou posterior para que essa operação funcione.

Observação

O identificador de item foi encurtado para preservar a legibilidade.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
               xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2010"/>
  </soap:Header>
  <soap:Body>
    <ConvertId xmlns="https://schemas.microsoft.com/exchange/services/2006/messages"
               xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types"
               DestinationFormat="OwaId">
      <SourceIds>
        <t:AlternateId Format="EwsId" Id="AAMkAGZhN2IxYTA0LWNiNzItN="
                       Mailbox="user1@example.com"/>
      </SourceIds>
    </ConvertId>
  </soap:Body>
</soap:Envelope>

Exemplo de resposta à operação ConvertId

O exemplo a seguir mostra uma resposta bem-sucedida a uma solicitação ConvertId . Este exemplo de resposta contém um identificador de Outlook Web App.

Observação

O identificador Outlook Web App foi encurtado para preservar a legibilidade.

<?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="1" 
                         MajorBuildNumber="191" MinorBuildNumber="0" 
                         Version="Exchange2010" 
                         xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <ConvertIdResponse xmlns="https://schemas.microsoft.com/exchange/services/2006/messages">
      <ResponseMessages>
        <ConvertIdResponseMessage ResponseClass="Success">
          <ResponseCode>NoError</ResponseCode>
          <AlternateId xsi:type="t:AlternateIdType" Format="OwaId" Id="RgAAAAAS2%2" 
                         Mailbox="user@example.com" />
        </ConvertIdResponseMessage>
      </ResponseMessages>
    </ConvertIdResponse>
  </soap:Body>
</soap:Envelope>

Exemplo de resposta de erro da operação ConvertId

O exemplo a seguir mostra a resposta a uma solicitação que contém o tipo errado de formato de identificador.

<?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>
    <ServerVersionInfo MajorVersion="8" MinorVersion="1" 
                       MajorBuildNumber="206" MinorBuildNumber="0"
                       Version="Exchange2010" 
                       xmlns="https://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <ConvertIdResponse xmlns="https://schemas.microsoft.com/exchange/services/2006/messages">
      <ResponseMessages>
        <ConvertIdResponseMessage ResponseClass="Error">
          <MessageText>Id is malformed.</MessageText>
          <ResponseCode>ErrorInvalidIdMalformed</ResponseCode>
          <DescriptiveLinkKey>0</DescriptiveLinkKey>
        </ConvertIdResponseMessage>
      </ResponseMessages>
    </ConvertIdResponse>
  </soap:Body>
</soap:Envelope>

Diferenças de versão

O formato do identificador EWS foi alterado entre a versão inicial do Exchange 2007 e o Exchange 2007 Service Pack 1 (SP1). Exchange Online como parte das versões Office 365, Exchange Online e locais do Exchange a partir do Exchange 2010 usam o mesmo formato de identificador que o Exchange 2007 SP1 usa.

A operação ConvertId converte identificadores de pastas públicas do identificador EWS no identificador do repositório no Exchange 2007 e no Exchange 2010.

Confira também