Condividi tramite


Risolvere i problemi ed eseguire il debug del codice di incorporamento

Quando si sviluppa una soluzione di analisi incorporata, è possibile che si verifichino errori. In questo caso, è necessario capire perché si è verificato l'errore.

Usare l'evento error per eseguire il debug della soluzione di analisi incorporata e comprendere meglio cosa ha causato gli errori.

Se si verifica un errore che non si è in grado di gestire, è sempre possibile cercare o porre una domanda in Stack Overflow.

Trovare l'errore che si è verificato

Un evento error viene generato quando si verifica un errore. È possibile ascoltare l'evento usando element.on(...)e quindi impostare un gestore eventi.

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

Per altre informazioni sulla gestione degli eventi, vedere Come gestire gli eventi.

L'evento error restituisce un oggetto IError:

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

Ad esempio, quando il token scade, si otterrà l'oggetto errore seguente:

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

Per informazioni sull'aggiornamento del token di accesso, vedere Aggiornare il token di accesso.

Risoluzione dei problemi

Dopo aver acquisito l'oggetto IError, confrontarlo nella Risolvere i problemi dell'applicazione incorporata con l'oggetto IError tabella e individuare le possibili cause dell'errore.

Nota

Esiste una tabella degli errori comuni per gli utenti di Power BI (nota anche come incorporamento per l'organizzazione) e per gli utenti non Di Power BI (noto anche come incorporamento per i clienti).

Eseguire il debug nella console del browser

È anche possibile eseguire semplicemente il debug dell'app nella console del browser. Ad esempio, immettere il frammento di codice seguente dopo aver creato un'istanza di incorporamento:

// 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);
});

Rilevare gli errori delle API

La maggior parte delle API client sono funzioni asincrone che restituiscono un Promise.

Se si usa il modello di async/await, è consigliabile usare try/catch per rilevare un potenziale errore. Per esempio:

try {
    ...

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

Se non si usa il modello di async/await, è possibile usare la funzione catch per rilevare un potenziale errore. Per esempio:

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