Κοινή χρήση μέσω


API λήψης αρχείου

Το API λήψης αρχείων επιτρέπει στους χρήστες να κάνουν λήψη δεδομένων από μια προσαρμοσμένη απεικόνιση σε ένα αρχείο στη συσκευή αποθήκευσής τους. Η λήψη μιας απεικόνισης απαιτεί συγκατάθεση χρήστη και δικαιώματα διαχειριστή που παρέχονται στον καθολικό διακόπτη διαχειριστή. Αυτή η ρύθμιση είναι ξεχωριστή και δεν επηρεάζεται από τους περιορισμούς λήψης που εφαρμόζονται στις ρυθμίσεις μισθωτή εξαγωγής και κοινής χρήσης του οργανισμού σας.

Στιγμιότυπο οθόνης της ρύθμισης διαχείρισης που επιτρέπει τη λήψη προσαρμοσμένων απεικονίσεων.

Σημείωμα

Το API λήψης αρχείου έχει τρεις μεθόδους:

  • exportVisualsContent είναι διαθέσιμο από την έκδοση API 4.5
  • status Το είναι διαθέσιμο από την έκδοση API 4.6.
  • exportVisualsContentExtended Το είναι διαθέσιμο από την έκδοση API 5.3.
  • Για να μάθετε ποια έκδοση χρησιμοποιείτε, ελέγξτε το apiVersion στο αρχείο pbiviz.json .

Χρησιμοποιήστε το API λήψης αρχείων για εξαγωγή σε αρχεία των ακόλουθων τύπων:

  • .txt
  • .Csv
  • .Json
  • .tmplt
  • .xml
  • .pdf
  • .xlsx

Πριν ξεκινήσει η λήψη, εμφανίζεται ένα παράθυρο που ζητά επιβεβαίωση ότι η απεικόνιση προέρχεται από μια αξιόπιστη προέλευση.

Στιγμιότυπο οθόνης που σας ζητά να επιβεβαιώσετε τη λήψη μόνο εάν προέρχεται από μια αξιόπιστη προέλευση.

Τρόπος χρήσης του API λήψης αρχείου

Για να χρησιμοποιήσετε το API λήψης αρχείου, προσθέστε μια δήλωση στον πίνακα δικαιωμάτων στις δυνατότητες απεικόνισης.

Το API λήψης αρχείου έχει τρεις μεθόδους:

Η διαφορά μεταξύ των δύο μεθόδων είναι η τιμή επιστροφής.

Η status μέθοδος

Η μέθοδος κατάστασης επιστρέφει την κατάσταση του API λήψης αρχείου:

  • PrivilegeStatus.DisabledBy Διαχείριση: ο διακόπτης διαχειριστή μισθωτή είναι απενεργοποιημένος
  • PrivilegeStatus.NotDeclared: η απεικόνιση δεν διαθέτει δήλωση για τον τοπικό χώρο αποθήκευσης στον πίνακα δικαιωμάτων
  • PrivilegeStatus.NotSupported: το API δεν υποστηρίζεται. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Περιορισμοί .
  • PrivilegeStatus.Allowed: Το API υποστηρίζεται και επιτρέπεται.

Η exportVisualsContent μέθοδος

Η exportVisualsContent μέθοδος έχει τέσσερις παραμέτρους:

  • content: συμβολοσειρά
  • όνομα αρχείου: συμβολοσειρά
  • fileType: string - Κατά την εξαγωγή σε ένα αρχείο .pdf ή .xlsx , η fileType παράμετρος θα πρέπει να είναι base64
  • fileDescription: συμβολοσειρά

Αυτή η μέθοδος επιστρέφει μια υπόσχεση που θα επιλυθεί για μια δυαδική τιμή.

Η exportVisualsContentExtended μέθοδος

Η exportVisualsContentExtended μέθοδος έχει επίσης τέσσερις παραμέτρους:

  • content: συμβολοσειρά
  • όνομα αρχείου: συμβολοσειρά
  • fileType: string - Κατά την εξαγωγή σε ένα αρχείο .pdf ή .xlsx , η fileType παράμετρος θα πρέπει να είναι base64
  • fileDescription: συμβολοσειρά

Αυτή η μέθοδος επιστρέφει μια υπόσχεση, η οποία θα επιλυθεί με ένα αποτέλεσμα τύπου ExportContentResultInfo που περιέχει τις ακόλουθες παραμέτρους:

  • downloadCompleted – εάν η λήψη ολοκληρώθηκε με επιτυχία.
  • filename – το όνομα του αρχείου που έχει εξαχθεί.

Παράδειγμα: API λήψης αρχείου

Ακολουθεί ένα παράδειγμα για το πώς μπορείτε να κάνετε λήψη του περιεχομένου μιας προσαρμοσμένης απεικόνισης σε ένα αρχείο Excel και ένα αρχείο κειμένου.

import IDownloadService = powerbi.extensibility.IDownloadService;
...

export class Visual implements IVisual {
    ...
    private downloadService: IDownloadService;
    ...

    constructor(options: VisualConstructorOptions) {
        this.downloadService = options.host.downloadService;
         ...

        const downloadBtn: HTMLElement = document.createElement("button");
        downloadBtn.onclick = () => {
            let contentXlsx: string = ...;//content in base64
            let contentTxt: string = ...;
            this.downloadService.exportVisualsContent(contentTxt, "mytxt.txt", "txt", "txt file").then((result) => {
                if (result) {
                    //do something
                }
            }).catch(() => {
                //handle error
            });

            this.downloadService.exportVisualsContent(contentXlsx, "myfile.xlsx", "base64", "xlsx file").then((result) => {
                if (result) {
                    //do something
                }
            }).catch(() => {
                //handle error
            });

            this.downloadService.exportVisualsContentExtended(contentXlsx, "myfile.xlsx", "base64", "xlsx file").then((result) => {
                if (result.downloadCompleted) {
                    //do something
                    console.log(result.fileName);
                }
            }).catch(() => {
                //handle error
            });
        };

        // if you are using API version > 4.6.0
        downloadBtn.onclick = async () => {
            try {
                const status: powerbi.PrivilegeStatus = await this.downloadService.exportStatus();
                if (status === powerbi.PrivilegeStatus.Allowed) {
                    const result = await this.downloadService.exportVisualsContent('aaaaa','a.txt', 'text/plain', 'aa');
                    // handle result
                } else {
                    // handle if the API is not allowed
                }

            } catch (err) {
                //handle error
            }
        }
    }
}

Ζητήματα προς εξέταση και περιορισμοί

  • Το API υποστηρίζεται μόνο στο Υπηρεσία Power BI και Power BI Desktop
  • Το όριο μεγέθους για ένα ληφθέντα αρχείο είναι 30 MB.
  • Αυτό το API είναι ένα προνομιακό API.