Mendaftarkan alat eksternal
Beberapa alat harus didaftarkan secara manual dengan Power BI Desktop. Untuk mendaftarkan alat eksternal, buat file JSON dengan contoh kode berikut:
{
"name": "<tool name>",
"description": "<tool description>",
"path": "<tool executable path>",
"arguments": "<optional command line arguments>",
"iconData": "image/png;base64,<encoded png icon data>"
}
File pbitool.json menyertakan elemen-elemen berikut:
- nama: Berikan nama untuk alat ini, yang akan muncul sebagai keterangan tombol di pita Alat Eksternal dalam Power BI Desktop.
- deskripsi: (opsional) Berikan deskripsi, yang akan muncul sebagai tooltip pada tombol pita Alat Eksternal dalam Power BI Desktop.
- jalan: Berikan jalur yang sepenuhnya memenuhi syarat ke alat yang dapat dieksekusi.
- argumen: (opsional) Berikan string argumen baris perintah yang harus diluncurkan dengan alat yang dapat dieksekusi. Anda dapat menggunakan salah satu tempat penampung berikut:
- %server%: Diganti dengan nama server dan portnumber instans lokal Tabular Analysis Services untuk model data impor/DirectQuery.
- %database%: Diganti dengan nama database model yang dihosting dalam instans lokal Tabular Analysis Services untuk model data yang diimpor/DirectQuery.
- iconData: Sediakan data gambar, yang akan di-render sebagai ikon tombol di pita Alat Eksternal dalam Power BI Desktop. String harus diformat sesuai dengan sintaks untuk URI Data tanpa awalan "data:".
Beri nama file "<tool name>.pbitool.json"
dan letakkan di folder berikut:
%commonprogramfiles%\Microsoft Shared\Power BI Desktop\External Tools
Untuk lingkungan 64-bit, tempatkan file di folder berikut:
- File Program (x86)\Common Files\Microsoft Shared\Power BI Desktop\External Tools
File di lokasi yang ditentukan dengan ekstensi .pbitool.json dimuat oleh Power BI Desktop saat mulai.
Contoh
File *.pbitool.json berikut meluncurkan powershell.exe dari pita Alat Eksternal dan menjalankan skrip yang disebut pbiToolsDemo.ps1. Skrip meneruskan nama server dan nomor port dalam parameter -Server dan nama model semantik dalam 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"
}
Skrip pbiToolsDemo.ps1 yang sesuai menghasilkan parameter Server dan Database ke konsol.
[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'
URI data ikon
Untuk menyertakan ikon di pita Alat Eksternal, file pendaftaran pbitool.json harus menyertakan elemen iconData.
Elemen iconData mengambil URI data tanpa data: awalan. Misalnya, URI data dari gambar png magenta satu piksel adalah:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAANSURBVBhXY/jH9+8/AAciAwpql7QkAAAAAElFTkSuQmCC
Pastikan untuk menghapus data: awalan, seperti yang ditunjukkan dalam contoh sebelumnya pbitool.json.
Untuk mengonversi .png atau jenis file gambar lainnya ke URI data, gunakan alat online atau alat kustom seperti yang ditunjukkan dalam cuplikan kode C# berikut:
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();
}
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk