Share via


Registrare uno strumento esterno

Alcuni strumenti devono essere registrati manualmente con Power BI Desktop. Per registrare uno strumento esterno, creare un file JSON con il codice di esempio seguente:

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

Il file pbitool.json include gli elementi seguenti:

  • name: specificare un nome per lo strumento, che verrà visualizzato come pulsante didascalia nella barra multifunzione Strumenti esterni all'interno di Power BI Desktop.
  • description: (facoltativo) Specificare una descrizione, che verrà visualizzata come descrizione comando nel pulsante della barra multifunzione Strumenti esterni in Power BI Desktop.
  • path: specificare il percorso completo dell'eseguibile dello strumento.
  • argomenti: (facoltativo) Specificare una stringa di argomenti della riga di comando con cui deve essere avviato l'eseguibile dello strumento. È possibile usare uno dei segnaposto seguenti:
    • %server%: sostituito con il nome del server e il numero di porta dell'istanza locale di Analysis Services tabulare per i modelli di dati importati/DirectQuery.
    • %database%: sostituito con il nome del database del modello ospitato nell'istanza locale di Analysis Services tabulare per i modelli di dati importati/DirectQuery.
  • iconData: specificare i dati dell'immagine, che verranno visualizzati come icona del pulsante nella barra multifunzione Strumenti esterni in Power BI Desktop. La stringa deve essere formattata in base alla sintassi per gli URI di dati senza il prefisso "data:".

Denominare il file "<tool name>.pbitool.json" e inserirlo nella cartella seguente:

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

Per gli ambienti a 64 bit, inserire i file nella cartella seguente:

  • Programmi (x86)\File comuni\Microsoft Shared\Power BI Desktop\External Tools

I file in quel percorso specificato con l'estensione .pbitool.json vengono caricati da Power BI Desktop all'avvio.

Esempio

Il file *.pbitool.json seguente avvia powershell.exe dalla barra multifunzione Strumenti esterni ed esegue uno script denominato pbiToolsDemo.ps1. Lo script passa il nome del server e il numero di porta nel parametro -Server e il nome del modello semantico nel parametro -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" 
} 

Lo script pbiToolsDemo.ps1 corrispondente restituisce i parametri server e database nella 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.

URI dati icona

Per includere un'icona nella barra multifunzione Strumenti esterni, il file di registrazione pbitool.json deve includere un elemento iconData.

Screenshot of the external tools ribbon with the tool icons.

L'elemento iconData accetta un URI di dati senza i dati: prefisso. Ad esempio, l'URI dati di un'immagine png magenta di un pixel è:

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

Assicurarsi di rimuovere i dati: prefisso, come illustrato nell'esempio precedente pbitool.json.

Per convertire un file png o un altro tipo di file immagine in un URI dati, usare uno strumento online o uno strumento personalizzato, ad esempio quello illustrato nel frammento di codice C# seguente:

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