Bagikan melalui


Memecahkan masalah dan men-debug kode penyematan Anda

Saat mengembangkan solusi analitik yang disematkan, Anda mungkin mengalami kesalahan. Ketika ini terjadi, Anda perlu mencari tahu mengapa kesalahan terjadi.

Gunakan peristiwa untuk error men-debug solusi analitik yang disematkan dan lebih memahami apa yang menyebabkan kesalahan Anda.

Jika ada kesalahan yang tidak Anda ketahui cara menanganinya, Anda selalu dapat mencari atau mengajukan pertanyaan di Stack Overflow.

Temukan kesalahan apa yang terjadi

Peristiwa error terjadi saat terjadi kesalahan. Anda dapat mendengarkan acara dengan menggunakan element.on(...), lalu mengatur penanganan aktivitas.

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

Untuk informasi selengkapnya tentang menangani peristiwa, lihat Cara menangani peristiwa.

Peristiwa error mengembalikan IError objek:

interface IError {
    message: string;
    detailedMessage?: string;
    errorCode?: string;
    level?: TraceType;
    technicalDetails?: ITechnicalDetails;
}

Misalnya, ketika token kedaluwarsa, Anda akan mendapatkan objek kesalahan berikut:

{
    "message": "TokenExpired",
    "detailedMessage": "Access token has expired, resubmit with a new access token",
    "errorCode": "403"
}

Untuk informasi tentang me-refresh token akses, lihat Merefresh token akses.

Pemecahan Masalah

Setelah Anda memperoleh IError objek, bandingkan cari di Memecahkan masalah aplikasi tersemat Anda dengan tabel objek IError , dan temukan kemungkinan penyebab kegagalan.

Catatan

Ada tabel kesalahan umumuntuk pengguna Power BI (juga dikenal sebagai disematkan untuk organisasi Anda), dan untuk pengguna non-Power BI (juga dikenal sebagai disematkan untuk pelanggan Anda).

Debug di konsol browser

Anda juga dapat men-debug aplikasi di konsol browser. Misalnya, masukkan cuplikan kode berikut setelah Anda memiliki instans semat:

// 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);
});

Menangkap kesalahan API

Sebagian besar API Klien adalah fungsi asinkron yang mengembalikan Promise.

Jika Anda menggunakan pola , async/await Anda harus menggunakan try/catch untuk menangkap potensi kesalahan. Contohnya:

try {
    ...

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

Jika Anda tidak menggunakan async/await pola , Anda dapat menggunakan catch fungsi untuk menangkap potensi kesalahan. Contohnya:

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

Langkah berikutnya