Histórico da Página
...
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:
...
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, é destacado alguns itens relacionados a regra as regras de negócio 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. || Criar imagem que destaque local do email que irá aparecer o campo demonstrado NSX_ASSUNT,C,100 AGENDAMENTO FOLLOW-UP -- O campo Query irá conter toda regra de campos que irão aparecer no emaile-mail, todos os campos mencionados na parte do corpo do emaile-mail (Tabela NT8 ) devem ter sua representação aqui. -- É importante estar atento as regras de negócionegócios e possíveis variaçoesvariações de acordo com o ambiente utilizado, principalmente ono que diz respeidorespeito 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 CaracterCaractere. -- 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 caractercaractere, para isso precisamos converte-los para o formato correto. || Mostrar conversões possíves e explicar BLOB e CLOB -- 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 Join´s"Joins", abaixo é exemplificado o Join entre Entrea 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 se a resposta da queryQuery deve ser uma coluna ( campo ) para cada campo no banco, . -- sendo assim se precisarmosCaso precise de mais dados para uma mesma tabela associada ao registro, necessitariamosnecessitaríamos de mais joins"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 queryQuery optei por utiliza-la exclusivamente para Oo Tipo de Assuntos JuridicosJurí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: Segue alguns exemplos no zip abaixo ( devem ser adaptados de acordo com o ambiente e contexto de utilização ): .
View file | ||||
---|---|---|---|---|
|
View file | ||||
---|---|---|---|---|
|
...