Partager via


Résoudre les problèmes et déboguer votre code d’incorporation

Lors du développement d’une solution d’analytique incorporée, vous pouvez rencontrer des erreurs. Lorsque cela se produit, vous devez déterminer pourquoi l’erreur s’est produite.

Utilisez l’événement error pour déboguer votre solution d’analytique incorporée et mieux comprendre ce qui a provoqué vos erreurs.

S’il existe une erreur que vous ne savez pas gérer, vous pouvez toujours effectuer une recherche ou poser une question sur Stack Overflow.

Rechercher l’erreur qui s’est produite

Un événement error se déclenche lorsqu’une erreur se produit. Vous pouvez écouter l’événement à l’aide de element.on(...), puis définir un gestionnaire d’événements.

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

Pour plus d’informations sur la gestion des événements, consultez Comment gérer les événements.

L’événement error retourne un objet IError :

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

Par exemple, lorsque le jeton expire, vous obtenez l’objet d’erreur suivant :

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

Pour plus d’informations sur l’actualisation du jeton d’accès, consultez Actualiser le jeton d’accès.

Dépannage

Après avoir acquis l’objet IError, comparez-le dans le Résoudre les problèmes de votre application incorporée avec la table objet IError et recherchez la ou les causes possibles de l’échec.

Note

Il existe une table d’erreurs courante pour les utilisateurs de Power BI (également appelée incorporation pour votre organisation) et pour les utilisateurs autres que Power BI (également appelée incorporation pour vos clients).

Déboguer dans la console du navigateur

Vous pouvez également simplement déboguer votre application dans la console du navigateur. Par exemple, entrez l’extrait de code suivant après avoir une instance incorporée :

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

Intercepter les erreurs d’API

La plupart des API clientes sont fonctions asynchrones qui retournent une Promise.

Si vous utilisez le modèle async/await, vous devez utiliser try/catch pour intercepter des erreurs potentielles. Par exemple:

try {
    ...

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

Si vous n’utilisez pas le modèle async/await, vous pouvez utiliser la fonction catch pour intercepter l’erreur potentielle. Par exemple:

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