Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir görselin sertifikalanması için işleme olaylarını içermesi gerekir. Bu olaylar dinleyicilerin (öncelikli olarak PDF'ye aktar ve PowerPoint'e aktar) görselin ne zaman işlendiğini ve dışarı aktarma için hazır olduğunu bilmesini sağlar.
Önemli
Verileri dışarı aktaran tüm görseller (örneğin, bir PowerPoint veya .pdf dosyası) dışarı aktarma işleminin görsel işleme tamamlanmadan başlamadığından emin olmak için işleme olayları içermelidir.
İşleme olayları API'si işleme sırasında çağrılacak üç yöntemden oluşur:
renderingStarted: İşlemenin başlatıldığını belirtmek için bu yöntemi çağır. İşleme işlemi burada başladığından bu yöntemi her zaman güncelleştirme yönteminizin ilk satırı olarak çağırın.renderingFinished: İşleme başarıyla tamamlandığında, dinleyicilere görselin görüntüsünün dışarı aktarma için hazır olduğunu bildirmek için bu yöntemi çağırın. Bu çağrı, görsel güncelleştirildiğinde çalıştırılacak son kod satırı olmalıdır. Genellikle güncelleştirme yönteminin son satırıdır ancak her zaman değildir.renderingFailed: İşleme sırasında bir sorun oluşursa dinleyicilere işlemenin tamamlanmadığını bildirmek için bu yöntemi çağırabilirsiniz. Hatanın nedenini sağlamak için isteğe bağlı bir dize geçirebilirsiniz.
Not
İşleme olayları , görsellerin sertifikasyonu için bir gereksinimdir. Bunlar olmadan görseliniz İş Ortağı Merkezi tarafından yayımlanmak üzere onaylanmayacaktır. Daha fazla bilgi için bkz . sertifika gereksinimleri.
İşleme olayları API'sini kullanma
İşleme yöntemlerini çağırmak için önce türünü içeri aktarın IVisualEventService .
Dosyanıza
visual.tsaşağıdaki içeri aktarmayı ekleyin:import IVisualEventService = powerbi.extensibility.IVisualEventService;IVisualsınıfında özel bir alan ekleyin:private events: IVisualEventService;constructorsınıfının yöntemindeIVisualalanını başlatın:this.events = options.host.eventService;
Artık güncelleştirme yönteminizde uygun olan yerlerde , this.events.renderingFinished(options);ve this.events.renderingFailed(options); çağırabilirsinizthis.events.renderingStarted(options);.
Olay yaşam döngüsünü işleme
Her update() döngüde şu kuralları izleyin:
- İşleme başladığında çağrısı
renderingStarted. - Bu döngü için tam olarak bir tamamlama yöntemi çağırın:
-
renderingFinishedişleme başarılı olduğunda veya -
renderingFailedişleme başarısız olduğunda.
-
- Zaman uyumsuz işleme için yalnızca işleme tamamlandıktan sonra çağrısı
renderingFinished.
Önemli
Tamamlanma sinyali vermeden yöntemin çıkışına update() izin vermeyin. çağrısı renderingStartedyaptıktan sonra, her zaman veya renderingFailedöğesini çağırmalısınızrenderingFinished.
Kod uygulama desenleri
Hata işleme ile zaman uyumlu güncelleştirme
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;
}
}
Hata işleme ile zaman uyumsuz güncelleştirme
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;
}
}
ile promise zinciri .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;
});
}