Feilsøke egendefinerte visualobjekter i Power BI

Denne artikkelen beskriver noen grunnleggende feilsøkingsprosedyrer du kan bruke når du utvikler visualobjektet. Når du har lest denne artikkelen, skal du kunne bruke følgende metoder til å feilsøke visualobjektet:

Sette inn breakpoints

Hele JavaScript-visualobjektet lastes inn på nytt hver gang visualobjektet oppdateres. Derfor vil eventuelle breakpoints du legger til, gå tapt når feilsøkingsvisualobjektet oppdateres. Bruk setninger i koden som en midlertidig løsning debugger . Det anbefales å deaktivere automatisk innlasting mens du bruker debugger koden. Her er et eksempel på hvordan du bruker en debugger setning i oppdateringsmetoden.

public update(options: VisualUpdateOptions) {
    console.log('Visual update', options);
    debugger;
    this.target.innerHTML = `<p>Update count: <em>${(this.updateCount</em></p>`;
}

Fange unntak

Når du arbeider med visualobjektet, vil du legge merke til at alle feil forbrukes av Power Bi-tjeneste. Dette er en tilsiktet funksjon i Power BI. Det hindrer at visualobjekter som oppfører seg dårlig, forårsaker at hele appen blir ustabil.

Som en midlertidig løsning kan du legge til kode for å fange opp og logge unntakene dine, eller angi feilsøkingsprogrammet for å bryte opp fangede unntak.

Loggunntak med en dekoratør

Hvis du vil logge unntak i Power BI-visualobjektet, må du definere en dekoratør for unntakslogging. Hvis du vil gjøre dette, legger du til følgende kode i visualobjektet:

export function logExceptions(): MethodDecorator {
    return function (target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor<any>): TypedPropertyDescriptor<any> {
        return {
            value: function () {
                try {
                    return descriptor.value.apply(this, arguments);
                } catch (e) {
                    console.error(e);
                    throw e;
                }
            }
        }
    }
}

Du kan bruke denne dekoratøren på en hvilken som helst funksjon for å se feillogging som følger.

@logExceptions()
public update(options: VisualUpdateOptions) {

Bryt ved unntak

Du kan også angi at nettleseren skal bryte på oppfanget unntak. Brudd stopper kjøring av kode uansett hvor en feil oppstår, og lar deg feilsøke derfra.

  1. Åpne utviklerverktøy (F12).

  2. Gå til Kilder-fanen.

  3. Velg ikonet Stans midlertidig på unntak (stopptegn med et pausesymbol ).

  4. Velg Stans midlertidig ved oppfanget unntak.

    Screenshot shows the Debugger tab with Break on all exceptions selected.

Har du flere spørsmål? Prøv Power BI-fellesskap