Řešení potíží a ladění kódu pro vložení
Při vývoji integrovaného analytického řešení může dojít k chybám. V takovém případě je potřeba zjistit, proč k chybě došlo.
error
Pomocí události můžete ladit vložené analytické řešení a lépe porozumět tomu, co způsobilo vaše chyby.
Pokud se zobrazí chyba, kterou nevíte, jak zpracovat, můžete vždy vyhledat nebo položit otázku na Stack Overflow.
Zjištění chyby
Událost error
se aktivuje, když dojde k chybě. Událost můžete poslouchat pomocí element.on(...)
a pak nastavit obslužnou rutinu události.
report.on('error', (errorObject) => {
...
});
Událost error
vrátí IError
objekt:
interface IError {
message: string;
detailedMessage?: string;
errorCode?: string;
level?: TraceType;
technicalDetails?: ITechnicalDetails;
}
Když například vyprší platnost tokenu, zobrazí se následující objekt chyby:
{
"message": "TokenExpired",
"detailedMessage": "Access token has expired, resubmit with a new access token",
"errorCode": "403"
}
Informace o aktualizaci přístupového tokenu najdete v tématu Aktualizace přístupového tokenu.
Řešení potíží
Jakmile objekt získáte IError
, porovnejte ho v části Řešení potíží s vloženou aplikací s tabulkou objektů IError a vyhledejte možné příčiny selhání.
Poznámka
Tabulka běžných chybpro uživatele Power BI (označovaná také jako vložení pro vaši organizaci) a pro uživatele mimo Power BI (označovanou také jako vložení pro vaše zákazníky).
Ladění v konzole prohlížeče
Aplikaci můžete také jednoduše ladit v konzole prohlížeče. Například po vložení instance zadejte následující fragment kódu:
// 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);
});
Zachycení chyb rozhraní API
Většina klientských rozhraní API je asynchronní funkce, které vracejí příslib.
Pokud používáte async
/await
vzor, měli byste použít try
/catch
k zachycení potenciální chyby. Příklad:
try {
...
// Set a new access token
await report.setAccessToken(newAccessToken.token);
} catch (e) {
...
}
Pokud vzor nepoužíváte async
/await
, můžete pomocí catch
funkce zachytit potenciální chybu. Příklad:
// Set a new access token
report.setAccessToken(newAccessToken.token).catch(e => {
...
});