Udostępnij przez


Zarejestruj narzędzie zewnętrzne

Niektóre narzędzia muszą być ręcznie zarejestrowane w programie Power BI Desktop. Aby zarejestrować narzędzie zewnętrzne, utwórz plik JSON przy użyciu następującego przykładowego kodu:

{
    "name": "<tool name>",
    "description": "<tool description>",
    "path": "<tool executable path>",
    "arguments": "<optional command line arguments>",
    "iconData": "image/png;base64,<encoded png icon data>"
}

Plik pbitool.json zawiera następujące elementy:

  • nazwa: Podaj nazwę narzędzia, które będzie wyświetlane jako podpis przycisku na wstążce Narzędzia zewnętrzne w programie Power BI Desktop.
  • opis: (opcjonalnie) Podaj opis, który będzie wyświetlany jako etykietka narzędzia na przycisku wstążki Narzędzia zewnętrzne w programie Power BI Desktop.
  • ścieżka: Podaj w pełni kwalifikowaną ścieżkę do pliku wykonywalnego narzędzia.
  • argumenty: (opcjonalnie) Podaj ciąg argumentów wiersza polecenia, z którymi powinien zostać uruchomiony plik wykonywalny narzędzia. Możesz użyć dowolnego z następujących symboli zastępczych:
    • %server%: Zastąpiono nazwą serwera i numerem portu lokalnego wystąpienia Analysis Services w trybie tabelarycznym dla importowanych lub DirectQuery modeli danych.
    • %database%: Zastąpiono nazwą bazy danych modelu hostowanego w lokalnym wystąpieniu tabelarycznym usług Analysis Services dla importowanych lub DirectQuery modeli danych.
  • iconData: Podaj dane obrazu, które będą renderowane jako ikona przycisku na wstążce Narzędzia zewnętrzne w programie Power BI Desktop. Ciąg powinien być sformatowany zgodnie ze składnią dla identyfikatorów URI danych, ale bez prefiksu "data:".

Nadaj plikowi "<tool name>.pbitool.json" nazwę i umieść go w następującym folderze:

  • %commonprogramfiles%\Microsoft Shared\Power BI Desktop\External Tools

W przypadku środowisk 64-bitowych umieść pliki w następującym folderze:

  • Program Files (x86)\Common Files\Microsoft Shared\Power BI Desktop\External Tools

Pliki w tej określonej lokalizacji z rozszerzeniem .pbitool.json są ładowane przez program Power BI Desktop podczas uruchamiania.

Example

Poniższy plik *.pbitool.json uruchamia powershell.exe na wstążce Narzędzia zewnętrzne i uruchamia skrypt o nazwie pbiToolsDemo.ps1. Skrypt przekazuje nazwę serwera i numer portu w parametrze -Server oraz nazwę modelu semantycznego w parametrze -Database.

{ 
    "version": "1.0.0", 
    "name": "External Tools Demo", 
    "description": "Launches PowerShell and runs a script that outputs server and database parameters. (Requires elevated PowerShell permissions.)", 
    "path": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", 
    "arguments": "C:\\pbiToolsDemo.ps1 -Server \"%server%\" -Database \"%database%\"", 
    "iconData": "image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAANSURBVBhXY/jH9+8/AAciAwpql7QkAAAAAElFTkSuQmCC" 
} 

Odpowiedni skrypt pbiToolsDemo.ps1 zwraca parametry serwera i bazy danych do konsoli programu .

[CmdletBinding()] 
param 
( 
        [Parameter(Mandatory = $true)]         
[string] $Server, 
        [Parameter(Mandatory = $true)]         
[string] $Database  
) 
Write-Host "" 
Write-Host "Analysis Services instance: " -NoNewline 
Write-Host "$Server" -ForegroundColor Yellow 
Write-Host "Dataset name: " -NoNewline 
Write-Host "$Database" -ForegroundColor Green 
Write-Host "" 
Read-Host -Prompt 'Press [Enter] to close this window'  

Zrzut ekranu przedstawiający dane wyjściowe konsoli programu PowerShell utworzone na podstawie przykładowego narzędzia zewnętrznego.

URI danych ikon

Aby dołączyć ikonę na wstążce Narzędzia zewnętrzne, plik rejestracji pbitool.json musi zawierać element iconData.

Zrzut ekranu przedstawiający wstążkę narzędzi zewnętrznych z ikonami narzędzi.

Element iconData przyjmuje identyfikator data URI bez prefiksu data:. Na przykład URI danych dla jednokolorowego, magentowego obrazu png o jednym pikselu to:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAANSURBVBhXY/jH9+8/AAciAwpql7QkAAAAAElFTkSuQmCC

Pamiętaj, aby usunąć prefiks dane:, jak pokazano w poprzednim przykładzie pbitool.json.

Aby przekonwertować .png lub inny typ pliku obrazu na identyfikator URI danych, użyj narzędzia online lub niestandardowego narzędzia, takiego jak pokazany w poniższym fragmencie kodu języka C#:

string ImageDataUri; 
OpenFileDialog openFileDialog1 = new OpenFileDialog(); 
openFileDialog1.Filter = "PNG Files (.png)|*.png|All Files (*.*)|*.*"; 
openFileDialog1.FilterIndex = 1; 
openFileDialog1.Multiselect = false; 
openFileDialog1.CheckFileExists = true; 
bool? userClickedOK = openFileDialog1.ShowDialog(); 
if (userClickedOK == true) 
{ 
    var fileName = openFileDialog1.FileName; 
    var sb = new StringBuilder(); 
    sb.Append("image/") 
        .Append((System.IO.Path.GetExtension(fileName) ?? "png").Replace(".", "")) 
        .Append(";base64,") 
        .Append(Convert.ToBase64String(File.ReadAllBytes(fileName))); 
    ImageDataUri = sb.ToString(); 
}