Rejestrowanie narzędzia zewnętrznego

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:

  • name: podaj nazwę narzędzia, która będzie wyświetlana jako przycisk podpis 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.
  • path: 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 tabelarycznego usług Analysis Services dla importowanych/bezpośrednich modeli danych.
    • %database%: Zastąpiono nazwą bazy danych modelu hostowanego w lokalnym wystąpieniu tabelarycznym usług Analysis Services dla importowanych/bezpośrednich 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ą identyfikatorów URI danych 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.

Przykład

Poniższy plik *.pbitool.json uruchamia plik powershell.exe ze wstążki 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'  

Screenshot of PowerShell console output created from the example external tool.

Identyfikatory URI danych ikon

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

Screenshot of the external tools ribbon with the tool icons.

Element iconData pobiera identyfikator URI danych bez prefiksu danych . Na przykład identyfikator URI danych obrazu png o jednym pikselu to:

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

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

Aby przekonwertować plik 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(); 
}