Sdílet prostřednictvím


Řešení potíží a ladění kódu pro vložení

Při vývoji řešení vložených analýz může dorazit na chyby. Když k tomu dojde, musíte zjistit, proč k chybě došlo.

Pomocí události error můžete ladit řešení vložených analytických možností a lépe porozumět tomu, co způsobilo vaše chyby.

Pokud se zobrazí chyba, kterou neznáte, můžete kdykoli vyhledat nebo položit otázku na Stack Overflow.

Zjištění chyby, ke které došlo

Událost error se aktivuje, když dojde k chybě. Událost můžete naslouchat pomocí element.on(...)a pak nastavit obslužnou rutinu události.

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

Další informace o zpracování událostí naleznete v tématu Zpracování událostí.

Událost error vrátí objekt IError:

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í problémů

Jakmile objekt IError získáte, porovnejte ho v Řešení potíží s vloženou aplikací pomocí objektu IError tabulky 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í provaší organizace) a pro uživatele, kteří nejsou power BI (označuje se také jako vkládání 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 vytvoření instance pro vložení 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ích funkcí, které vracípříslibu .

Pokud používáte vzor async/await, měli byste k zachycení potenciální chyby použít try/catch. Například:

try {
    ...

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

Pokud nepoužíváte vzor async/await, můžete pomocí funkce catch zachytit potenciální chybu. Například:

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