Dış aracı kaydetme

Bazı araçların Power BI Desktop el ile kaydedilmesi gerekir. Bir dış aracı kaydetmek için aşağıdaki ile bir JSON dosyası oluşturun:

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

Pbitool. JSON dosyası aşağıdaki öğeleri içerir:

  • name: Araç için bir ad girin. Bu ad, Power BI Desktop'ın Dış Araçlar şeridinde düğme yazısı olarak görünecektir.
  • description: (isteğe bağlı) Power BI Desktop'ın Dış Araçlar şeridindeki düğmede araç ipucu olarak görünecek bir açıklama girin.
  • path: Aracın yürütülebilir dosyasının tam nitelikli yolunu belirtin.
  • arguments: (isteğe bağlı) Araç yürütülebilir dosyası başlatılırken kullanılacak komut satırı bağımsız değişkenlerinden oluşan bir dize girin. Aşağıdaki yer tutucuları kullanabilirsiniz:
    • %server%: İçeri aktarılan/DirectQuery veri modelleri için yerel Analysis Services Tablosal örneğinin sunucu adı ve bağlantı noktası numarasıyla değiştirilir.
    • %database%: İçeri aktarılan/DirectQuery veri modelleri için yerel Analysis Services Tablosal örneğinde barındırılan veritabanının adıyla değiştirilir.
  • iconData: Power BI Desktop'ın Dış Araçlar şeridinde düğme simgesi olarak işlenecek görüntü verilerini girin. Dize, Veri URI'leri söz dizimine göre biçimlendirilmeli ve "data:" ön eki eklenmemelidir.

Dosyayı "<tool name>.pbitool.json" olarak adlandırın ve şu klasöre yerleştirin:

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

64 bit ortamlar için dosyaları şu klasöre yerleştirin:

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

Belirtilen konumda yer alan .pbitool.json uzantılı dosyalar, Power BI Desktop başlatılırken yüklenir.

Örnek

Aşağıdaki *. pbitool. JSON dosyası dış araçlar şeritten powershell.exe başlatır ve sunucu adını ve bağlantı noktası numarasını-Server parametresine ve-Database parametresindeki veri kümesi adına geçirerek pbiToolsDemo.ps1 adlı bir komut dosyası çalıştırır.

{ 
    "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" 
} 

Karşılık gelen pbiToolsDemo.ps1 betiği, sunucu ve veritabanı parametrelerini konsola çıkarır.

[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 konsol çıkışı

Simge veri URI 'Leri

Dış Araçlar şeridinde bir simge eklemek için, pbitool. JSON kayıt dosyası bir ıdata öğesi içermelidir.

Araç simgeleri içeren dış araçlar şeridi

Idata öğesi veri: öneki olmayan bir veri URI 'si alır. Örneğin, bir piksel Macenta PNG görüntüsünün veri URI 'SI:

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

Yukarıdaki pbitool. JSON örneğinde gösterildiği gibi, veri: önekini kaldırmayı unutmayın.

Bir .png veya başka bir görüntü dosyası türünü veri URI 'sine dönüştürmek için, bir çevrimiçi araç veya aşağıdaki C# kod parçacığında gösterildiği gibi özel bir araç kullanın:

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

Ayrıca bkz.

Power BI Desktop dış araçlar
Analysis Services bağlantı için istemci kitaplıkları
Tablolu Nesne Modeli (TOM)