Powerbi 如何使用API更新/编辑刷新计划?
我们有100个报告在刷新计划中落后,Microsoft向我们确认了它的工作方式:刷新以FIFO的形式排队,因此服务器上的刷新计划越多,报告刷新所需的时间就越长,而与计划预期无关 经过讨论,我们决定建立刷新计划治理,这样用户就不会创建计划了,我们会的。但是有数百个计划(每个报告一个),手动一个接一个地更新它们需要很长时间 我们如何更新时间表,比如说每天上午10点或下午2点刷新 我能够深入到cacherefreshplan信息,但我不确定如何使用新值“更新它”。在上,我看到了PUT,但不确定这是否是正确的方法Powerbi 如何使用API更新/编辑刷新计划?,powerbi,powershell-5.0,Powerbi,Powershell 5.0,我们有100个报告在刷新计划中落后,Microsoft向我们确认了它的工作方式:刷新以FIFO的形式排队,因此服务器上的刷新计划越多,报告刷新所需的时间就越长,而与计划预期无关 经过讨论,我们决定建立刷新计划治理,这样用户就不会创建计划了,我们会的。但是有数百个计划(每个报告一个),手动一个接一个地更新它们需要很长时间 我们如何更新时间表,比如说每天上午10点或下午2点刷新 我能够深入到cacherefreshplan信息,但我不确定如何使用新值“更新它”。在上,我看到了PUT,但不确定这是否是
$refreshplan = Invoke-RestMethod -UseDefaultCredentials <# -Credential $creds #> -uri $($baseURI + "api/v2.0/PowerBIReports(path='" + "/Prototypes/report 1" + "')/CacheRefreshP
lans")
$refreshplan.value.ScheduleDescription
At 2:00 AM every day, starting 9/5/2019
$refreshplan.value.Schedule.Definition
StartDateTime EndDate EndDateSpecified Recurrence
------------- ------- ---------------- ----------
2019-09-05T02:00:00-04:00 0001-01-01T00:00:00Z False @{MinuteRecurrence=; DailyRecurrence=; WeeklyRecurrence=; MonthlyRecurrence=; MonthlyDOWRecurrence=}
$refreshplan.value.Schedule.Definition.StartDateTime
2019-09-05T02:00:00-04:00
$refreshplan=Invoke RestMethod-usedaultcredentials-uri$($baseURI+“api/v2.0/PowerBIReports(路径=“+”/prototype/report 1“+”)/CacheRefreshP
局域网“)
$refreshplan.value.ScheduleDescription
从2019年9月5日开始,每天凌晨2:00
$refreshplan.value.Schedule.Definition
StartDateTime EndDate EndDate指定的重复周期
------------- ------- ---------------- ----------
2019-09-05T02:00:00-04:00 0001-01-01T00:00:00Z假{MinuteRecurrence=;dailRecurrence=;WeeklyRecurrence=;MonthlyRecurrence=;MonthlyDOWRecurrence=}
$refreshplan.value.Schedule.Definition.StartDateTime
2019-09-05T02:00:00-04:00
您需要调用API并传递新计划,例如:
{
"value": {
"days": [
"Sunday",
"Tuesday",
"Friday",
"Saturday"
],
"times": [
"07:00",
"11:30",
"16:00",
"23:30"
],
"localTimeZoneId": "UTC"
}
}
要查找组,您可以使用API并枚举使用API的组中的数据集,当然,您也可以为自己准备一个列表。找到了
$refreshplan = Invoke-RestMethod -UseDefaultCredentials -uri $($webPortalURL + "/api/v2.0/PowerBIReports(path='/PBIReport/ConnectionStringIM')/CacheRefreshPlans")
$body = @{
"@odata.context" = $($webPortalURL)+"/api/v2.0/`$metadata#CacheRefreshPlans/`$entity";
"Id" = $($refreshplan.value[0].Id);
"CatalogItemPath" = $($refreshplan.value[0].CatalogItemPath);
"EventType" = $($refreshplan.value[0].EventType);
"Schedule" = @{
"ScheduleID" = $null;
"Definition"= @{
"StartDateTime" = "2020-03-18T05:00:00+05:30";
"EndDate" = "0001-01-01T00:00:00Z";
"EndDateSpecified" = $false;
"Recurrence" = @{
"DailyRecurrence" = @{
"DaysInterval"=1
}
}
}
};
"ParameterValues" = @();
}
Invoke-RestMethod -UseDefaultCredentials -uri $($webPortalURL + "/api/v2.0/CacheRefreshPlans(e794244c-6743-4100-a9e7-f6eab486fc30)") -Method Put -Body ($body | ConvertTo-Json -Depth 100) -ContentType "application/json"
不幸的是,这使用了数据集……这对于pbix报告来说也很常见吗?从MS文档中,我看到报表与数据集具有不同的API数据集刷新的是数据集,而不是报表。即使在站点中,刷新计划也在数据集的设置中。执行此操作时:invoke restmethod-usedefaultcredentials-uri“”我得到远程服务器返回的错误:(403)禁止。请参阅我的答案,我使用了另一种方法:)