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 => {
...
});