Histórico da Página
Envio de Email JURA090
Visão Geral do Programa
As rotinas de envio de email e-mail (JURA090 + JURA091 ) utilizam como critério de dados as Querys cadastradas na rotina JURA090 ( Envio de email e-mail ).
O propósito deste documento é disponibilizar alguns exemplos que possam ser adaptados ao a um contexto geral e explicar as principais tratativas da queryQuery.
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 EmailsE-mails
Objetivo da tela: | Configurar regras de envio de emails de acordo com Querys e configurações especificadas . |
JURA091 - Schedule - JOB de Envio de EmailsE-mails
Objetivo da tela: | Os JOBS são configurados baseados nos cadastros criados na rotina JURA090 ( Envio de Emails 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:
Existe Existem diversas combinações possíveis para o envio de email e-mail com as informações do sistema.
No exemplo direcionado ao envio de informações do Follow-up destaquei alguns itens relacionados a regra de negócio que é recomendável ser
, é 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 | ||||
---|---|---|---|---|
|