Controlar errores y advertencias (XMLA)

El control de errores es necesario cuando una llamada al método Discover o Execute de XML for Analysis (XMLA) no se ejecuta, se ejecuta correctamente, pero genera errores o advertencias, o se ejecuta correctamente, pero devuelve resultados que contienen errores.

Error Notificación
La llamada al método XMLA no se ejecuta Microsoft SQL Server SQL Server Analysis Services devuelve un mensaje de error SOAP que contiene los detalles del error.

Para obtener más información, consulte la sección Control de errores de SOAP.
Errores o advertencias en una llamada a método correcta SQL Server Analysis Services incluye un elemento de error o advertencia para cada error o advertencia, respectivamente, en la propiedad Messages del elemento raíz que contiene los resultados de la llamada al método.

Para obtener más información, consulte la sección Control de errores y advertencias.
Errores en el resultado de una llamada a método correcta SQL Server Analysis Services incluye un elemento de advertencia o error insertado para el error o advertencia, respectivamente, dentro del elemento Cell o row adecuado de los resultados de la llamada al método.

Para obtener más información, vea la sección Control de errores y advertencias insertados.

Controlar errores de SOAP

SQL Server Analysis Services devuelve un error soap cuando se producen las situaciones siguientes:

  • El mensaje SOAP que contiene el método XMLA no estaba bien formado o no se pudo validar mediante la instancia de SQL Server Analysis Services.

  • Se ha producido un error de comunicaciones o de otro tipo que afecta al mensaje SOAP que contiene el método XMLA.

  • El método XMLA no se ejecutó en la instancia de SQL Server Analysis Services.

Los códigos de error de SOAP para XMLstartA empiezan por "XMLForAnalysis", seguido de un punto y del código de resultado HRESULT hexadecimal. Por ejemplo, un código de error de "0x80000005" tiene el formato "XMLForAnalysis.0x80000005". Para obtener más información sobre el formato de error de SOAP, consulte la información sobre errores de SOAP en Simple Object Access Protocol (SOAP) 1.1 de W3C.

Información del código de error

En la tabla siguiente se muestra la información de código de error de XMLA incluida en la sección de detalles de la respuesta SOAP. Las columnas son los atributos de un error en la sección de detalles de un error de SOAP.

Nombre de la columna Tipo Descripción Null permitido1
ErrorCode UnsignedInt Código de retorno que indica la ejecución correcta o el error del método. El valor hexadecimal se debe convertir en un valor UnsignedInt . No
WarningCode UnsignedInt Código de retorno que indica una condición de advertencia. El valor hexadecimal se debe convertir en un valor UnsignedInt .
Descripción String Texto y descripción del error o la advertencia devueltos por el componente que generó el error.
Origen String Nombre del componente que generó el error o la advertencia.
Helpfile String Ruta de acceso o dirección URL del tema o el archivo de Ayuda que describe el error o la advertencia.

1 Indica si los datos son necesarios y deben devolverse, o si los datos son opcionales y se permite una cadena null si la columna no se aplica.

A continuación se muestra un ejemplo de un error de SOAP que se produjo al no poderse realizar una llamada a método:

<?xml version="1.0"?>  
   <SOAP-ENV:Envelope  
   xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"  
   SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">  
      <SOAP-ENV:Fault>  
         <faultcode>XMLAnalysisError.0x80000005</faultcode>  
         <faultstring>The XML for Analysis provider encountered an error.</faultstring>  
         <faultactor>XML for Analysis Provider</faultactor>  
         <detail>  
<Error  
ErrorCode="2147483653"  
Description="An unexpected error has occurred."  
Source="XML for Analysis Provider"  
HelpFile="" />  
         </detail>  
      </SOAP-ENV:Fault>  
</SOAP-ENV:Envelope>  

Controlar errores y advertencias

SQL Server Analysis Services devuelve la propiedad Messages en el elemento raíz de un comando si se producen las situaciones siguientes después de que se ejecute ese comando:

  • El propio método no produjo un error, pero se produjo un error en la instancia de SQL Server Analysis Services después de que la llamada al método se realizó correctamente.

  • La instancia de SQL Server Analysis Services devuelve una advertencia cuando el comando se ejecuta correctamente.

La propiedad Messages sigue todas las demás propiedades contenidas por el elemento raíz y pueden contener uno o varios elementos Message . A su vez, cada elemento Message puede contener un único elemento de error o advertencia que describa los errores o advertencias, respectivamente, que se produjeron para el comando especificado.

Para obtener más información sobre los errores y advertencias contenidos en la propiedad Messages, vea Elemento Messages (XMLA).

Controlar errores durante la serialización

Si se produce un error después de que la instancia de SQL Server Analysis Services ya haya comenzado a serializar la salida de un comando ejecutado correctamente, SQL Server Analysis Services devuelve un elemento Exception en un espacio de nombres diferente en el momento del error. A continuación, la instancia de SQL Server Analysis Services cierra todos los elementos abiertos para que el documento XML enviado al cliente sea un documento válido. La instancia también devuelve un elemento Messages que contiene la descripción del error.

Controlar errores y advertencias insertados

SQL Server Analysis Services devuelve un error o una advertencia insertados para un comando si el propio método XMLA no produjo un error, pero un error específico de un elemento de datos en los resultados devueltos por el método se produjo en la instancia de SQL Server Analysis Services después de que la llamada al método XMLA se realizó correctamente.

SQL Server Analysis Services proporciona elementos de error y advertencia insertados si se producen problemas específicos de una celda u otros datos contenidos en un elemento raíz mediante el tipo de datos MDDataSet, como un error de seguridad o un error de formato para una celda. En estos casos, SQL Server Analysis Services devuelve un elemento error o advertencia en el elemento Cell o row que contiene el error o advertencia, respectivamente.

En el ejemplo siguiente se muestra un conjunto de resultados que contiene un error en el conjunto de filas devuelto desde un método Execute mediante el comando Statement .

<return>  
   ...  
   <root>  
      ...  
      <CellData>  
      ...  
         <Cell CellOrdinal="10">  
            <Value>  
               <Error>  
                  <ErrorCode>2148497527</ErrorCode>   
                  <Description>Security Error.</Description>   
               </Error>  
            </Value>  
         </Cell>  
      </CellData>  
      ...  
   </root>  
   ...  
</return>  

Consulte también

Desarrollar con XMLA en Analysis Services