Partager via


Gestion des erreurs et des avertissements (XMLA)

La gestion des erreurs est requise lorsqu’un appel de méthode Discover ou Execute XML for Analysis (XMLA) ne s’exécute pas, s’exécute correctement, génère des erreurs ou des avertissements, ou s’exécute correctement, mais retourne des résultats qui contiennent des erreurs.

Erreur Rapports
L’appel de méthode XMLA n’est pas exécuté 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 réussi 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 le résultat d’un appel de méthode réussi 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’a pas été correctement formé ou n’a pas pu être validé par l’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 l’instance Analysis Services.

Les codes d’erreur SOAP pour XMLstartA commencent par « XMLForAnalysis », suivis d’un point et du code de résultat HRESULT hexadécimal. Par exemple, un code d’erreur «0x80000005 » est mis en forme comme «XMLForAnalysis.0x80000005 ». Pour plus d’informations sur le format d’erreur SOAP, consultez Erreur soap dans le protocole SOAP (Simple Object Access Protocol) 1.1 du W3C.

Informations sur le 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 sont les attributs d’une erreur dans la section détail d’une erreur SOAP.

Nom de colonne Catégorie Descriptif Null autorisé1
ErrorCode UnsignedInt Retourne le code qui indique la réussite ou l’échec de la méthode. La valeur hexadécimale doit être convertie en UnsignedInt valeur. Non
WarningCode UnsignedInt Retourne le code qui indique une condition d’avertissement. La valeur hexadécimale doit être convertie en UnsignedInt valeur. Oui
Description String Texte d’erreur ou d’avertissement et description retournés par le composant qui a généré l’erreur. Oui
Source String Nom du composant qui a généré l’erreur ou l’avertissement. Oui
HelpFile String Chemin d’accès ou URL du fichier d’aide ou de la rubrique qui décrit l’erreur ou l’avertissement. Oui

1 Indique si les données sont requises et doivent être retournées, ou si les données sont facultatives et qu’une chaîne Null est autorisée si la colonne ne s’applique pas.

Voici un exemple d’erreur SOAP qui s’est produite lorsqu’un appel de méthode a échoué :

<?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 d’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 une défaillance s’est produite sur l’instance Analysis Services après l’appel de méthode réussi.

  • L’instance Analysis Services retourne un avertissement lorsque la commande réussit.

La Messages propriété suit toutes les autres propriétés contenues par l’élément root et peut contenir un ou plusieurs Message éléments. À son tour, chaque Message élément peut contenir un seul ou warning un élément error décrivant les erreurs ou avertissements, respectivement, 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’élément Messages (XMLA).

Gestion des erreurs lors de la sérialisation

Si une erreur se produit après que l’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 espace de noms différent au point de l’erreur. L’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 Messages élément qui contient la description de l’erreur.

Gestion des erreurs et avertissements inline

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 l’instance Analysis Services après l’appel de méthode XMLA réussi.

Analysis Services fournit des éléments inline error et warning des éléments si des problèmes spécifiques à une cellule ou à d’autres données contenues dans un root élément utilisant le type de données MDDataSet se produisent, comme une erreur de sécurité ou une erreur de mise en forme pour une cellule. Dans ces cas, Analysis Services retourne un ou warning un error élément dans le ou row l’élément Cell 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 Instruction .

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

Voir aussi

Développement avec XMLA dans Analysis Services