Außerkraftsetzen von Standardfehlermeldungen

Sie können die standardmäßigen Fehlermeldungen der Power BI-Eingebetteten Analysen in Berichten ausblenden und stattdessen benutzerdefinierte Fehlermeldungen anzeigen, die ihrem App-Design entsprechen.

Sie können beispielsweise dieses Standardfehlerdialogfeld ersetzen:

Screenshot des Standardfehlerdialogfelds für eingebettete Power BI-Analysen.

Mit diesem benutzerdefinierten Fehlerdialogfeld:

Screenshot eines benutzerdefinierten Fehlerdialogfelds.

Überschreiben von Fehlern

Um benutzerdefinierte Fehlermeldungen zu verwenden, blenden Sie zuerst die standardmäßigen Power BI embedded Analytics-Fehlermeldungen aus, indem Sie die HideErrors-Eigenschafttrue im Power BI-Konfigurationsobjekt für eingebettete Analysen festlegen. Diese Konfiguration enthält powerbi.embed(element, config) auch weitere Einstellungen und Optionen. Weitere Informationen finden Sie unter Konfigurieren von Berichtseinstellungen.

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

Wenn Sie die Standardfehlermeldungen ausblenden, werden Fehlerdialogfelder und Nachrichten nicht mehr angezeigt, wenn Fehler auftreten. Damit die Benutzer Ihrer App konsistente und hilfreiche Antworten erhalten, wenn Fehler auftreten, sind Sie für die Behandlung von Fehlerereignissen verantwortlich.

Um Fehler zu behandeln, rufen Sie zuerst die Fehler ab, indem Sie auf das error Ereignis lauschen:

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

Mit level der Eigenschaft auf der IError-Schnittstelle können Sie angeben, welche Fehlertypen behandelt werden sollen:

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 Fehler sind der schwerwiegendste Fehlertyp, da der Bericht nicht reagiert. Stellen Sie sicher, dass Fehler behandelt Fatal werden, um zu verhindern, dass Endbenutzer nicht mehr reagiert oder fehlerhafte Berichte ohne Fehlermeldung angezeigt werden.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie Sie Fehler außer Kraft setzen können, indem Sie Ereignisse überwachen und behandeln error . Das Beispiel zeigt die newAccessToken Funktionen error.detailedMessage nicht an. Implementieren Sie ihre eigenen Funktionen, wo angegeben.

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

Nächste Schritte