Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago

Power BI Report Server SSRS Subscription

Hello,

 

I have a SSRS report and I imported it to PBIRS. I have arranged e-mail subscriptions and that is ok.

 

My problem is, sometimes my report returns no result and I do not want PBIRS to send any e mail. Now, it sends e-mail with no result, just empty colons.

 

How can I handle this?

 

Best regards.

4 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    You can create a data driven subscription. In the query where you select  the data, you can make the check if the report should send. If not, the row is not in the resultset.

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hello Anonymous,

       

      Can you give more detail? For instance, my mail query is below:

       

      if (select COUNT(*) from MIX.rapor.vIkMailRaporu) > 1

      begin

       

       

      select

      'mail adresses of my company'

      as Mail

       

      end

       

      else begin

      select ' ' as Mail

      end;

       

       where should I make this check? I want PBIRS not to send e mail if my report has no result. 

       

      Best regards.

  • em172967's avatar
    em172967
    Frequent Visitor

    You can only use the data driven subscription if the PBIRS instance is on an enterprise license.

     

    If it is not, you can stop the schedule in PBIRS but still leave the job intact so you have the To: , cc: etc and get the nice report server formatting.

     

    Then from the SQL Agent create you own scheduled job that calls the PBIRS job. You'll need to look up the SQLAgent guid.

    You can use this and change 'YOUR REPORT NAME%' accordingly:

    use ReportServer
    go
    select S.ScheduleID as SQLAgent_Job_Name
    	,SUB.Description as Sub_Desc
    	,SUB.DeliveryExtension as Sub_Del_Extension
    	,C.name as ReportName
    	,C.Path as ReportPath
    	,SUB.LastStatus
    	,SUB.LastRunTime
    	FROM ReportSchedule RS
    inner join Schedule S on (RS.ScheduleID = S.ScheduleID)
    inner join Subscriptions SUB on (RS.SubscriptionID = SUB.SubscriptionID)
    left join [Catalog] C on (
    		RS.ReportID = C.ItemID
    		and SUB.Report_OID = C.ItemID
    		)
    where C.name like '%YOUR REPORT NAME%' --Enter Report Name to find Job_Name
    ORDER BY SUB.LastRunTime desc

    Pseudo code for the agent job would be like

     

    If @rows > 0

    Begin

    USE msdb EXEC sp_start_job Anonymous_name = 'A00E3318-9D97-45E8-8476-526118CA62B1' /*Enter SQLAgent_Job_Name for PBIRS job*/

    End

     

    Else

    Return /* nothing to do */

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Additionally, if you have a PBI RS you have the Enterprise Edition. So you have the option to create data driven subscriptions.