Histórico da Página
...
No exemplo direcionado ao envio de informações do Follow-up é destacado alguns itens relacionados a regra de negócio e algumas regras especificas dos bancos Microsoft SQL® e Oracle Database®.
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
000001-FOLLOW-UP (AGENDAMENTO).
-- O campo Query irá conter toda regra de campos que irão aparecer no email, todos os campos mencionados na parte do corpo do email ( NT8 ) devem ter sua representação aqui.
-- É importante estar atento as regras de negócio e possíveis variaçoes de acordo com o ambiente utilizado, principalmente o que diz respeido 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 Caracter. || Mostrar exemplos em Oracle e MSSQL
TO_CHAR(TO_DATE (NTA.NTA_DTFLWP, 'YYYYMMDD'),'DD/MM/YYYY') NTA_DTFLWP,
NTA.NTA_HORA,
NTA.NTA_USUINC,
NQS.NQS_DESC,
-- Campos do Tipo MEMO no Protheus utilizam formatos diferente de caracter, 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,5000,1))||(DBMS_LOB.SUBSTR(NTA.NTA_DESC,5000,5001)) 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 NTA010 NTA
-- É possível realizar a maioria dos comando SQL, inclusive Join´s, abaixo é exemplificado o Join Entre NTA ( Follow-ups ) com a tabela NQN ( Resultado de Followup )
LEFT JOIN NQN010 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 NQS010 NQS ON (NTA.NTA_CTIPO = NQS.NQS_COD)
AND NQS.D_E_L_E_T_ = ' ',
NSZ010 NSZ
LEFT JOIN SA1010 SA1 ON (NSZ.NSZ_CCLIEN = SA1.A1_COD)
AND NSZ.NSZ_LCLIEN = SA1.A1_LOJA)
AND SA1.D_E_L_E_T_ = ' '
LEFT JOIN NVE010 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_ = ' ',
NUQ010 NUQ
LEFT JOIN NQ6010 NQ6 ON (NUQ.NUQ_CCOMAR = NQ6.NQ6_COD)
AND NQ6.D_E_L_E_T_ = ' '
LEFT JOIN NQC010 NQC ON (NUQ.NUQ_CLOC2N = NQC.NQC_COD)
AND NQC.D_E_L_E_T_ = ' '
LEFT JOIN NQE010 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 query deve ser uma coluna ( campo ) para cada campo no banco,
-- sendo assim se precisarmos de mais dados para uma mesma tabela associada ao registro necessitariamos de mais joins com nomes de campos alterados. 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 Juridicos ( 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_ = ' '
|
Links dos principais conceitos e processos.
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas