Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Als u een visual wilt laten certificeren, moet dit renderinggebeurtenissen bevatten. Met deze gebeurtenissen kunnen listeners (voornamelijk exporteren naar PDF en exporteren naar PowerPoint) weten wanneer de visual wordt weergegeven en wanneer deze gereed is voor export.
Belangrijk
Elke visual die gegevens exporteert (bijvoorbeeld naar een PowerPoint- of .pdf-bestand ) moet rendering-gebeurtenissen bevatten om ervoor te zorgen dat de export niet begint voordat de visual klaar is met renderen.
De API voor renderingsevenementen bestaat uit drie methoden om aan te roepen tijdens rendering:
renderingStarted: Roep deze methode aan om aan te geven dat de rendering is gestart. Roep deze methode altijd aan als de eerste regel van uw updatemethode, omdat daar het renderingproces begint.renderingFinished: Roep deze methode aan wanneer het weergeven is voltooid, om listeners te informeren dat de afbeelding van de visual gereed is voor export. Deze aanroep moet de laatste coderegel zijn die wordt uitgevoerd wanneer de visual wordt bijgewerkt. Dit is meestal, maar niet altijd, de laatste regel van de updatemethode.renderingFailed: Roep deze methode aan als er een probleem optreedt tijdens het weergeven, om listeners op de hoogte te stellen dat de rendering niet is voltooid. U kunt een optionele tekenreeks doorgeven om een reden voor de fout op te geven.
Notitie
Rendering-gebeurtenissen zijn een vereiste voor certificering van visuals. Zonder deze wordt uw visual niet goedgekeurd door het Partnercentrum voor publicatie. Zie certificeringsvereisten voor meer informatie.
De API voor rendering-gebeurtenissen gebruiken
Als u de renderingmethoden wilt aanroepen, importeert u eerst het IVisualEventService type.
Voeg in het
visual.tsbestand de volgende import toe:import IVisualEventService = powerbi.extensibility.IVisualEventService;Voeg in de
IVisualklasse een privéveld toe:private events: IVisualEventService;Initialiseer het veld in de
constructormethode van deIVisualklasse:this.events = options.host.eventService;
U kunt nu aanroepen this.events.renderingStarted(options);en this.events.renderingFinished(options);this.events.renderingFailed(options); waar nodig in uw updatemethode.
Levenscyclus van rendering-gebeurtenissen
Volg deze regels in elke update() cyclus:
- Aanroepen
renderingStartedwanneer de rendering begint. - Roep precies één voltooiingsmethode aan voor die cyclus:
-
renderingFinishedwanneer het weergeven slaagt, of -
renderingFailedwanneer het weergeven mislukt.
-
- Voor asynchrone rendering roept u
renderingFinishedalleen aan nadat de rendering is voltooid.
Belangrijk
Laat de update() methode niet afsluiten zonder signaleringsvoltooiing. Nadat u hebt gebeld renderingStarted, moet u altijd bellen renderingFinished of renderingFailed.
Code-implementatiepatronen
Synchrone update met foutafhandeling
public update(options: VisualUpdateOptions): void {
this.host.eventService.renderingStarted(options);
try {
this.renderView(options); // visual rendering logic
this.host.eventService.renderingFinished(options);
} catch (error) {
this.host.eventService.renderingFailed(options, String(error));
throw error;
}
}
Asynchrone update met foutafhandeling
public async update(options: VisualUpdateOptions): Promise<void> {
this.host.eventService.renderingStarted(options);
try {
await this.renderAsync(options); // visual rendering logic
this.host.eventService.renderingFinished(options);
} catch (error) {
this.host.eventService.renderingFailed(options, String(error));
throw error;
}
}
Promise-keten met .then().catch()
public update(options: VisualUpdateOptions): void {
this.host.eventService.renderingStarted(options);
this.renderAsync(options) // visual rendering logic
.then(() => {
this.host.eventService.renderingFinished(options);
})
.catch((error) => {
this.host.eventService.renderingFailed(options, String(error));
throw error;
});
}