Compartilhar via


Manipulando erros e avisos (XMLA)

O tratamento de erros é necessário quando uma chamada de método XMLA (XML for Analysis) Discover ou Execute não é executada, é executada com êxito, mas gera erros ou avisos ou é executada com êxito, mas retorna resultados que contêm erros.

Erro Relatórios
A chamada de método XMLA não é executada O Microsoft SQL Server Analysis Services retorna uma mensagem de falha SOAP que contém os detalhes da falha.

Para obter mais informações, consulte a seção Tratamento de falhas SOAP.
Erros ou avisos em uma chamada de método com êxito O Analysis Services inclui um elemento de erro ou aviso para cada erro ou aviso, respectivamente, na propriedade Messages do elemento raiz que contém os resultados da chamada de método.

Para obter mais informações, consulte a seção Tratamento de erros e avisos.
Erros no resultado de uma chamada de método com êxito O Analysis Services inclui um elemento embutido errorwarning para o erro ou aviso, respectivamente, dentro do elemento Cell ou row apropriado dos resultados da chamada de método.

Para obter mais informações, consulte a seção Tratamento de erros e avisos embutidos.

Manipulando falhas SOAP

O Analysis Services retorna uma falha SOAP quando ocorrem as seguintes situações:

  • A mensagem SOAP que contém o método XMLA não foi bem formada ou não pôde ser validada pela instância do Analysis Services.

  • Houve um erro de comunicação ou outro erro envolvendo a mensagem SOAP que contém o método XMLA.

  • O método XMLA não foi executado na instância do Analysis Services.

Os códigos de falha SOAP para XMLstartA começam com "XMLForAnalysis", seguido por um ponto e o código de resultado hexadecimal HRESULT. Por exemplo, um código de erro "0x80000005" é formatado como "XMLForAnalysis.0x80000005". Para obter mais informações sobre o formato de falha SOAP, consulte Falha Soap no protocolo SOAP 1.1 do W3C.

Informações de código de falha

A tabela a seguir mostra as informações de código de falha XMLA contidas na sessão de detalhe da resposta SOAP. As colunas são os atributos de um erro na seção de detalhe de uma falha SOAP.

Nome da coluna Type Descrição Nulo permitido1
ErrorCode UnsignedInt Código de retorno que indica o êxito ou a falha do método. O valor hexadecimal deve ser convertido para um valor UnsignedInt. No
WarningCode UnsignedInt Código de retorno que indica uma condição de aviso. O valor hexadecimal deve ser convertido para um valor UnsignedInt. Sim
Description String Texto e descrição de erro ou de aviso retornadas pelo componente que gerou o erro. Sim
Source String Nome do componente que gerou o erro ou o aviso. Sim
HelpFile String Caminho ou URL para o arquivo de Ajuda ou tópico que descreve o erro ou o aviso. Sim

1 Indica se os dados são necessários e devem ser retornados ou se os dados são opcionais e uma cadeia de caracteres nula é permitida se a coluna não se aplica.

A seguir, um exemplo de uma falha SOAP ocorrida quando uma chamada de método falhou:

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

Manipulando erros e avisos

O Analysis Services retornará a Messages propriedade no root elemento para um comando se as seguintes situações ocorrerem após a execução desse comando:

  • O método em si não falhou, mas ocorreu uma falha na instância do Analysis Services depois que a chamada de método foi bem-sucedida.

  • A instância do Analysis Services retorna um aviso quando o comando é bem-sucedido.

A propriedade Messages segue todas as outras propriedades contidas pelo elemento root e pode conter um ou mais elementos Message. Por sua vez, cada elemento Message pode conter um único elemento error ou warning descrevendo erros ou avisos, respectivamente, ocorridos para o comando especificado.

Para obter mais informações sobre erros e avisos contidos na Messages propriedade , consulte Elemento Messages (XMLA).

Manipulando erros durante a serialização

Se ocorrer um erro depois que a instância do Analysis Services já tiver começado a serializar a saída de um comando executado com êxito, o Analysis Services retornará um elemento Exception em um namespace diferente no ponto do erro. Em seguida, a instância do Analysis Services fecha todos os elementos abertos para que o documento XML enviado ao cliente seja um documento válido. A instância também retornará um elemento Messages com a descrição do erro.

Manipulando erros e avisos embutidos

O Analysis Services retornará um error embutido ou warning para um comando se o próprio método XMLA não falhar, mas um erro específico a um elemento de dados nos resultados retornados pelo método ocorreu na instância do Analysis Services após a chamada do método XMLA ter sido bem-sucedida.

O Analysis Services fornecerá elementos embutidos error e warning se ocorrerem problemas específicos a uma célula ou a outros dados contidos em um root elemento usando o tipo de dados MDDataSet , como um erro de segurança ou erro de formatação para uma célula. Nesses casos, o Analysis Services retorna um error elemento ou warning no Cell elemento ou row que contém o erro ou o aviso, respectivamente.

O exemplo a seguir ilustra um conjunto de resultados que contém um erro no conjunto de linhas retornado de um Execute método usando o comando Statement .

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

Consulte Também

Desenvolvendo com XMLA no Analysis Services