Bagikan melalui


Mengesampingkan pesan kesalahan default

Anda bisa menyembunyikan pesan kesalahan default analitik Power BI yang disematkan pada laporan, dan sebaliknya memperlihatkan pesan kesalahan kustom yang sesuai dengan desain aplikasi Anda.

Misalnya, Anda dapat mengganti dialog kesalahan default ini:

Cuplikan layar memperlihatkan dialog kesalahan default analitik tersemat Power BI.

Dengan dialog kesalahan kustom ini:

Cuplikan layar memperlihatkan dialog kesalahan kustom.

Cara mengambil alih kesalahan

Untuk menggunakan pesan kesalahan kustom, pertama-tama sembunyikan pesan kesalahan analitik tersemat Power BI default dengan mengatur properti hideErrors ke di objek konfigurasi analitik tersemat Power BI. Konfigurasi untuk powerbi.embed(element, config) ini juga mencakup pengaturan dan opsi lainnya. Untuk informasi selengkapnya, lihat Mengonfigurasi pengaturan laporan.

let config = {
    type: 'report',
    tokenType: models.TokenType.Embed,
    accessToken: accessToken,
    embedUrl: embedUrl,
    id: embedReportId,
    permissions: permissions,
    settings: {
        hideErrors: true
    }
};

Saat Anda menyembunyikan pesan kesalahan default, dialog kesalahan dan pesan tidak lagi muncul jika terjadi kesalahan. Agar pengguna aplikasi Anda mendapatkan respons yang konsisten dan bermanfaat saat kesalahan terjadi, Anda bertanggung jawab untuk menangani peristiwa kesalahan.

Untuk menangani kesalahan, pertama-tama dapatkan kesalahan dengan mendengarkan peristiwa error:

report.off("error");
report.on("error", function(event) {
    // Handle errors
});

Properti level pada antarmuka IError memungkinkan Anda menentukan jenis kesalahan mana yang akan ditangani:

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

enum TraceType {
    Information = 0,
    Verbose = 1,
    Warning = 2,
    Error = 3,
    ExpectedError = 4,
    UnexpectedError = 5,
    Fatal = 6,
}

Fatal kesalahan adalah jenis kesalahan yang paling serius, karena membuat laporan tidak responsif. Pastikan untuk menangani kesalahan Fatal untuk mencegah pengguna akhir menghadapi laporan yang tidak responsif atau rusak tanpa pesan kesalahan.

Contoh

Contoh kode berikut menunjukkan bagaimana Anda dapat mengambil alih kesalahan dengan mendengarkan dan menangani peristiwa error. Contoh tidak menampilkan fungsi newAccessToken atau error.detailedMessage. Terapkan fungsi Anda sendiri jika ditunjukkan.

// Embed the loadConfiguration that hides the default errors.
let config = {
    type: 'report',
    tokenType: models.TokenType.Embed,
    accessToken: accessToken,
    embedUrl: embedUrl,
    id: embedReportId,
    permissions: permissions,
    settings: {
        hideErrors: true
    }
};

// Get a reference to the embedded report HTML element.
let embedContainer = $('#embedContainer')[0];

// Embed the report and display it within the div container.
let report = powerbi.embed(embedContainer, config);

// Set report.off to remove any pre-existing error event handler.
report.off("error");

// Set report.on to add the new error event handler.
report.on("error", function(event) {
    const error = event.detail;

    // If the error level isn't Fatal, log the error and continue.
    if (error.level !== models.TraceType.Fatal) {
        console.error(error);
        return;
    }

    // If the Fatal error is TokenExpired, refresh the token.
    if (error.message === models.CommonErrorCode.TokenExpired) {
        // Implement your own function here.
        let newAccessToken = refreshToken();
        
        // Set the new access token.
        report.setAccessToken(newAccessToken);
    } else {
        // If the error isn't TokenExpired, show the custom
        // dialog with detailed error message in the iframe.
        // Implement your own function here.
        showError(error.detailedMessage);
    }
});