none
Configuração de job com condição para rodar. RRS feed

  • Pergunta

  • Pessoal,

    Venho por meio deste solicitar ajuda para ajustar um job que configurei, preciso incluir uma condição onde, se o campo Dt.Vencimento existente na query for = ' ' (branco) a job não deverá rodar e consequentemente disparar o e-mail 

    abaixo a configuração existente. Caso alguem possa me ajudar.

    DECLARE @CURRDATE VARCHAR(10)
    DECLARE @tab_char CHAR, @subject nvarchar(150), @query_attachment_filename nvarchar(150), @recipients nvarchar(300), @copy_recipients nvarchar(300)

    SET @CURRDATE = CONVERT(VARCHAR, GETDATE(),112)

    SELECT @tab_char =' ',
    @subject = 'ALERTA DE VENCIMENTO - ' + @currdate, 
    @query_attachment_filename = 'ALERTA DE VENCIMENTO_' + @currdate + '.xls',
    @recipients = 'maria_s@hotmail.com',
    @copy_recipients='joao_m@hotmail.com'

    -- schedule extract to send alert
    USE msdb 
    EXECUTE AS USER = 'dbo' 
    EXEC msdb.dbo.sp_send_dbmail
    @recipients = @recipients,
    @copy_recipients = @copy_recipients,
    @body = 'Prezado Cliente ',
    @subject = @subject,
    @profile_name = null,
    @query ='
    SELECT ''''
     [TIPO],
     [Documento],
          [Parcela],
          [TotalTitulo],
          cast([Dt.Emissão] as Date) as ''Dt.Emissão'',  
          cast([Dt.Vencimento] as Date) as ''Dt.Vencimento''

      FROM [fox_PRD].[dbo].[Pre_Pagamento_DMA]',
    @attach_query_result_as_file = 1,
    @query_result_separator = @tab_char,
    @query_result_width = 32767,
    @exclude_query_output = 0,
    @query_result_no_padding = 1,
    @append_query_error = 1,
    @query_result_header = 1, 
    @query_attachment_filename = @query_attachment_filename

    segunda-feira, 13 de junho de 2016 15:51

Respostas

  • Boa tarde Cristiane,

    Você pode fazer uma verificação antes de chamar a proc pra enviar o Email, exemplo,

    IF(SELECT COUNT(*)  FROM [fox_PRD].[dbo].[Pre_Pagamento_DMA] WHERE [Dt.Vencimento] <> '') > 0
    BEGIN 

    -- ENVIA O EMAIL
    END

    Pode utilizar Exists tbm, foi apenas um exemplo que voce pode utilizar para verificação antes de disparar o email.

    Att

    Reginaldo Silva

    segunda-feira, 13 de junho de 2016 18:56

Todas as Respostas

  • Boa tarde Cristiane,

    Você pode fazer uma verificação antes de chamar a proc pra enviar o Email, exemplo,

    IF(SELECT COUNT(*)  FROM [fox_PRD].[dbo].[Pre_Pagamento_DMA] WHERE [Dt.Vencimento] <> '') > 0
    BEGIN 

    -- ENVIA O EMAIL
    END

    Pode utilizar Exists tbm, foi apenas um exemplo que voce pode utilizar para verificação antes de disparar o email.

    Att

    Reginaldo Silva

    segunda-feira, 13 de junho de 2016 18:56
  • Deleted
    segunda-feira, 13 de junho de 2016 19:21
  • Reginaldo

    Obrigada pela ajuda, inseri a verificação conforme sugerido por você e a job rodou perfeitamente.

    Att

    Cristiane

    quarta-feira, 15 de junho de 2016 15:36
  • José

    Boa tarde, na verdade seria apenas uma condição para que se query estivesse os campos em branco a job não enviasse o e-mail.

    A sugestão do nosso amigo Reginaldo funcionou perfeitamente.

    Ainda sim agradeço a sua atenção.

    Att

    Cristiane

    quarta-feira, 15 de junho de 2016 15:38