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

Další informaceoch

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

Další kroky