Een extern hulpprogramma registreren

Sommige hulpprogramma's moeten handmatig worden geregistreerd bij Power BI Desktop. Als u een extern hulpprogramma wilt registreren, maakt u een JSON-bestand met de volgende voorbeeldcode:

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

Het bestand pbitool.json bevat de volgende elementen:

  • naam: Geef een naam op voor het hulpprogramma, dat wordt weergegeven als een knop onderschrift op het lint Externe hulpprogramma's in Power BI Desktop.
  • beschrijving: (optioneel) Geef een beschrijving op, die wordt weergegeven als knopinfo op de knop Externe hulpmiddelen op het lint in Power BI Desktop.
  • pad: Geef het volledig gekwalificeerde pad op naar het uitvoerbare hulpprogramma.
  • argumenten: (optioneel) Geef een reeks opdrachtregelargumenten op waarmee het uitvoerbare hulpprogramma moet worden gestart. U kunt een van de volgende tijdelijke aanduidingen gebruiken:
    • %server%: vervangen door de servernaam en het poortnummer van het lokale exemplaar van Analysis Services Tabular voor geïmporteerde/DirectQuery-gegevensmodellen.
    • %database%: vervangen door de databasenaam van het model dat wordt gehost in het lokale exemplaar van Analysis Services Tabular voor geïmporteerde/DirectQuery-gegevensmodellen.
  • iconData: Geef afbeeldingsgegevens op, die worden weergegeven als een knoppictogram op het lint Externe hulpmiddelen in Power BI Desktop. De tekenreeks moet worden opgemaakt volgens de syntaxis voor gegevens-URI's zonder het voorvoegsel 'data:'.

Geef het bestand "<tool name>.pbitool.json" een naam en plaats het in de volgende map:

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

Plaats de bestanden in de volgende map voor 64-bits omgevingen:

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

Bestanden op die opgegeven locatie met de extensie .pbitool.json worden bij het opstarten door Power BI Desktop geladen.

Opmerking

Het volgende *.pbitool.json-bestand start powershell.exe vanaf het lint Externe hulpprogramma's en voert een script met de naam pbiToolsDemo.ps1 uit. Het script geeft de servernaam en het poortnummer door in de parameter -Server en de semantische modelnaam in de 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" 
} 

Het bijbehorende pbiToolsDemo.ps1-script voert de server- en databaseparameters uit naar de console.

[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.

Pictogramgegevens-URI's

Als u een pictogram wilt opnemen in het lint Externe hulpmiddelen, moet het registratiebestand pbitool.json een iconData-element bevatten.

Screenshot of the external tools ribbon with the tool icons.

Het element iconData gebruikt een gegevens-URI zonder de gegevens: voorvoegsel. De gegevens-URI van een magenta png-afbeelding van één pixel is bijvoorbeeld:

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

Verwijder de gegevens: voorvoegsel, zoals wordt weergegeven in het voorgaande voorbeeld pbitool.json.

Als u een PNG- of ander afbeeldingsbestandstype wilt converteren naar een gegevens-URI, gebruikt u een onlinehulpprogramma of een aangepast hulpprogramma, zoals het hulpprogramma dat wordt weergegeven in het volgende C#-codefragment:

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