Histórico da Página
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 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
-- 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 | ||
---|---|---|
|
Alguns exemplos abaixo (zipados):
OBS: devem ser adaptados de acordo com o ambiente e contexto de utilização.
View file | ||||
---|---|---|---|---|
|
View file | ||||
---|---|---|---|---|
|