Gestion des erreurs et des avertissements (XMLA)
La gestion des erreurs est requise lorsqu’un appel de méthode XMLA (XMLA) Discover ou Execute ne s’exécute pas, s’exécute correctement, mais génère des erreurs ou des avertissements, ou s’exécute correctement, mais retourne des résultats contenant des erreurs.
Error | Création de rapports |
---|---|
L'appel de méthode XMLA ne s'exécute pas | Microsoft SQL Server Analysis Services retourne un message d’erreur SOAP qui contient les détails de l’échec. Pour plus d’informations, consultez la section Gestion des erreurs SOAP. |
Erreurs ou avertissements sur un appel de méthode ayant abouti | Analysis Services inclut un élément d’erreur ou d’avertissement pour chaque erreur ou avertissement, respectivement, dans la propriété Messages de l’élément racine qui contient les résultats de l’appel de méthode. Pour plus d’informations, consultez la section Gestion des erreurs et des avertissements. |
Erreurs dans les résultats d'un appel de méthode ayant abouti | Analysis Services inclut un élément inline error ou warning un élément pour l’erreur ou l’avertissement, respectivement, dans l’élément Cellule ou ligne approprié des résultats de l’appel de méthode.Pour plus d’informations, consultez la section Gestion des erreurs et avertissements inline. |
Gestion des erreurs SOAP
Analysis Services retourne une erreur SOAP lorsque les situations suivantes se produisent :
Le message SOAP qui contient la méthode XMLA n’était pas correctement formé ou n’a pas pu être validé par le instance Analysis Services.
une communication ou une autre erreur s'est produite impliquant le message SOAP qui contient la méthode XMLA ;
La méthode XMLA n’a pas été exécutée sur le instance Analysis Services.
Les codes d'erreur SOAP pour XMLstartA commencent par « XMLForAnalysis », suivis d'un point et du code de résultat hexadécimal HRESULT. Par exemple, le code d'erreur « 0x80000005
» prend la forme « XMLForAnalysis.0x80000005
». Pour plus d'informations sur le format d'erreur SOAP, consultez la rubrique consacrée aux erreurs Soap dans le document « Simple Object Access Protocol (SOAP) 1.1 » du W3C (en anglais).
Informations de code d'erreur
Le tableau suivant présente les informations de code d'erreur XMLA contenues dans la section détaillée de la réponse SOAP. Les colonnes représentent les attributs d'une erreur dans la section détaillée d'une erreur SOAP.
Nom de la colonne | Type | Description | Null autorisé1 |
---|---|---|---|
ErrorCode |
UnsignedInt |
Code de retour qui indique le succès ou l'échec de la méthode. La valeur hexadécimale doit être convertie en valeur UnsignedInt . |
No |
WarningCode |
UnsignedInt |
Code de retour qui indique une condition d'avertissement. La valeur hexadécimale doit être convertie en valeur UnsignedInt . |
Yes |
Description |
String |
Texte et description de l'erreur ou de l'avertissement retourné par le composant qui a généré l'erreur. | Yes |
Source |
String |
Nom du composant qui a généré l'erreur ou l'avertissement. | Yes |
HelpFile |
String |
Chemin d'accès ou URL menant au fichier ou à la rubrique d'aide qui décrit l'erreur ou l'avertissement. | Yes |
1 Indique si les données sont requises et doivent être retournées, ou si les données sont facultatives et une chaîne null est autorisée si la colonne ne s’applique pas.
Voici un exemple d'erreur SOAP qui s'est produite à l'occasion d'un échec d'appel de méthode :
<?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>
Gestion des erreurs et des avertissements
Analysis Services retourne la Messages
propriété dans l’élément root
pour une commande si les situations suivantes se produisent après l’exécution de cette commande :
La méthode elle-même n’a pas échoué, mais un échec s’est produit sur le instance Analysis Services après la réussite de l’appel de méthode.
Le instance Analysis Services retourne un avertissement lorsque la commande réussit.
La propriété Messages
suit toutes les autres propriétés contenues dans l'élément root
et peut contenir un ou plusieurs éléments Message
. De leur côté, les éléments Message
peut chacun contenir un élément error
ou warning
décrivant, respectivement, les erreurs ou les avertissements qui se sont produits pour la commande spécifiée.
Pour plus d’informations sur les erreurs et les avertissements contenus dans la Messages
propriété, consultez Élément Messages (XMLA).
Gestion des erreurs pendant la sérialisation
Si une erreur se produit après que le instance Analysis Services a déjà commencé à sérialiser la sortie d’une commande exécutée avec succès, Analysis Services retourne un élément Exception dans un autre espace de noms au point de l’erreur. Le instance Analysis Services ferme ensuite tous les éléments ouverts afin que le document XML envoyé au client soit un document valide. L'instance retourne également un élément Messages
qui contient la description de l'erreur.
Gestion des erreurs et des avertissements insérés
Analysis Services retourne une commande inline error
ou warning
pour une commande si la méthode XMLA elle-même n’a pas échoué, mais une erreur spécifique à un élément de données dans les résultats retournés par la méthode s’est produite sur le instance Analysis Services après la réussite de l’appel de méthode XMLA.
Analysis Services fournit des éléments inline error
et warning
si des problèmes spécifiques à une cellule ou à d’autres données contenues dans un root
élément à l’aide du type de données MDDataSet se produisent, tels qu’une erreur de sécurité ou une erreur de mise en forme pour une cellule. Dans ce cas, Analysis Services retourne un error
élément ou warning
dans l’élément Cell
ou row
qui contient l’erreur ou l’avertissement, respectivement.
L’exemple suivant illustre un jeu de résultats qui contient une erreur dans l’ensemble de lignes retourné à partir d’une Execute
méthode à l’aide de la commande Statement .
<return>
...
<root>
...
<CellData>
...
<Cell CellOrdinal="10">
<Value>
<Error>
<ErrorCode>2148497527</ErrorCode>
<Description>Security Error.</Description>
</Error>
</Value>
</Cell>
</CellData>
...
</root>
...
</return>