Registrera ett externt verktyg

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:

{
    "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: Ge verktyget ett namn. Det visas som en knappbeskrivning i menyfliksområdet med externa verktyg i Power BI Desktop.
  • description: (valfritt) Ge en beskrivning som visas som en knappbeskrivning för knappen Externa verktyg i menyfliksområdet i Power BI Desktop.
  • path: Ange den fullständigt kvalificerade sökvägen till verktygets körbara fil.
  • argument: (valfritt) Tillhandahåll en sträng med kommandoradsargument med vilka verktygsfilen kan startas. Du kan använda vilken som helst av följande platshållare:
    • %server%: Ersätts med den lokala instansens servernamn och portnummer för Analysis Services Tabular för importerade datamodeller/DirectQuery-datamodeller.
    • %database%: Ersätts med databasnamnet för den värdbaserade modellen i den lokala instansen av Analysis Services Tabular för importerade datamodeller/DirectQuery-datamodeller.
  • iconData: Tillhandahåll bilddata som återges som en knappikon i menyfliksområdet Externa verktyg i Power BI Desktop. Strängen måste formateras enligt syntaxen för data-URI:er utan prefixet "data:".

Ge filen namnet "<tool name>.pbitool.json" och placera den i följande mapp:

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

För 64-bitars miljöer placerar du filerna i följande mapp:

  • Programfiler (x86)\Common Files\Microsoft Shared\Power BI Desktop\External tools

Filer på denna angivna plats 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 och anger servernamnet och portnumret i parametern -Server och datauppsättningens namn 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-skriptet 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'  

PowerShell-konsolens utdata

Ikondata-URI:er

Om du vill inkludera en ikon i menyfliksområdet Externa verktyg måste registreringsfilen pbitool.json innehålla ett iconData-element.

Menyfliksområdet Externa verktyg med verktygsikoner

Elementet iconData tar en data-URI utan prefixet data: . Data-URI:en för en png-bild med en pixel är till exempel:

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

Se till att ta bort data: prefix, som du ser i exemplet pbitool.json ovan.

Om du vill konvertera en .png eller annan bildfiltyp till en data-URI använder du ett onlineverktyg eller ett anpassat verktyg som 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(); 
} 

Se även

Externa verktyg i Power BI Desktop
Klientbibliotek för att ansluta till Analysis Services
Tabellobjektsmodell (TOM)