【发布时间】:2020-02-14 16:19:12
【问题描述】:
我正在尝试从 PBI 报表服务器设置刷新通知(失败的报表)。
作为 PBI 报表服务器的管理员,我希望收到报表服务器中所有刷新失败的报表的通知。
我看到可以从 PowerBI 桌面(个人工作区)配置“发送刷新通知”选项,但我没有看到 PBI 报表服务器的任何选项。
【问题讨论】:
标签: notifications powerbi refresh
我正在尝试从 PBI 报表服务器设置刷新通知(失败的报表)。
作为 PBI 报表服务器的管理员,我希望收到报表服务器中所有刷新失败的报表的通知。
我看到可以从 PowerBI 桌面(个人工作区)配置“发送刷新通知”选项,但我没有看到 PBI 报表服务器的任何选项。
【问题讨论】:
标签: notifications powerbi refresh
您可以在您的 sql 代理作业中使用此 sql 代码:
USE PBIRS;
DECLARE @MAIL_BODY VARCHAR(8000);
/* HEADER */
SET @MAIL_BODY =
'<table border="1" align="center" cellpadding="2" cellspacing="0" style="color:black;font-family:consolas;text-align:center;">'
+ '<tr>
<th>Dashboard Name</th>
<th>Refresh Status</th>
</tr>';
/* ROWS */
SELECT @MAIL_BODY = @MAIL_BODY + '<tr>' + '<td>' + [c].[Name] + '</td>' +
'<td>' + [LastStatus] + '</td>' + '</tr>'
FROM [PBIRS].[dbo].[Subscriptions] [s]
LEFT JOIN [dbo].[Catalog] [c] ON [s].[Report_OID] = [c].[ItemID];
SELECT @MAIL_BODY = @MAIL_BODY + '</table>';
IF
(
SELECT COUNT(*)
FROM [PBIRS].[dbo].[Subscriptions] [s]
LEFT JOIN [dbo].[Catalog] [c] ON [s].[Report_OID] = [c].
[ItemID]
WHERE [LastStatus] NOT IN('Completed Data Refresh')
) != 0
BEGIN
EXEC [msdb].[dbo].[sp_send_dbmail]
@profile_name = 'profile_name',
@recipients = 'your_email_address',
@subject =
'[The Refresh failed.] These dashboards Faild to Refresh successfully',
@body = @MAIL_BODY,
@body_format = 'HTML';
END;
将 profile_name 替换为您实例中的电子邮件配置文件,并将 your_email_address 替换为您想要的任何电子邮件。
这段代码有什么作用? 它检查哪个仪表板未能成功刷新并通过电子邮件发送列表。输出是这样的:
【讨论】:
【讨论】: