[英]Power Bi subscriptions
我想在 power shell 命令中運行 power bi 訂閱。 我對那個訂閱概念很陌生。 任何人都可以對此給出明確的解釋。 提前致謝。
您不能以編程方式觸發電子郵件訂閱。 他們按照自己的時間表運行。 但是您可以使用導出到文件 API將報告導出到 PDF 文件(或其他一些支持的文件類型)並將其發送給某人。 這意味着工作區必須附加到專用容量( Power BI Premium P SKU、Power BI Premium EM SKU或Power BI Embedded A SKU ,可能還有Premium per user ),並且您應該自己維護“訂閱者”列表.
這是一些 PowerShell 代碼,它使用Power BI 管理 CmdLets ,它將報告導出到 PDF 並通過電子郵件發送。 您需要編輯代碼開頭的參數,例如報告 ID、工作區 ID、憑據、收件人等。
#############################################################
# Install-Module -Name MicrosoftPowerBIMgmt
# Install-Module -Name MicrosoftPowerBIMgmt -Scope CurrentUser
#############################################################
Import-Module MicrosoftPowerBIMgmt
#############################################################
# Power BI settings
#############################################################
$password = "SuperStrongPassword" | ConvertTo-SecureString -asPlainText -Force
$username = "account@example.com"
#############################################################
# Report settings
#############################################################
$groupId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$reportId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$format = "PDF" # or PNG, or PPTX. For paginated reports can be CSV, DOCX, IMAGE (i.e. page definition plus file format - BMP, EMF, etc.), MHTML, XLSX or XML
$saveToFolder = "D:\"
$fileSuffix = " (" + (Get-Date).ToString("yyyy-MM-dd HH-mm-ss") + ")"
#############################################################
# E-mail settings
#############################################################
$emailSmtpServer = "smtp.office365.com"
$emailSmtpServerPort = 587
$emailTo = $username
$emailSubject = "Here is your report"
$emailBodyHtml = "Please find <b>your report</b> attached here."
$emailUser = "account@example.com"
$emailPassword = "SuperStrongPassword"
$emailFrom = $emailUser
$credential = New-Object System.Management.Automation.PSCredential($username, $password)
Connect-PowerBIServiceAccount -Credential $credential
$settings = @{ includeHiddenPages = $false; locale = "en-us" }
$powerBIReportConfiguration = @{ settings = $settings }
$export_body = @{ format = $format; powerBIReportConfiguration = $powerBIReportConfiguration }
#'{
# format: "$format",
# powerBIReportConfiguration: { settings: { includeHiddenPages: false, locale: "en-us" } }
#}'
$export_response = Invoke-PowerBIRestMethod -Url "https://api.powerbi.com/v1.0/myorg/groups/$groupId/reports/$reportId/ExportTo" -Method Post -Body ($export_body | ConvertTo-Json)
$export_response_json = ConvertFrom-Json $export_response
$exportId = $export_response_json.id
Write-Output "Polling export status..."
$maxPollCount = 500
$exportSucceeded = $false
do
{
$maxPollCount = $maxPollCount - 1
Start-Sleep -Seconds 5
$status_response = Invoke-PowerBIRestMethod -Url "https://api.powerbi.com/v1.0/myorg/groups/$groupId/reports/$reportId/exports/$exportId" -Method Get
$status_response_json = ConvertFrom-Json $status_response
$status = $status_response_json.status
$percentComplete = $status_response_json.percentComplete
Write-Output "Status: $status, percent complete: $percentComplete (retries left: $maxPollCount)"
if ($status -eq "Succeeded")
{
$exportSucceeded = $true
$resourceLocation = $status_response_json.resourceLocation
$reportName = $status_response_json.reportName
$resourceFileExtension = $status_response_json.resourceFileExtension
$outFile = [IO.Path]::Combine($saveToFolder, $reportName + $fileSuffix + $resourceFileExtension)
}
}
until($exportSucceeded -or $maxPollCount -le 0)
Write-Output "Downloading export..."
$download_response = Invoke-PowerBIRestMethod -Url $resourceLocation -Method Get -OutFile $outFile
Write-Output "Download completed."
Disconnect-PowerBIServiceAccount
$emailCredentials = New-Object System.Management.Automation.PSCredential -ArgumentList $emailUser, $($emailPassword | ConvertTo-SecureString -AsPlainText -Force)
Send-MailMessage -From $emailFrom `
-To $emailTo `
-Subject $emailSubject `
-Body $emailBodyHtml `
-BodyAsHtml `
-SmtpServer $emailSmtpServer `
-Credential $emailCredentials `
-UseSsl `
-Attachments $outFile
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.