Dış aracı kaydetme
Bazı araçların Power BI Desktop'a el ile kaydedilmesi gerekir. Bir dış aracı kaydetmek için aşağıdaki örnek kodla 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, Power BI Desktop'taki Dış Araçlar şeridinde başlık bir düğme olarak görünecek bir ad sağlayın.
- description: (isteğe bağlı) Power BI Desktop'ta Dış Araçlar şerit düğmesinde araç ipucu olarak görünecek bir açıklama sağlayın.
- path: Aracın yürütülebilir dosyasının tam yolunu belirtin.
- arguments: (isteğe bağlı) Araç yürütülebilir dosyasının başlatılması gereken bir komut satırı bağımsız değişkenleri dizesi sağlayın. Aşağıdaki yer tutuculardan herhangi birini kullanabilirsiniz:
- %server%: İçeri aktarılan/DirectQuery veri modelleri için Analysis Services Tablolu yerel örneğinin sunucu adı ve bağlantı noktası numarasıyla değiştirildi.
- %database%: İçeri aktarılan/DirectQuery veri modelleri için Analysis Services Tablolu yerel örneğinde barındırılan modelin veritabanı adıyla değiştirildi.
- iconData: Power BI Desktop'taki Dış Araçlar şeridinde düğme simgesi olarak işlenecek görüntü verilerini sağlayın. Dize, "data:" ön eki olmadan Veri URI'lerinin söz dizimine göre biçimlendirilmelidir.
Dosyayı "<tool name>.pbitool.json"
adlandırın ve aşağıdaki klasöre yerleştirin:
%commonprogramfiles%\Microsoft Shared\Power BI Desktop\External Tools
64 bit ortamlar için dosyaları aşağıdaki klasöre yerleştirin:
- Program Files (x86)\Common Files\Microsoft Shared\Power BI Desktop\External Tools
.pbitool.json uzantısıyla belirtilen konumdaki dosyalar, başlangıçta Power BI Desktop tarafından yüklenir.
Örnek
Aşağıdaki *.pbitool.json dosyası Dış Araçlar şeridinden powershell.exe dosyasını başlatır ve pbiToolsDemo.ps1 adlı bir betik çalıştırır. Betik, -Server parametresindeki sunucu adını ve bağlantı noktası numarasını ve -Database parametresindeki anlam modeli adını geçirir.
{
"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 gönderir.
[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'
Simge veri URI'leri
Dış Araçlar şeridine bir simge eklemek için pbitool.json kayıt dosyasının bir iconData öğesi içermesi gerekir.
iconData öğesi, veri: ön eki olmadan bir veri URI'sini alır. Örneğin, bir piksellik bir eflatun png görüntüsünün veri URI'si şöyledir:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAANSURBVBhXY/jH9+8/AAciAwpql7QkAAAAAElFTkSuQmCC
Önceki örnekte pbitool.json dosyasında gösterildiği gibi data: ön ekini kaldırdığınızdan emin olun.
.png veya başka bir görüntü dosyası türünü veri URI'sine dönüştürmek için çevrimiçi bir araç veya aşağıdaki C# kod parçacığında gösterilen 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();
}
İlgili içerik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin