Udostępnij za pośrednictwem


Interfejs API pobierania plików

Interfejs API pobierania plików umożliwia użytkownikom pobieranie danych z wizualizacji niestandardowej do pliku na urządzeniu magazynowym. Pobranie wizualizacji wymaga zgody użytkownika i uprawnienia administratora udostępnionego w przełączniku globalnym administratora. To ustawienie jest oddzielone od ograniczeń pobierania zastosowanych w ustawieniach eksportowania i udostępniania dzierżawy w organizacji.

Zrzut ekranu przedstawiający ustawienie administratora umożliwiające pobieranie wizualizacji niestandardowych.

Uwaga

Interfejs API pobierania plików ma trzy metody:

  • exportVisualsContent jest dostępny z interfejsu API w wersji 4.5
  • status jest dostępny w wersji 4.6 interfejsu API.
  • exportVisualsContentExtended jest dostępny w wersji 5.3 interfejsu API.
  • Aby dowiedzieć się, której wersji używasz, sprawdź apiVersion plik pbiviz.json .

Użyj interfejsu API pobierania plików, aby wyeksportować do plików następujących typów:

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

Przed rozpoczęciem pobierania zostanie wyświetlone okno z prośbą o potwierdzenie, że wizualizacja pochodzi z zaufanego źródła.

Zrzut ekranu z prośbą o potwierdzenie pobrania tylko wtedy, gdy pochodzi z zaufanego źródła.

Jak używać interfejsu API pobierania plików

Aby użyć interfejsu API pobierania plików, dodaj deklarację do tablicy uprawnień w funkcjach wizualizacji.

Interfejs API pobierania plików ma trzy metody:

Różnica między dwiema metodami jest wartością zwracaną.

Metoda status

Metoda status zwraca stan interfejsu API pobierania pliku:

  • PrivilegeStatus.DisabledBy Administracja: przełącznik administratora dzierżawy jest wyłączony
  • PrivilegeStatus.NotDeclared: wizualizacja nie ma deklaracji dla magazynu lokalnego w tablicy uprawnień
  • PrivilegeStatus.NotSupported: interfejs API nie jest obsługiwany. Aby uzyskać więcej informacji, zobacz ograniczenia .
  • PrivilegeStatus.Allowed: interfejs API jest obsługiwany i dozwolony.

Metoda exportVisualsContent

Metoda exportVisualsContent ma cztery parametry:

  • zawartość: ciąg
  • nazwa pliku: ciąg
  • fileType: ciąg — podczas eksportowania do pliku fileType .pdf lub .xlsx parametr powinien mieć wartośćbase64
  • fileDescription: ciąg

Ta metoda zwraca obietnicę, która zostanie rozpoznana dla wartości logicznej.

Metoda exportVisualsContentExtended

Metoda exportVisualsContentExtended ma również cztery parametry:

  • zawartość: ciąg
  • nazwa pliku: ciąg
  • fileType: ciąg — podczas eksportowania do pliku fileType .pdf lub .xlsx parametr powinien mieć wartośćbase64
  • fileDescription: ciąg

Ta metoda zwraca obietnicę, która zostanie rozpoznana z wynikiem typu ExportContentResultInfo zawierającego następujące parametry:

  • downloadCompleted — jeśli pobieranie zostało ukończone pomyślnie.
  • nazwa pliku — wyeksportowana nazwa pliku.

Przykład: interfejs API pobierania plików

Oto przykład pobierania zawartości wizualizacji niestandardowej do pliku programu Excel i pliku tekstowego.

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

Rozważania i ograniczenia

  • Interfejs API jest obsługiwany tylko w usługa Power BI i programie Power BI Desktop
  • Limit rozmiaru pobranego pliku wynosi 30 MB.
  • Ten interfejs API jest uprzywilejowanym interfejsem API.