Gestione di errori e avvisi (XMLA)

La gestione degli errori è necessaria quando una chiamata al metodo Discover o Execute di XML for Analysis (XMLA) non viene eseguita, viene eseguita correttamente, ma genera errori o avvisi, oppure viene eseguita correttamente, ma restituisce risultati che contengono errori.

Errore

Report

Chiamata al metodo XMLA non eseguita

In MicrosoftSQL ServerAnalysis Services viene restituito un messaggio di errore SOAP con i dettagli dell'errore.

Per ulteriori informazioni, vedere la sezione Gestione di errori SOAP.

Errori o avvisi in una chiamata al metodo eseguita correttamente

In Analysis Services è presente un elemento error o warning, rispettivamente per ogni errore o avviso, nella proprietà Messages dell'elemento root che contiene i risultati della chiamata al metodo.

Per ulteriori informazioni, vedere la sezione Gestione di errori e avvisi.

Errori nel risultato di una chiamata al metodo eseguita correttamente

In Analysis Services è presente un elemento inline error o warning, rispettivamente per l'errore o l'avviso, nell'elemento Cell o row appropriato dei risultati della chiamata al metodo.

Per ulteriori informazioni, vedere la sezione Gestione di errori e avvisi inline.

Gestione di errori SOAP

Analysis Services restituisce un errore SOAP quando si verificano le situazioni seguenti:

  • Il messaggio SOAP che contiene il metodo XMLA non è in formato corretto o non è stato convalidato dall'istanza di Analysis Services.

  • Si è verificato un errore di comunicazione o di altro tipo relativo al messaggio SOAP che contiene il metodo XMLA.

  • Il metodo XMLA non è stato eseguito nell'istanza di Analysis Services.

Il codice di errore SOAP per XMLstartA inizia con "XMLForAnalysis", seguito da un punto e dal codice esadecimale restituito HRESULT. Un codice di errore "0x80000005" viene formattato come "XMLForAnalysis.0x80000005". Per ulteriori informazioni sul formato degli errori SOAP, vedere l'argomento relativo nel documento Simple Object Access Protocol (SOAP) 1.1 del World Wide Web Consortium (W3C).

Informazioni sul codice di errore

Nella tabella seguente vengono elencate le informazioni sul codice di errore XMLA contenute nella sezione dei dettagli della risposta SOAP. Le colonne rappresentano gli attributi di un errore nella sezione dei dettagli di un errore SOAP.

Nome colonna

Tipo

Descrizione

Valore Null consentito1

ErrorCode

UnsignedInt

Codice restituito che indica l'esito positivo o negativo del metodo. Il valore esadecimale deve essere convertito in un valore UnsignedInt.

No

WarningCode

UnsignedInt

Codice restituito che indica una condizione di avviso. Il valore esadecimale deve essere convertito in un valore UnsignedInt.

Description

String

Testo o descrizione dell'errore o dell'avviso restituiti dal componente che ha generato l'errore.

Source

String

Nome del componente che ha generato l'errore o l'avviso.

HelpFile

String

Percorso o URL del file o dell'argomento della Guida in cui è descritto l'errore o l'avviso.

1 Indica se i dati sono necessari e devono essere restituiti oppure se sono facoltativi ed è consentita una stringa Null se la colonna non è applicabile.

Di seguito viene riportato un esempio di errore SOAP che si è verificato quando una chiamata al metodo non è riuscita:

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

Gestione di errori e avvisi

In Analysis Services viene restituita la proprietà Messages nell'elemento root per un comando se si verificano le situazioni seguenti dopo l'esecuzione del comando:

  • Il metodo non ha provocato alcun errore, ma si è verificato un errore nell'istanza di Analysis Services dopo che la chiamata al metodo è stata eseguita correttamente.

  • L'istanza di Analysis Services restituisce un avviso quando il comando viene eseguito correttamente.

La proprietà Messages segue tutte le altre proprietà contenute nell'elemento root e può contenere uno o più elementi Message. A sua volta, ogni elemento Message può contenere un unico elemento error o warning che descrive rispettivamente tutti gli errori o gli avvisi che si sono verificati per il comando specificato.

Per ulteriori informazioni sugli errori e gli avvisi contenuti in una proprietà Messages, vedere Elemento Messages (XMLA).

Gestione di errori durante la serializzazione

Se si verifica un errore dopo che l'istanza di Analysis Services ha iniziato a serializzare l'output di un comando eseguito in modo corretto, Analysis Services restituisce un elemento Exception nel punto in cui si è verificato l'errore in uno spazio dei nomi diverso. L'istanza Analysis Services chiude quindi tutti gli elementi aperti in modo che il documento XML inviato al client sia un valido. L'istanza restituisce inoltre un elemento Messages che contiene la descrizione dell'errore.

Gestione di errori e avvisi inline

Analysis Services restituisce un elemento inline error o warning per un comando se il metodo XMLA non ha provocato alcun errore, ma si è verificato un errore specifico per un elemento dati nei risultati restituiti dal metodo nell'istanza di Analysis Services dopo che la chiamata al metodo XMLA è stata eseguita in modo corretto.

In Analysis Services sono disponibili elementi inline error e warning se si verificano problemi specifici, ad esempio un errore di protezione o di formattazione, per una cella o altri dati contenuti in un elemento root tramite il tipo di dati MDDataSet. In questi casi, Analysis Services restituisce un elemento error o warning nell'elemento Cell o row che contiene rispettivamente l'errore o l'avviso.

Nell'esempio seguente viene illustrato un set di risultati che contiene un errore nel set di righe restituito da un metodo Execute tramite il comando Statement.

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