Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pedrovisk

Envio Batch e E-Mail

Recommended Posts

Galera,

 

Estou trabalho em um sistema que dispara notificações para determinados usuário CINCO DIAS antes da data de vencimento de um determinado trabalho. Essa data fica em um BD SQL 2000 com um formato datime.

Logo abaixo, do código anexo, há uma consulta onde traz os último registros, 5 dias antes da data de Conclusão, até tá beleza, e lista mais de um registro, mas no momento de enviar, está enviando apenas para o primério registro.

 

Outra dúvida, está rotina funcionará TODA vez que um usuário acessar o site?

 

<script LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
	Application.Lock
		Application("UsuarioAtual") = 0
		Application("TodosUsuarios") = 0
		'Data do Plano de Acao definida como Hoje
		Application("Data_PA_Hoje") = Date
		'Data do Plano de Acao mais 5 dias - Para enviar a Notificação para Conclusão com menos de 5 dias
		Application("Data_PA_DeEnvio") = DateAdd("d", 5, Date)			  
	Application.UnLock
End Sub

Sub Session_OnStart
	' Set timeout to be 1 minute
	Session.Timeout = 60

	Application.Lock
		Application("UsuarioAtual") = Application("UsuarioAtual") + 1
		Application("TodosUsuarios") = Application("TodosUsuarios") + 1
	Application.UnLock

'Agora a sessao do usuario vai inicializar
'Vamos agora fazer uma verificação para saber se hoje é o dia da data de envio do email
'Se a data de envio e a data de hoje conferir, o email será enviado ao webmaster
	 	 	
	'If Application("Data_PA_DeEnvio") = Date then
		Application.Lock
			Application("Data_PA_Hoje") = Date
			Application("Data_PA_DeEnvio") = DateAdd("d", 5, Date)

		Set Conx = Server.CreateObject("ADODB.Connection")
		Conx.Open "Provider=SQLOLEDB;Server=10.0.0.2;Database=Qualidade;UID=usu;PWD=123"
		
		SQL = "SELECT IDPlano, LTRIM(RTRIM(Plano)) AS Plano, IDRAC, DtConclusao, DATEDIFF(DAY, GETDATE(), DtConclusao) AS Diferenca "
		SQL = SQL & "FROM dbo.SGQ_RAC_Plano_Acao "
		SQL = SQL & "WHERE (DATEDIFF(DAY, DtConclusao, GETDATE()) <= 5) "
		SQL = SQL & "ORDER BY DtConclusao DESC"
		'Response.Write(SQL)
		'Response.End()
		Set rs = Conx.Execute(SQL)
		
		If Not rs.EOF Then
		EMail_De 	= "qualidade@qt.tur.br"
		EMail_Para 	= "pedro@qt.tur.br"
			' Código para enviar o email.
			Set objMail = Server.CreateObject("CDONTS.NewMail")
				objMail.From = "Qualidade "&"<" & EMail_De & ">" 
				objMail.To = "Pedro Teixeira "&"<" & EMail_Para & ">"
				objMail.Importance = 2 'Importancia Alta
				objMail.Subject = "Vencimento do Plano de Ação da RAC N° "&rs("IDRAC")
				objMail.Bodyformat = 0 'faz com que o cdonts envie conteudo html'
				objMail.MailFormat = 0 'faz com que o cdonts envie conteudo html'
				objMail.Body = Trim(rs("Plano"))
				objMail.Send
			Set objMail = Nothing 
		End If

		rs.Close
		Set rs = Nothing
		
		Conx.Close
		Set Conx = Nothing

		Application.UnLock

	'End If

End Sub


Sub Session_OnEnd
	Application.Lock
		Application("UsuarioAtual") = Application("UsuarioAtual") - 1
	Application.UnLock
End Sub
</SCRIPT>

Obrigado a quem puder ajudar.

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

estando no Application_OnStar, ela é ativada quando qualquer scropt ASP é acessado pelo user, prefira por colocar o restante do code, em uma arquivo nomrmal, nao no .ASA, depois você apenas invoca a variavel de application e use o While...Wend e nao eskça de colocar um movenext,use o recordset

 

 

set rs=Server.CreateObject("ADODB.Recordset")
  'crio o SQL
  SQL = "SELECT IDPlano, LTRIM(RTRIM(Plano)) AS Plano, IDRAC, DtConclusao, DATEDIFF(DAY, GETDATE(), DtConclusao) AS Diferenca "
		SQL = SQL & "FROM dbo.SGQ_RAC_Plano_Acao "
		SQL = SQL & "WHERE (DATEDIFF(DAY, DtConclusao, GETDATE()) <= 5) "
		SQL = SQL & "ORDER BY DtConclusao DESC"
  rs.open SQL,Conx,1,3
While Not rs.EOF Then
		EMail_De	 = "qualidade@qt.tur.br"
		EMail_Para	 = "pedro@qt.tur.br"
			' Código para enviar o email.
			Set objMail = Server.CreateObject("CDONTS.NewMail")
				objMail.From = "Qualidade "&"<" & EMail_De & ">" 
				objMail.To = "Pedro Teixeira "&"<" & EMail_Para & ">"
				objMail.Importance = 2 'Importancia Alta
				objMail.Subject = "Vencimento do Plano de Ação da RAC N° "&rs("IDRAC")
				objMail.Bodyformat = 0 'faz com que o cdonts envie conteudo html'
				objMail.MailFormat = 0 'faz com que o cdonts envie conteudo html'
				objMail.Body = Trim(rs("Plano"))
				objMail.Send
			Set objMail = Nothing 
rs.movenext
	  wend

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.