Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 如何使用API更新/编辑刷新计划?_Powerbi_Powershell 5.0 - Fatal编程技术网

Powerbi 如何使用API更新/编辑刷新计划?

Powerbi 如何使用API更新/编辑刷新计划?,powerbi,powershell-5.0,Powerbi,Powershell 5.0,我们有100个报告在刷新计划中落后,Microsoft向我们确认了它的工作方式:刷新以FIFO的形式排队,因此服务器上的刷新计划越多,报告刷新所需的时间就越长,而与计划预期无关 经过讨论,我们决定建立刷新计划治理,这样用户就不会创建计划了,我们会的。但是有数百个计划(每个报告一个),手动一个接一个地更新它们需要很长时间 我们如何更新时间表,比如说每天上午10点或下午2点刷新 我能够深入到cacherefreshplan信息,但我不确定如何使用新值“更新它”。在上,我看到了PUT,但不确定这是否是

我们有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)禁止。请参阅我的答案,我使用了另一种方法:)