Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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
languagesql
themeEclipse
firstline1
titleExemplo Follow-up
linenumberstrue


--  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.

...