Freigeben über


Registrieren eines externen Tools

Einige Tools müssen manuell bei Power BI Desktop registriert werden. Um ein externes Tool zu registrieren, erstellen Sie eine JSON-Datei mit dem folgenden Beispielcode:

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

Die pbitool.json Datei enthält die folgenden Elemente:

  • Name: Geben Sie einen Namen für das Tool an, der im Menüband "Externe Tools" in Power BI Desktop als Schaltflächenbeschriftung angezeigt wird.
  • beschreibung: (optional) Geben Sie eine Beschreibung an, die als QuickInfo auf der Menübandschaltfläche "Externe Tools" in Power BI Desktop angezeigt wird.
  • Pfad: Geben Sie den vollqualifizierten Pfad zur ausführbaren Datei des Tools an.
  • argumente: (optional) Stellen Sie eine Zeichenfolge mit Befehlszeilenargumenten bereit, mit denen die ausführbare Datei des Tools gestartet werden soll. Sie können einen der folgenden Platzhalter verwenden:
    • %server%: Ersetzt durch den Servernamen und die Portnummer der lokalen Instanz von Analysis Services Tabular für importierte/DirectQuery-Datenmodelle.
    • %database%: Ersetzt durch den Datenbanknamen des Modells, das in der lokalen Instanz von Analysis Services Tabular für importierte/DirectQuery-Datenmodelle gehostet wird.
  • iconData: Stellen Sie Bilddaten bereit, die im Menüband "Externe Tools" in Power BI Desktop als Schaltflächensymbol gerendert werden. Die Zeichenfolge sollte gemäß der Syntax für Daten-URIs ohne das Präfix "data:" formatiert werden.

Benennen Sie die Datei "<tool name>.pbitool.json" , und platzieren Sie sie im folgenden Ordner:

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

Platzieren Sie die Dateien für 64-Bit-Umgebungen im folgenden Ordner:

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

Dateien an diesem angegebenen Speicherort mit der Erweiterung .pbitool.json werden beim Starten von Power BI Desktop geladen.

Example

Die folgende Datei *.pbitool.json startet powershell.exe über das Menüband "Externe Tools" und führt ein Skript namens pbiToolsDemo.ps1aus. Das Skript übergibt den Servernamen und die Portnummer im parameter -Server und den Semantikmodellnamen im parameter -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" 
} 

Das entsprechende pbiToolsDemo.ps1 Skript gibt die Server- und Datenbankparameter in die Konsole aus.

[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 der PowerShell-Konsolenausgabe, die aus dem Beispiel für ein externes Tool erstellt wurde.

Symboldaten-URIs

Um ein Symbol im Menüband "Externe Tools" einzuschließen, muss die pbitool.json Registrierungsdatei ein iconData-Element enthalten.

Screenshot des Menübands für externe Tools mit den Toolsymbolen.

Das iconData-Element verwendet einen Daten-URI ohne das Präfix "data:" . Beispielsweise lautet der Daten-URI eines Magenta-PNG-Bilds mit einem Pixel:

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

Entfernen Sie unbedingt das Daten: Präfix, wie im vorherigen Beispiel in pbitool.json gezeigt.

Um einen .png oder einen anderen Bilddateityp in einen Daten-URI zu konvertieren, verwenden Sie ein Onlinetool oder ein benutzerdefiniertes Tool, z. B. das im folgenden C#-Codeausschnitt gezeigte:

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(); 
}