Bagikan melalui


API pengunduhan file

API unduhan file memungkinkan pengguna mengunduh data dari visual kustom ke dalam file di perangkat penyimpanan mereka. Mengunduh visual memerlukan persetujuan pengguna dan izin admin yang disediakan dalam sakelar global admin. Pengaturan ini terpisah dari dan tidak terpengaruh oleh pembatasan unduhan yang diterapkan dalam pengaturan penyewa ekspor dan berbagi organisasi Anda.

Cuplikan layar pengaturan admin yang mengaktifkan unduhan visual kustom.

Catatan

API unduhan file memiliki tiga metode:

Gunakan API unduhan file untuk mengekspor ke file dari jenis berikut:

  • .txt
  • .csv
  • .json
  • .tmplt
  • .xml
  • .pdf
  • .xlsx

Sebelum unduhan dimulai, jendela muncul meminta untuk mengonfirmasi bahwa visual berasal dari sumber tepercaya.

Cuplikan layar yang meminta untuk mengonfirmasi unduhan hanya jika berasal dari sumber tepercaya.

Cara menggunakan API unduhan file

Untuk menggunakan API unduhan file, tambahkan deklarasi ke array hak istimewa dalam kemampuan visual.

API unduhan file memiliki tiga metode:

Perbedaan antara kedua metode adalah nilai pengembalian.

Metode status

Metode status mengembalikan status API unduhan file:

  • PrivilegeStatus.DisabledByAdmin: sakelar admin penyewa nonaktif
  • PrivilegeStatus.NotDeclared: visual tidak memiliki deklarasi untuk penyimpanan lokal dalam array hak istimewa
  • PrivilegeStatus.NotSupported: API tidak didukung. Lihat batasan untuk informasi selengkapnya.
  • PrivilegeStatus.Allowed: API didukung dan diizinkan.

Metode exportVisualsContent

Metode exportVisualsContent membutuhkan dua parameter:

  • konten: string
  • nama file: string
  • fileType: string - Saat mengekspor ke file .pdf atau .xlsx , fileType parameter harus base64
  • fileDescription: string

Metode ini mengembalikan janji yang akan diselesaikan untuk nilai Boolean.

Metode exportVisualsContentExtended

Metode ini exportVisualsContentExtended juga memiliki empat parameter:

  • konten: string
  • nama file: string
  • fileType: string - Saat mengekspor ke file .pdf atau .xlsx , fileType parameter harus base64
  • fileDescription: string

Metode ini mengembalikan janji, yang akan diselesaikan dengan hasil jenis ExportContentResultInfo yang berisi parameter berikut:

  • downloadCompleted – jika pengunduhan berhasil diselesaikan.
  • filename – nama file yang diekspor.

Contoh: API pengunduhan file

Berikut adalah contoh cara mengunduh konten visual kustom ke dalam file excel dan file teks.

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
            }
        }
    }
}

Pertimbangan dan batasan

  • API hanya didukung di desktop layanan Power BI dan Power BI
  • Batas ukuran untuk file yang diunduh adalah 30 MB.
  • API ini adalah API istimewa.