Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Vissa verktyg måste registreras manuellt med Power BI Desktop. Om du vill registrera ett externt verktyg skapar du en JSON-fil med följande exempelkod:
{
"name": "<tool name>",
"description": "<tool description>",
"path": "<tool executable path>",
"arguments": "<optional command line arguments>",
"iconData": "image/png;base64,<encoded png icon data>"
}
Filen pbitool.json innehåller följande element:
- name: Ange ett namn på verktyget, som visas som en knapp bildtext i menyfliksområdet Externa verktyg i Power BI Desktop.
- beskrivning: (valfritt) Ange en beskrivning som visas som en knappbeskrivning på menyfliksområdet Externa verktyg i Power BI Desktop.
- path: Ange den fullständigt kvalificerade sökvägen till verktygets körbara fil.
- argument: (valfritt) Ange en sträng med kommandoradsargument som verktyget ska köras med. Du kan använda någon av följande platshållare:
- %server%: Ersätts med servernamnet och portnumret för den lokala instansen av Analysis Services-tabell för importerade/DirectQuery-datamodeller.
- %database%: Ersätts med databasnamnet på modellen som finns i den lokala instansen av Analysis Services-tabell för importerade/DirectQuery-datamodeller.
- iconData: Ange bilddata som återges som en knappikon i menyfliksområdet Externa verktyg i Power BI Desktop. Strängen ska formateras enligt syntaxen för Data-URI:er utan prefixet "data:".
Namnge filen "<tool name>.pbitool.json"
och placera den i följande mapp:
%commonprogramfiles%\Microsoft Shared\Power BI Desktop\External Tools
För 64-bitarsmiljöer placerar du filerna i följande mapp:
- Programfiler (x86)\Common Files\Microsoft Shared\Power BI Desktop\Externa verktyg
Filer på den angivna platsen med tillägget .pbitool.json läses in av Power BI Desktop vid start.
Exempel
Följande *.pbitool.json-fil startar powershell.exe från menyfliksområdet Externa verktyg och kör ett skript med namnet pbiToolsDemo.ps1. Skriptet skickar servernamnet och portnumret i parametern -Server och det semantiska modellnamnet i parametern -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"
}
Motsvarande pbiToolsDemo.ps1-skript matar ut server- och databasparametrarna till konsolen.
[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'
Ikondata-URI:er
Om du vill inkludera en ikon i menyfliksområdet Externa verktyg måste registreringsfilen pbitool.json innehålla ett iconData-element.
Elementet iconData tar en data-URI utan prefixet data: . Till exempel är data-URI:n för en bildpunkts magenta png-bild:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAANSURBVBhXY/jH9+8/AAciAwpql7QkAAAAAElFTkSuQmCC
Se till att ta bort data: prefix, som visas i pbitool.json föregående exempel.
Om du vill konvertera en .png- eller annan bildfiltyp till en data-URI använder du ett onlineverktyg eller ett anpassat verktyg, till exempel det som visas i följande C#-kodfragment:
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();
}