Gestione di errori e avvisi (XMLA)
La gestione degli errori è necessaria quando una chiamata al metodo Discover oExecute XML for Analysis (XMLA) non viene eseguita, viene eseguita correttamente, ma genera errori o avvisi oppure viene eseguita correttamente, ma restituisce risultati contenenti errori.
Errore | Reporting |
---|---|
Chiamata al metodo XMLA non eseguita | Microsoft SQL Server Analysis Services restituisce un messaggio di errore SOAP contenente i dettagli dell'errore. Per altre informazioni, vedere la sezione Gestione degli errori SOAP. |
Errori o avvisi in una chiamata al metodo eseguita correttamente | Analysis Services include un errore o un elemento di avviso per ogni errore o avviso, rispettivamente, nella proprietà Messages dell'elemento radice che contiene i risultati della chiamata al metodo. Per altre informazioni, vedere la sezione Gestione degli errori e degli avvisi. |
Errori nel risultato di una chiamata al metodo eseguita correttamente | Analysis Services include rispettivamente un elemento inline error o warning per l'errore o l'avviso all'interno dell'elemento Cell o row appropriato dei risultati della chiamata al metodo.Per altre informazioni, vedere la sezione Gestione degli errori e degli avvisi inline. |
Gestione di errori SOAP
Analysis Services restituisce un errore SOAP quando si verificano le situazioni seguenti:
Il messaggio SOAP contenente il metodo XMLA non è stato formato correttamente o non è stato possibile convalidare 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 | Type | Descrizione | 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 . |
Sì |
Description |
String |
Testo o descrizione dell'errore o dell'avviso restituiti dal componente che ha generato l'errore. | Sì |
Source |
String |
Nome del componente che ha generato l'errore o l'avviso. | Sì |
HelpFile |
String |
Percorso o URL del file o dell'argomento della Guida in cui è descritto l'errore o l'avviso. | Sì |
1 Indica se i dati sono obbligatori e devono essere restituiti oppure se i dati sono facoltativi e se è 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
Analysis Services restituisce la Messages
proprietà nell'elemento per un comando se si verificano le situazioni seguenti dopo l'esecuzione root
di tale comando:
Il metodo stesso non ha avuto esito negativo, ma si è verificato un errore nell'istanza di Analysis Services dopo che la chiamata al metodo è riuscita.
L'istanza di Analysis Services restituisce un avviso quando il comando ha esito positivo.
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 altre informazioni sugli errori e gli avvisi contenuti nella proprietà , vedere Elemento Messages (XMLA).For more information about errors and warnings that are contained in the Messages
property, see Messages Element (XMLA).
Gestione di errori durante la serializzazione
Se si verifica un errore dopo che l'istanza di Analysis Services ha già iniziato a serializzare l'output di un comando eseguito correttamente, Analysis Services restituisce un elemento Exception in uno spazio dei nomi diverso al momento dell'errore. L'istanza di Analysis Services chiude quindi tutti gli elementi aperti in modo che il documento XML inviato al client sia un documento valido. L'istanza restituisce inoltre un elemento Messages
che contiene la descrizione dell'errore.
Gestione di errori e avvisi inline
Analysis Services restituisce un oggetto inline error
o warning
per un comando se il metodo XMLA stesso non ha avuto esito negativo, ma un errore specifico di un elemento dati nei risultati restituiti dal metodo si è verificato nell'istanza di Analysis Services dopo che la chiamata al metodo XMLA ha avuto esito positivo.
Analysis Services fornisce elementi inline error
e warning
se si verificano problemi specifici di una cella o di altri dati contenuti all'interno di un root
elemento tramite il tipo di dati MDDataSet , ad esempio un errore di sicurezza o un errore di formattazione per una cella. In questi casi, Analysis Services restituisce rispettivamente un error
elemento o warning
nell'elemento Cell
o row
che contiene l'errore o l'avviso.
Nell'esempio seguente viene illustrato un set di risultati contenente un errore nel set di righe restituito da un Execute
metodo 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>