none
Relatorio em branco(sem dados da query) no disparo de email RRS feed

  • Pergunta

  •  Criei um reporting e disparo todos os dias pela manhã, porém nem sempre possui dados para serem encaminhados aos usuarios todos os dias, e o relatório está chegando em branco, então gostaria de um auxilio para evitar o disparo de email com os dados em branco, tipo que eu possa verificar antes se a query retorne pelo menos uma linha para ocorrer o disparo, caso contrario não dispare.

     Pesquisei no foram e não consegui identificar nada semelhante, porém se alguém lembrar ou encontrar de algo é só mandar link que eu agradeço.

     ** Lembrando, o relatório está funcionando normalmente quando a query utilizada possui dados 

    Att rpssouza

     
    quarta-feira, 10 de maio de 2017 13:37

Respostas

  • Cara, deve ter outro jeito de fazer, mas essa é a única que eu encontrei.

    Primeiro acesse o BD onde está configurado o seu Reporting e execute a query abaixo:

    SELECT rs.ScheduleID FROM ReportSchedule rs 
    INNER JOIN Catalog c ON
    c.ItemID = rs.ReportID
    WHERE 
    c.Name = 'SEU_RELATORIO'

    onde está 'SEU_RELATORIO' coloque o nome do seu relatório, dessa forma, você conseguirá o ID dos JOBS de assinatura que foram criados no seu BD.

    Feito isso, vá na parte de JOBS do SQL Server e localize o ID encontrado.

    Edite o JOB e na aba "Steps" deverá existir um único passo para a chamada do seu relatório.

    Edite esse passo que deve estar algo mais ou menos assim:

    exec [ReportServer$SUAINSTANCIA].dbo.AddEvent @EventType='TimedSubscription', @EventData='e9f6b333-c01d-4cd8-8318-e8140078b780'

    Adicione um IF Exists para validar o retorno de sua query e para a execução do relatório.

    Ficaria mais ou menos assim:

    IF EXISTS (SELECT 1 FROM SUA_TABELA WHERE <CONDICOES>)
      exec [ReportServer$SUAINSTANCIA].dbo.AddEvent @EventType='TimedSubscription', @EventData='e9f6b333-c01d-4cd8-8318-e8140078b780'

    Não cheguei a testar, mas acredito que resolva o seu problema.

    Obs: Pode ser que se você alterar alguma configuração da assinatura direto no portal do SSRS ele perca o seu ajuste, seria bom testar.

    Abraço!


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    • Marcado como Resposta rpssouza quinta-feira, 11 de maio de 2017 11:58
    quarta-feira, 10 de maio de 2017 16:48
  •  Perfeito deu certo dessa forma. Obrigado
    • Marcado como Resposta rpssouza quinta-feira, 11 de maio de 2017 11:58
    quinta-feira, 11 de maio de 2017 11:57

Todas as Respostas

  • Cara, deve ter outro jeito de fazer, mas essa é a única que eu encontrei.

    Primeiro acesse o BD onde está configurado o seu Reporting e execute a query abaixo:

    SELECT rs.ScheduleID FROM ReportSchedule rs 
    INNER JOIN Catalog c ON
    c.ItemID = rs.ReportID
    WHERE 
    c.Name = 'SEU_RELATORIO'

    onde está 'SEU_RELATORIO' coloque o nome do seu relatório, dessa forma, você conseguirá o ID dos JOBS de assinatura que foram criados no seu BD.

    Feito isso, vá na parte de JOBS do SQL Server e localize o ID encontrado.

    Edite o JOB e na aba "Steps" deverá existir um único passo para a chamada do seu relatório.

    Edite esse passo que deve estar algo mais ou menos assim:

    exec [ReportServer$SUAINSTANCIA].dbo.AddEvent @EventType='TimedSubscription', @EventData='e9f6b333-c01d-4cd8-8318-e8140078b780'

    Adicione um IF Exists para validar o retorno de sua query e para a execução do relatório.

    Ficaria mais ou menos assim:

    IF EXISTS (SELECT 1 FROM SUA_TABELA WHERE <CONDICOES>)
      exec [ReportServer$SUAINSTANCIA].dbo.AddEvent @EventType='TimedSubscription', @EventData='e9f6b333-c01d-4cd8-8318-e8140078b780'

    Não cheguei a testar, mas acredito que resolva o seu problema.

    Obs: Pode ser que se você alterar alguma configuração da assinatura direto no portal do SSRS ele perca o seu ajuste, seria bom testar.

    Abraço!


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    • Marcado como Resposta rpssouza quinta-feira, 11 de maio de 2017 11:58
    quarta-feira, 10 de maio de 2017 16:48
  •  Perfeito deu certo dessa forma. Obrigado
    • Marcado como Resposta rpssouza quinta-feira, 11 de maio de 2017 11:58
    quinta-feira, 11 de maio de 2017 11:57