Operación ConvertId

Busque información sobre la operación ConvertId EWS.

La operación ConvertId Exchange Web Services (EWS) convierte los identificadores de elemento y carpeta entre formatos aceptados por Exchange Online, Exchange Online como parte de Office 365 y versiones locales de Exchange a partir de Exchange Server 2013.

Uso de la operación ConvertId

Puede convertir los siguientes identificadores mediante la operación ConvertId :

  • Formato de identificador de EWS en la versión inicial de Exchange 2007. Esto se representa mediante el valor de EwsLegacyId enumeración de la enumeración IdFormat .

  • Formato de identificador de EWS en Exchange 2007 SP1 o Exchange 2010. Esto se representa mediante el valor de EwsId enumeración en IdFormat.

  • Identificador MAPI, como en la propiedad PR_ENTRYID . Esto se representa mediante el valor de EntryId enumeración de la enumeración IdFormat .

  • Identificador de eventos del calendario de disponibilidad. Se trata de una representación codificada hexadecimalmente de la propiedad PR_ENTRYID . Esto se representa mediante el valor de HexEntryId enumeración en IdFormat.

  • Identificador del almacén de Exchange. Esto se representa mediante el valor de StoreId enumeración en IdFormat. La operación ConvertId no convierte los identificadores de carpeta pública del identificador de EWS al identificador de almacén.

  • Identificador de Outlook Web App. Esto se representa mediante el valor de OwaId enumeración en IdFormat.

    No se admite el paso de direcciones URL creadas a partir de este identificador a Outlook Web App. El identificador de Outlook Web App es aplicable a Exchange 2007 y Exchange 2010. Outlook Web App para Exchange Online y versiones de Exchange a partir de Exchange Server 2013 usa identificadores EWS.

La operación ConvertId no funciona según lo esperado al convertir los identificadores de carpeta pública del identificador EWS al identificador de almacén en Exchange Online y Exchange 2013. Puede actualizar manualmente el identificador que se devuelve como solución alternativa. Para actualizar manualmente el identificador:

  1. En el código de la aplicación, determine si el elemento o carpeta de destino está en una carpeta pública.

  2. Descodificar la cadena de identificador codificada en Base64.

  3. Compruebe que el byte de tipo (byte 21) tiene un valor de 7. Un valor de 7 indica que el identificador está en el formato incorrecto.

  4. Omita los primeros cuatro bytes. Deben establecerse en cero.

  5. Actualice los siguientes 16 bytes con el siguiente GUID: 1A447390AA6611CD9BC800AAA002FC45A

  6. Actualice el siguiente byte (byte de tipo) con un valor de 9.

  7. Cambie el identificador a una cadena codificada en Base64.

Nota:

La operación ConvertId valida que una dirección SMTP determinada tiene un formato válido. La operación no determina si una dirección SMTP representa un buzón válido.

La operación ConvertId puede usar los encabezados SOAP que aparecen en la tabla siguiente.

Tabla 1. Encabezados SOAP de la operación ConvertId

Header Elemento Descripción
Suplantación
ExchangeImpersonation
Identifica al usuario al que suplanta la aplicación cliente. Esto es aplicable a una solicitud.
RequestVersion
RequestServerVersion
Identifica la versión del esquema para la solicitud de operación Esto es aplicable a una solicitud.
ServerVersion
ServerVersionInfo
Identifica la versión del servidor que respondió a la solicitud. Esto es aplicable a una respuesta.

Ejemplo de solicitud de operación ConvertId

En el ejemplo siguiente de una solicitud ConvertId se muestra cómo convertir de un identificador EWS a un identificador de Outlook Web App.

El elemento RequestServerVersion del encabezado SOAP debe establecerse en Exchange2007_SP1 o posterior para que esta operación funcione.

Nota:

El identificador de elemento se ha acortado para conservar la legibilidad.

<?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>

Ejemplo de respuesta de la operación ConvertId

En el ejemplo siguiente se muestra una respuesta correcta a una solicitud ConvertId . Este ejemplo de respuesta contiene un identificador de Outlook Web App.

Nota:

El identificador de Outlook Web App se ha acortado para conservar la legibilidad.

<?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>

Ejemplo de respuesta de error de la operación ConvertId

En el ejemplo siguiente se muestra la respuesta a una solicitud que contiene el tipo incorrecto 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>

Diferencias de versión

El formato de identificador de EWS cambió entre la versión inicial de Exchange 2007 y Exchange 2007 Service Pack 1 (SP1). Exchange Online como parte de Office 365, Exchange Online y versiones locales de Exchange a partir de Exchange 2010 usan el mismo formato de identificador que Exchange 2007 SP1.

La operación ConvertId convierte los identificadores de carpeta pública del identificador EWS en el identificador de almacén en Exchange 2007 y Exchange 2010.

Vea también