Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

Envio de Email JURA090 

Visão Geral do Programa

As rotinas  de envio de  e-mail (JURA090 + JURA091 ) utilizam como critério de dados as Querys cadastradas na rotina JURA090 ( Envio de e-mail ).

O propósito deste documento é disponibilizar alguns exemplos que possam ser adaptados a um contexto geral e explicar as principais tratativas da Query.

O conhecimento de querys SQL e respectivamente dos limites do banco que o ambiente utilizar serão necessários para o responsável pela configuração dessas querys.

JURA090 - Envio de E-mails

Objetivo da tela:

Configurar regras de envio de emails de acordo com Querys e configurações especificadas .


JURA091 - Schedule - JOB de Envio de E-mails

Objetivo da tela:

Os JOBS são configurados baseados nos cadastros criados na rotina JURA090 ( Envio de E-mails )

 

Principais Campos, Parâmetros e Conteúdos Relacionados:

Informações de como proceder para configuração e parâmetros a serem preenchidos devem ser acessados no link :   JUR0002_Configuração_de_envio_de_e-mail

 

Montando uma Query para envio de dados:

Existem diversas combinações possíveis para o envio de e-mail com as informações do sistema. 

No exemplo direcionado ao envio de informações do Follow-up, é destacado alguns itens relacionados as regras de negócios e algumas regras especificas dos bancos de dados: Microsoft SQL® e Oracle Database®.

 

Exemplo: 

Bloco de código
languagesql
themeEclipse
firstline1
titleExemplo Follow-up
linenumberstrue
--  O campo ASSUNTO ( NSX_ASSUNT )  irá ser utilizado como título do Email e seu valor é fixo.  
 
		NSX_ASSUNT,C,100
		AGENDAMENTO FOLLOW-UP                                                                               

-- O campo Query irá conter toda regra de campos que irão aparecer no e-mail, todos os campos mencionados na parte do corpo do e-mail (Tabela NT8) devem ter sua representação aqui.
-- É importante estar atento as regras de negócios e possíveis variações de acordo com o ambiente utilizado, principalmente no que diz respeito ao SGDB utilizado.
-- Veja os destaques nas linhas comentadas abaixo:

		NSX_QUERY,M
		SELECT  NTA.NTA_FILIAL, NTA.NTA_COD,

-- Para campos do tipo data como o campo NTA_DTFLWP ( Data do Follow-up ) precisamos realizar a conversão de seus valores para Data do tipo "Dia/Mês/Ano" e em seguida para Caractere.
 
-- Exemplo de conversão de data em Oracle: 
 
		TO_CHAR(TO_DATE (NTA.NTA_DTFLWP, 'YYYYMMDD'),'DD/MM/YYYY') NTA_DTFLWP,
 
-- Exemplo de conversão de data em MSSQL:
 
		CONVERT(VARCHAR(10),CONVERT(DATETIME,NTA.NTA_DTFLWP,112),103) NTA_DTFLWP,       
        
		NTA.NTA_HORA, 
 
        NTA.NTA_USUINC,
         
        NQS.NQS_DESC,
 
-- Exemplo de conversão de data em Oracle:
       
-- Campos do Tipo "MEMO" no Protheus utilizam formatos diferente de caractere, para isso precisamos converte-los para o formato correto. 

		DBMS_LOB.SUBSTR(NTA.NTA_DESC,4000,1))||(DBMS_LOB.SUBSTR(NTA.NTA_DESC,8000,4001)) NTA_DESC,
 	
 
-- Exemplo de conversão de data em MSSQL:
    
	    CONVERT(VARCHAR(8000), NTA.NTA_DESC) NTA_DESC,  
 
        NTA.NTA_CAJURI,
         
        NSZ.NSZ_CCLIEN, 
         
        NSZ.NSZ_LCLIEN, 
         
        SA1.A1_NOME, 
         
        NSZ.NSZ_NUMCAS, 
 
        NVE.NVE_TITULO, 
         
        NQ6.NQ6_DESC, 
         
        NQC.NQC_DESC, 
         
        NQE.NQE_DESC, 
         
        NUQ.NUQ_NUMPRO    
 
   		FROM    NTAT10  NTA
 
  -- É possível realizar a maioria dos comando SQL, inclusive "Joins", abaixo é exemplificado o Join entre a tabela NTA (Follow-ups) com a tabela NQN (Resultado de Followup)
                
				LEFT JOIN NQNT10  NQN ON (NTA.NTA_CRESUL = NQN.NQN_COD)
               
				AND NQN.NQN_TIPO = '1'
 
  -- O tratamento do campo D_E_L_E_T_ é obrigatório para não ocorrer inconsistência nos dados e a melhor prática é verificar se ele está vazio utilizando espaço entre aspas  (' ')
                
				 AND NQN.D_E_L_E_T_ = ' '      
                
				LEFT JOIN NQST10  NQS ON (NTA.NTA_CTIPO  = NQS.NQS_COD)
                
			    AND NQS.D_E_L_E_T_ = ' ', 
         	   NSZT10  NSZ
                 LEFT JOIN SA1T10  SA1 ON (NSZ.NSZ_CCLIEN = SA1.A1_COD

                 AND NSZ.NSZ_LCLIEN = SA1.A1_LOJA
                  
				AND SA1.D_E_L_E_T_ = ' ')      
                LEFT JOIN NVET10  NVE ON (NSZ.NSZ_CCLIEN = NVE.NVE_CCLIEN 
                    
				AND NSZ.NSZ_LCLIEN = NVE.NVE_LCLIEN
                  
  				AND NSZ.NSZ_NUMCAS = NVE.NVE_NUMCAS)
                  
 				 AND NVE.D_E_L_E_T_ = ' ', 
            
				NUQT10  NUQ
 
                LEFT JOIN NQ6T10  NQ6 ON (NUQ.NUQ_CCOMAR = NQ6.NQ6_COD
                    AND NQ6.D_E_L_E_T_ = ' ' )     
             
				 LEFT JOIN NQCT10  NQC ON (NUQ.NUQ_CLOC2N = NQC.NQC_COD
                 AND NQC.D_E_L_E_T_ = ' ' )     
                
				LEFT JOIN NQET10  NQE ON (NUQ.NUQ_CLOC3N = NQE.NQE_COD)
                
				AND NQE.D_E_L_E_T_ = ' '
   
				WHERE NTA.NTA_FLAG01 = '1'   
 
       			AND NTA.NTA_FILIAL = NUQ.NUQ_FILIAL    
 
      			AND NTA.NTA_CAJURI = NUQ.NUQ_CAJURI   
 
-- Nesta linha solicitei apenas dados da instância atual, lembrando que a resposta da Query deve ser uma coluna (campo) para cada campo no banco.
-- Caso precise de mais dados para uma mesma tabela associada ao registro, necessitaríamos de mais "Joins" com nomes de campos alterados. Exemplo:
 
 		NUQ2.NUQ_NUMPRO NUQ_NUMPRO2
      
  		AND NUQ.NUQ_INSATU = '1'   
 
        AND NTA.NTA_FILIAL = NSZ.NSZ_FILIAL   
 
        AND NTA.NTA_CAJURI = NSZ.NSZ_COD   
     
-- Nessa Query optei por utiliza-la exclusivamente para o Tipo de Assuntos Jurídicos (Tabela NYB ) 001 - Contencioso.
     
  		AND NSZ.NSZ_TIPOAS = '001'
 
        AND NSZ.D_E_L_E_T_ = ' '   
 
        AND NVE.D_E_L_E_T_ = ' '   
 
        AND NTA.D_E_L_E_T_ = ' '   
        
	   AND NUQ.D_E_L_E_T_ = ' '
	   ORDER BY( NTA.NTA_FILIAL + NTA.NTA_COD)

Video no YouYube How To Jurídico:

 

Conector de Widget
urlhttp://youtube.com/watch?v=S0CTa4cbkro


Alguns exemplos abaixo (zipados):

OBS: devem ser adaptados de acordo com o ambiente e contexto de utilização.

View file
nameExemplos para ORACLE.zip
height250
View file
nameExemplos para MSSQL.zip
height250