ลงทะเบียนเครื่องมือภายนอก
ต้องลงทะเบียนเครื่องมือบางอย่างด้วยเครื่องมือPower BI Desktopด้วยตนเอง เมื่อต้องการลงทะเบียนเครื่องมือภายนอก ให้สร้างไฟล์ JSON ดังต่อไปนี้:
{
"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 มีองค์ประกอบดังต่อไปนี้:
- ชื่อ: ระบุชื่อสำหรับเครื่องมือซึ่งจะปรากฏเป็นคำบรรยายปุ่มในริบบอนเครื่องมือภายนอกใน Power BI Desktop
- คำอธิบาย: (ไม่บังคับ) ใส่คำอธิบายซึ่งจะปรากฏเป็นคำแนะนำเครื่องมือบนปุ่มริบบอนอุปกรณ์ภายนอกใน Power BI Desktop
- เส้นทาง: ใส่เส้นทางที่ถูกต้องแบบเต็มในไฟล์ปฏิบัติการของเครื่องมือ
- อาร์กิวเมนต์: (ไม่บังคับ) ใส่สตริงของอาร์กิวเมนต์บรรทัดคำสั่งที่ควรจะเปิดใช้งานเครื่องมือ คุณอาจใช้ตัวยึดต่อไปนี้ได้:
- % server%: แทนที่ด้วยชื่อเซิร์ฟเวอร์และหมายเลขพอร์ตของอินสแตนซ์ภายในเครื่องของ Analysis Services Tabular สำหรับแบบจำลองข้อมูลที่นำเข้า/DirectQuery
- %database%: แทนที่ด้วยชื่อฐานข้อมูลของแบบจำลองที่โฮสต์ในอินสแตนซ์ภายในเครื่องของ Analysis Services Tabular สำหรับแบบจำลองข้อมูลที่นำเข้า/DirectQuery
- iconData: ใส่ข้อมูลรูปภาพซึ่งจะแสดงเป็นไอคอนปุ่มในริบบอนเครื่องมือภายนอกใน Power BI Desktop สตริงควรได้รับการจัดรูปแบบตามไวยากรณ์สำหรับ URI ข้อมูลโดยไม่มีคำนำหน้า "data:"
ตั้งชื่อไฟล์ "<tool name>.pbitool.json" และวางในโฟลเดอร์ต่อไปนี้:
%commonprogramfiles%\Microsoft Shared\Power BI Desktop\External Tools
สำหรับระบบ 64 บิต ให้วางไฟล์ในโฟลเดอร์ต่อไปนี้:
- Program Files (x86)\Common Files\Microsoft Shared\Power BI Desktop\External Tools
ไฟล์ในตำแหน่งที่ตั้งที่ระบุด้วยส่วนขยาย .pbitool.json จะโหลดโดย Power BI Desktop เมื่อเริ่มต้นใช้งาน
ตัวอย่าง
ไฟล์ *.pbitool.json ต่อไปนี้เปิดใช้งาน powershell.exe จากริบบอนเครื่องมือภายนอก และเรียกใช้สคริปต์ที่เรียกว่า pbiToolsDemo.ps1 โดยส่งผ่านชื่อเซิร์ฟเวอร์และหมายเลขพอร์ตในพารามิเตอร์ -Server และชื่อชุดข้อมูลในพารามิเตอร์ -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"
}
การเรียกใช้สคริปต์pbiToolsDemo.ps1ที่สอดคล้องกันจะส่งออกพารามิเตอร์เซิร์ฟเวอร์และฐานข้อมูลไปยังคอนโซล
[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
เพื่อรวมไอคอนในริบบอนเครื่องมือภายนอกไฟล์ลงทะเบียน pbitool.json ต้องมีไอคอนองค์ประกอบข้อมูล
ไอคอนองค์ประกอบข้อมูลใช้ URI ข้อมูลโดยไม่มีข้อมูล : ข้อความ นําหน้า ตัวอย่างเช่น URI ข้อมูลของรูปภาพ URI ที่มีแมกentaหนึ่งพิกเซลคือ:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAANSURBVBhXY/jH9+8/AAciAwpql7QkAAAAAElFTkSuQmCC
ตรวจสอบให้แน่ใจว่าคุณลบข้อมูล: ข้อความนํา หน้า ดังที่แสดงในตัวอย่าง pbitool.json ด้านบน
หากต้องการแปลง.pngไฟล์รูปภาพหรือไฟล์ชนิดอื่น ๆ เป็น URI ข้อมูล ให้ใช้เครื่องมือออนไลน์หรือเครื่องมือแบบปรับแต่งเองเช่นไฟล์ที่แสดงในข้อมูลรหัส C# ต่อไปนี้:
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();
}
นอกจากนี้ โปรดดู
เครื่องมือภายนอกใน Power BI Desktop
ไลบรารีไคลเอ็นต์ของการเชื่อมต่อกับ Analysis Services
แบบโมเดลวัตถุแบบตาราง (TOM)