Power BI C#API:如何更新数据集的refreshSchedule?

时间:2020-06-12 08:28:25

标签: c# azure dataset powerbi

以下是我无法更新数据集的refreshSchedule的错误:

{
“错误”:{
“ code”:“ InvalidRequest”,
“ message”:“仅应用程序所有者请求的NotifyOption值'MailOnFailure'无效”
}
}

下面是调用它的代码:

var datasets = await client.Datasets.GetDatasetsAsync(new Guid(_workspaceId));
var days = new List<Days?> { Days.Monday, Days.Tuesday, Days.Wednesday, Days.Thursday, Days.Friday, Days.Saturday, Days.Sunday };
var times = new List<string> { "00:00" };
var refreshSchedule = new RefreshSchedule(days, times, true, "UTC");
var id = "XXX";

await client.Datasets.TakeOverAsync(new Guid(_workspaceId), id);
var refreshRequest = new RefreshRequest(NotifyOption.NoNotification);
// refresh datasets
await client.Datasets.RefreshDatasetAsync(new Guid(_workspaceId), id, refreshRequest);
// Target: Update RefreshSchedule (Exception for calling this)
await client.Datasets.UpdateRefreshScheduleInGroupAsync(new Guid(_workspaceId), id, refreshSchedule);

1 个答案:

答案 0 :(得分:1)

您能否让我知道应用程序如何使用端点-通过AppOnly或使用主用户凭据完成的User Interventaion或Completeley?

或者,如果您不希望 MailOnfailure ,是否可以为“刷新计划”明确设置“无通知并尝试”?

只是修改了您的代码,并在下面显示:

 var refreshSchedule = new RefreshSchedule(days, times, true, "UTC", ScheduleNotifyOption.NoNotification);

摘要:

var days = new List<Days?> { Days.Monday, Days.Tuesday, Days.Wednesday, Days.Thursday, Days.Friday, Days.Saturday, Days.Sunday };
var times = new List<string> { "00:00" };
//Fixed code
var refreshSchedule = new RefreshSchedule(days, times, true, "UTC", ScheduleNotifyOption.NoNotification);

await client.Datasets.UpdateRefreshScheduleInGroupAsync(WorkspaceId, datasets.Id, refreshSchedule);

更新

当我使用ServicePrincipal时(没有任何UserIntervention / Master User Credential)

我能够解决您的问题

错误 状态:BadRequest(400)响应:{“错误”:{“代码”:“ InvalidRequest”,“消息”:“ Invalid NotifyOption” 仅应用所有者请求的值“ MailOnFailure””}}

通过使用上面提到的refreshSchedule中的 ScheduleNotifyOption.NoNotification ,我能够克服该错误。

enter image description here

或者如果我通过启用了邮件功能的帐户来使用该应用程序。