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. Dans ce cas, 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 error événement se déclenche lorsqu’une erreur se produit. Vous pouvez écouter l’événement à l’aide element.on(...)de , puis définir un gestionnaire d’événements.

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

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

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

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.

Résolution des problèmes

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

Notes

Il existe une table d’erreurs courantepour les utilisateurs de Power BI (également appelée incorporation pour votre organisation) et pour les utilisateurs non-Power BI (également appelés 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 d’incorporation :

// 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 des fonctions asynchrones qui retournent une promesse.

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

try {
    ...

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

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

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

Étapes suivantes