Συμβάντα "απόδοσης" σε απεικονίσεις Power BI
Για να πιστοποιήσετε μια απεικόνιση, πρέπει να περιλαμβάνει συμβάντα απόδοσης. Αυτά τα συμβάντα επιτρέπουν στους ακροατές (κυρίως, την εξαγωγή σε PDF και την εξαγωγή στο PowerPoint) να γνωρίζουν πότε αποδίδεται η απεικόνιση και πότε είναι έτοιμη για εξαγωγή.
Σημαντικό
Οποιαδήποτε απεικόνιση που εξάγει δεδομένα (για παράδειγμα, σε ένα αρχείο PowerPoint ή .pdf ) πρέπει να περιέχει συμβάντα απόδοσης για να εξασφαλίσει ότι η εξαγωγή δεν ξεκινά πριν ολοκληρωθεί η απόδοση της απεικόνισης.
Τα συμβάντα απόδοσης API αποτελούνται από τρεις μεθόδους που θα πρέπει να καλούνται κατά την απόδοση:
renderingStarted
: Ο κώδικας απεικόνισης Power BI καλεί τηrenderingStarted
μέθοδο για να υποδείξει ότι ξεκίνησε η διαδικασία απόδοσης. Αυτή η μέθοδος θα πρέπει να είναι πάντα η πρώτη γραμμή της μεθόδου ενημέρωσης, καθώς σε αυτό το σημείο ξεκινά η διαδικασία απόδοσης.renderingFinished
: Όταν η απόδοση ολοκληρωθεί με επιτυχία, ο κώδικας απεικόνισης Power BI καλεί τηrenderingFinished
μέθοδο για να ενημερώσει τις ακροατές ότι η εικόνα της απεικόνισης είναι έτοιμη για εξαγωγή. Αυτή η μέθοδος πρέπει να είναι η τελευταία γραμμή κώδικα που εκτελείται όταν ενημερώνεται η απεικόνιση. Συνήθως, αλλά όχι πάντα, είναι η τελευταία γραμμή της μεθόδου ενημέρωσης.renderingFailed
: Εάν παρουσιαστεί κάποιο πρόβλημα κατά τη διάρκεια της διαδικασίας απόδοσης, η απεικόνιση Power BI δεν αποδίδεται με επιτυχία. Για να ειδοποιηθούν οι ακροατές ότι η διαδικασία απόδοσης δεν ολοκληρώθηκε, ο κώδικας απεικόνισης Power BI θα πρέπει να καλέσει τηrenderingFailed
μέθοδο . Αυτή η μέθοδος παρέχει επίσης μια προαιρετική συμβολοσειρά για να παρέχει μια αιτία για την αποτυχία.
Σημείωμα
Τα συμβάντα απόδοσης είναι απαίτηση για την πιστοποίηση απεικονίσεων. Χωρίς αυτές, η απεικόνισή σας δεν θα εγκριθεί από το Κέντρο συνεργατών για δημοσίευση. Για περισσότερες πληροφορίες, ανατρέξτε στις απαιτήσεις πιστοποίησης.
Τρόπος χρήσης του API συμβάντων απόδοσης
Για να καλέσετε τις μεθόδους απόδοσης, πρέπει πρώτα να τις εισαγάγετε από την IVisualEventService.
Στο αρχείο σας
visual.ts
, συμπεριλάβετε τη γραμμή:import IVisualEventService = powerbi.extensibility.IVisualEventService;
IVisual
Στην κλάση συμπεριλάβετε τη γραμμή:private events: IVisualEventService;
constructor
Στη μέθοδο της κλάσηςIVisual
this.events = options.host.eventService;
Τώρα, μπορείτε να καλέσετε τις this.events.renderingStarted(options);
μεθόδους , this.events.renderingFinished(options);
και this.events.renderingFailed(options);
, κατά περίπτωση, στη μέθοδο update .
Παράδειγμα 1: Απεικόνιση χωρίς κινήσεις
Ακολουθεί ένα παράδειγμα μιας απλής απεικόνισης που χρησιμοποιεί το API απόδοσης συμβάντων .
export class Visual implements IVisual {
...
private events: IVisualEventService;
...
constructor(options: VisualConstructorOptions) {
...
this.events = options.host.eventService;
...
}
public update(options: VisualUpdateOptions) {
this.events.renderingStarted(options);
...
this.events.renderingFinished(options);
}
Παράδειγμα 2: Απεικόνιση με κινήσεις
Εάν η απεικόνιση έχει κινούμενες εικόνες ή ασύγχρονες συναρτήσεις για την απόδοση, η renderingFinished
μέθοδος θα πρέπει να κληθεί μετά την κίνηση ή μέσα σε ασύγχρονη συνάρτηση, ακόμα και αν δεν είναι η τελευταία γραμμή της μεθόδου ενημέρωσης .
export class Visual implements IVisual {
...
private events: IVisualEventService;
private element: HTMLElement;
...
constructor(options: VisualConstructorOptions) {
...
this.events = options.host.eventService;
this.element = options.element;
...
}
public update(options: VisualUpdateOptions) {
this.events.renderingStarted(options);
...
// Learn more at https://github.com/d3/d3-transition/blob/master/README.md#transition_end
d3.select(this.element).transition().duration(100).style("opacity","0").end().then(() => {
// renderingFinished called after transition end
this.events.renderingFinished(options);
});
}