Registrieren eines externen Tools
Einige Tools müssen manuell bei Power BI Desktop registriert werden. Wenn Sie andere externe Tools registrieren möchten, erstellen Sie eine JSON-Datei mit folgendem 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 Diagnosekonfigurationsdatei 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.
- description: (optional) Geben Sie eine Beschreibung an, die als QuickInfo für die Schaltfläche im Menüband „Externe Tools“ in Power BI Desktop angezeigt wird.
- path: Geben Sie den vollqualifizierten Pfad zur ausführbaren Datei des Tools an.
- arguments: (optional) Geben Sie eine Zeichenfolge mit Befehlszeilenargumenten an, mit denen die ausführbare Datei des Tools gestartet werden soll. Hierbei können Sie einen beliebigen der folgenden Platzhalter verwenden:
- %server%: Wird durch den Servernamen und die Portnummer der lokalen Instanz von Analysis Services (Tabellarisch) für importierte/DirectQuery-Datenmodelle ersetzt.
- %database%: Wird durch den Datenbanknamen des Modells ersetzt, das in der lokalen Instanz von Analysis Services (Tabellarisch) 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 muss gemäß der Syntax für Daten-URIs ohne das Präfix „data:“ formatiert werden.
Benennen Sie die Datei mit "<tool name>.pbitool.json"
, und legen Sie sie im folgenden Ordner ab:
%commonprogramfiles%\Microsoft Shared\Power BI Desktop\External Tools
In 64-Bit-Umgebungen legen Sie die Dateien in folgendem Ordner ab:
- Programme (x86)\Common Files\Microsoft Shared\Power BI Desktop\External Tools
Dateien an diesem angegebenen Speicherort, die die Endung .pbitool.json aufweisen, werden beim Start von Power BI Desktop geladen.
Beispiel
Die folgende Datei „*.pbitool.json“ startet powershell.exe über das Menüband „Externe Tools“ und führt ein Skript mit de Bezeichnung „pbiToolsDemo.ps1“ aus. 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 Daten Bank Parameter an 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'
Symbol Daten-URIs
Wenn Sie ein Symbol in das Menüband "externe Tools" einschließen möchten, muss die pbitool.jsder Registrierungsdatei ein icondata-Element enthalten.
Das icondata-Element nimmt einen Daten-URI ohne das Data: Prefix-Element an. Beispielsweise ist der Daten-URI eines 1 Pixel Magenta PNG-Bilds wie folgt:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAANSURBVBhXY/jH9+8/AAciAwpql7QkAAAAAElFTkSuQmCC
Stellen Sie sicher, dass Sie das Präfix data: entfernen, wie im oben angeführten Beispiel „pbitool.js“.
Um einen PNG-oder anderen Bilddateityp in einen Daten-URI zu konvertieren, verwenden Sie ein Online Tool oder ein benutzerdefiniertes Tool, wie z. b. das im folgenden c#-Code Ausschnitt gezeigt:
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();
}