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 evento error 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 em Stack Overflow.

Localizar o erro que ocorreu

Um evento error é 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 evento error retorna um objeto IError:

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.

Solucionando problemas

Depois de adquirir o objeto IError, compare pesquisá-lo no Solucionar problemas do aplicativo inserido com o objeto IError tabela e encontrar as possíveis causas da falha.

Nota

Há uma de tabela de erros comuns para usuários do Power BI (também conhecido como inserção para sua organização) e para usuários que não são do Power BI (também conhecidos 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 umPromise.

Se você estiver usando o padrão async/await, deverá usar try/catch para detectar possíveis erros. Por exemplo:

try {
    ...

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

Se você não estiver usando o padrão async/await, poderá usar a função catch para detectar possíveis erros. Por exemplo:

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