Как обновлять / редактировать графики refre sh с помощью API? - PullRequest
0 голосов
/ 18 марта 2020

У нас есть сотни отчетов, которые отставали по графику refre sh, и Microsoft подтвердила с нами, что так оно и есть: обновления ставятся в очередь как FIFO, поэтому чем больше планов refre sh на сервере, тем больше времени понадобится отчетам, чтобы переформулировать sh, независимо от ожидаемого графика.

После обсуждений мы решили установить sh refre sh управление расписанием, поэтому пользователи не будут создавать расписания, мы это сделаем. Но существуют сотни расписаний (по одному на каждый отчет), и их обновление вручную по одному займет вечность.

Как мы можем обновлять расписания, например, выполнять refre sh в 10:00 или 14:00 ежедневно?

Мне удалось перейти к информации cacherefreshplan, но я не уверен, как «обновить его» с новыми значениями. На swagger я вижу 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

Ответы [ 2 ]

1 голос
/ 18 марта 2020

Вам нужно позвонить Обновить Refre sh Расписание в группе API и передать новое расписание, например:

{
  "value": {
    "days": [
      "Sunday",
      "Tuesday",
      "Friday",
      "Saturday"
    ],
    "times": [
      "07:00",
      "11:30",
      "16:00",
      "23:30"
    ],
    "localTimeZoneId": "UTC"
  }
}

Чтобы найти группы, вы можете использовать Получить Группы API и перечисление наборов данных в группе с помощью Получение наборов данных в группе API, или, конечно, вы можете подготовить список для себя.

0 голосов
/ 19 марта 2020

разобрался!

$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"
...