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 | Informes |
---|---|
La llamada al método XMLA no se ejecuta | Microsoft 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 | 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 | Analysis Services incluye un elemento insertado error o warning para el error o la 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
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 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 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 debe convertirse en un valor UnsignedInt . |
No |
WarningCode |
UnsignedInt |
Código de retorno que indica una condición de advertencia. El valor hexadecimal debe convertirse en un valor UnsignedInt . |
Sí |
Description |
String |
Texto y descripción del error o la advertencia devueltos por el componente que generó el error. | Sí |
Source |
String |
Nombre del componente que generó el error o la advertencia. | Sí |
HelpFile |
String |
Ruta de acceso o dirección URL del tema o el archivo de Ayuda que describe el error o la advertencia. | Sí |
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="https://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="https://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
Analysis Services devuelve la Messages
propiedad en el root
elemento 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 Analysis Services después de que la llamada al método se realizó correctamente.
La instancia de Analysis Services devuelve una advertencia cuando el comando se ejecuta correctamente.
La propiedad Messages
sigue al resto de las propiedades contenidas en el elemento root
y puede contener uno o más elementos Message
. A su vez, cada elemento Message
puede contener un elemento error
o warning
único que describa cualquier error o advertencia, respectivamente, que se hayan producido para el comando especificado.
Para obtener más información sobre los errores y advertencias contenidos en la Messages
propiedad , vea Elemento Messages (XMLA).
Controlar errores durante la serialización
Si se produce un error después de que la instancia de Analysis Services ya haya comenzado a serializar la salida de un comando ejecutado correctamente, Analysis Services devuelve un elemento Exception en un espacio de nombres diferente en el momento del error. A continuación, la instancia de 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
Analysis Services devuelve un comando insertado error
o warning
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 Analysis Services después de que la llamada al método XMLA se realizó correctamente.
Analysis Services proporciona elementos insertados error
y warning
si se producen problemas específicos de una celda u otros datos contenidos en un root
elemento mediante el tipo de datos MDDataSet , como un error de seguridad o un error de formato para una celda. En estos casos, Analysis Services devuelve un error
elemento o warning
en el Cell
elemento o row
que contiene el error o la advertencia, respectivamente.
En el ejemplo siguiente se muestra un conjunto de resultados que contiene un error en el conjunto de filas devuelto desde un Execute
método 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>