首页 > 解决方案 > 来自 PBI 报表服务器的刷新通知

问题描述

我正在尝试从 PBI 报表服务器设置刷新通知(失败的报表)。
作为 PBI 报表服务器的管理员,我希望收到报表服务器中所有未能刷新的报表的通知。

我看到有一个“发送刷新通知”选项可以从 PowerBI 桌面(个人工作区)进行配置,但我没有看到 PBI 报表服务器的任何选项。

标签: notificationspowerbirefresh

解决方案


您可以在 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 替换为您想要的任何电子邮件。

这段代码有什么作用?它检查哪个仪表板未能成功刷新并通过电子邮件发送列表。输出将是这样的:

电子邮件输出


推荐阅读