Share via


Solucionar problemas e depurar seu código de inserção

Ao desenvolver uma solução de análise inserida, você pode encontrar erros. Quando isso acontece, você precisa descobrir por que o erro ocorreu.

Use o error evento para depurar sua solução de análise inserida e entender melhor o que causou seus erros.

Se houver um erro que você não sabe como lidar, sempre poderá pesquisar ou fazer uma pergunta no Stack Overflow.

Localizar o erro que ocorreu

Um error evento é acionado quando ocorre um erro. Você pode ouvir o evento usando element.on(...)e, em seguida, definir um manipulador de eventos.

report.on('error', (errorObject) => {
    ...
});

Para obter mais informações sobre como lidar com eventos, consulte Como lidar com eventos.

O error evento retorna um IError objeto:

interface IError {
    message: string;
    detailedMessage?: string;
    errorCode?: string;
    level?: TraceType;
    technicalDetails?: ITechnicalDetails;
}

Por exemplo, quando o token expirar, você receberá o seguinte objeto de erro:

{
    "message": "TokenExpired",
    "detailedMessage": "Access token has expired, resubmit with a new access token",
    "errorCode": "403"
}

Para obter informações sobre como atualizar o token de acesso, consulte Atualizar o token de acesso.

Solução de problemas

Depois de adquirir o IError objeto, compare a pesquisa na solução de problemas do aplicativo inserido com a tabela de objetos IError e localize as possíveis causas da falha.

Observação

Há uma tabela de erros comumpara usuários do Power BI (também conhecida como inserção para sua organização) e para usuários que não são do Power BI (também conhecido como inserção para seus clientes).

Depurar no console do navegador

Você também pode simplesmente depurar seu aplicativo no console do navegador. Por exemplo, insira o seguinte snippet de código depois de ter uma instância de inserção:

// Add a listener to 'error' events
report.on('error', (errorObject) => {
    const err = errorObject.detail;

    // Print the error to console
    console.log(`Error occurred: ${err.message}. Detailed message: ${err.detailedMessage}`);
    console.log(err);
});

Capturar os erros de APIs

A maioria das APIs do cliente são funções assíncronas que retornam uma Promessa.

Se você estiver usando o async/await padrão, deverá usar try/catch para capturar um possível erro. Por exemplo:

try {
    ...

    // Set a new access token
    await report.setAccessToken(newAccessToken.token);
} catch (e) {
    ...
}

Se você não estiver usando o async/await padrão, poderá usar a catch função para capturar um possível erro. Por exemplo:

// Set a new access token
report.setAccessToken(newAccessToken.token).catch(e => {
    ...
});

Próximas etapas