ลงทะเบียนเครื่องมือภายนอก

ต้องลงทะเบียนเครื่องมือบางอย่างด้วยเครื่องมือ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'  

ผลลัพธ์ของคอนโซล PowerShell

ไอคอนข้อมูล 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)