- Fórum
- Protheus/Microsiga/Totvs
- Módulos do Protheus
- Módulo Financeiro
- Lentidão Compensação CR após Migração P11 FINA330
Perguntas Lentidão Compensação CR após Migração P11 FINA330
- lalberto
- Autor do Tópico
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
12 anos 2 meses atrás #5661
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Lentidão Compensação CR após Migração P11 FINA330 foi criado por lalberto
Pessoal descobri o meu problema na lentidação da compensação,
Criei o ponto de entrada FA330QRY para que pudesse visualizar a query montada para busca dos títulos da compensação, e surpriseeeeeeeeeee!!!!
SELECT DISTINCT E1_FILIAL,E1_PREFIXO,E1_NUM,E1_PARCELA,E1_IRRF,E1_MOEDA,
E1_TIPO,E1_SALDO,E1_EMISSAO,E1_CLIENTE,E1_LOJA,E1_NOMCLI,
E1_SDACRES,E1_SDDECRE,E1_HIST,E1_PIS,E1_COFINS,E1_CSLL,E1_TXMOEDA,
E1_VLCRUZ,SE1.R_E_C_N_O_ RECSE1, A1_CGC
FROM SE1080 SE1
LEFT JOIN SA1050 SA1 ON (SE1.E1_LOJA = SA1.A1_LOJA)
WHERE SE1.E1_FILIAL >= ' '
AND SE1.E1_FILIAL <= 'ZZ'
AND SE1.E1_CLIENTE = '000274'
AND SE1.E1_SITUACA NOT IN ('I','J')
AND SE1.E1_TIPO NOT IN ('NCC','RA ','PR ')
AND SE1.E1_TIPO NOT IN ('AB-','FB-','FC-','FU-','IR-','IN-','IS-','PI-','CF-','CS-','FE-','IV-')
AND SE1.E1_SALDO > 0 AND SE1.E1_EMISSAO <= '20120918'
AND SE1.D_E_L_E_T_ = ' ' AND SA1.D_E_L_E_T_ = ' '
ORDER BY E1_FILIAL,E1_PREFIXO,E1_NUM,E1_PARCELA,E1_TIPO
Ou seja, ele busca um titulo para cada linha de cliente do cadastro inteiro cujo a loja seja idêntica rsrs
SELECT DISTINCT E1_FILIAL,E1_PREFIXO,E1_NUM,E1_PARCELA,E1_IRRF,E1_MOEDA,
E1_TIPO,E1_SALDO,E1_EMISSAO,E1_CLIENTE,E1_LOJA,E1_NOMCLI,
E1_SDACRES,E1_SDDECRE,E1_HIST,E1_PIS,E1_COFINS,E1_CSLL,E1_TXMOEDA,
E1_VLCRUZ,SE1.R_E_C_N_O_ RECSE1, A1_CGC
FROM SE1080 SE1
LEFT JOIN SA1050 SA1 ON (SE1.E1_LOJA = SA1.A1_LOJA AND SE1.E1_CLIENTE = SA1.A1_COD)
WHERE SE1.E1_FILIAL >= ' '
AND SE1.E1_FILIAL <= 'ZZ'
AND SE1.E1_CLIENTE = '000274'
AND SE1.E1_SITUACA NOT IN ('I','J')
AND SE1.E1_TIPO NOT IN ('NCC','RA ','PR ')
AND SE1.E1_TIPO NOT IN ('AB-','FB-','FC-','FU-','IR-','IN-','IS-','PI-','CF-','CS-','FE-','IV-')
AND SE1.E1_SALDO > 0 AND SE1.E1_EMISSAO <= '20120918'
AND SE1.D_E_L_E_T_ = ' ' AND SA1.D_E_L_E_T_ = ' '
ORDER BY E1_FILIAL,E1_PREFIXO,E1_NUM,E1_PARCELA,E1_TIPO
Efetuei o tratamento da query no ponto de entrada e beleza!!!!!!!!!!!!!!!!!!
Pra quem precisar segue o ponto de entrada:
#include "rwmake.ch"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ FA330QRY ºAutor ³Luiz Alberto MasterAdvplº Data ³ 18/09/12 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Ponto de Entrada para tratamento da Query da Compensação de Contas
a Receber, temporário para correção de falha
programa padrão.
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ AP7 º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function FA330QRY()
Local cQuery := PARAMIXB[1]
Local cSep := IIf("|"$MV_CRNEG,"|",",")
Local cOrdemSE1 := SE1->(IndexKey())
If mv_par10 == 2
cFilDe := cFilAnt
cFilAte:= cFilAnt
Else
cFilDe := mv_par11
cFilAte:= mv_par12
Endif
cQuery := "SELECT DISTINCT E1_FILIAL,E1_PREFIXO,E1_NUM,E1_PARCELA,E1_IRRF,E1_MOEDA,E1_TIPO,E1_SALDO,E1_EMISSAO,E1_CLIENTE,E1_LOJA,E1_NOMCLI,E1_SDACRES,E1_SDDECRE,E1_HIST,E1_PIS,E1_COFINS,E1_CSLL,E1_TXMOEDA,E1_VLCRUZ,"
cQuery += "SE1.R_E_C_N_O_ RECSE1, A1_CGC,A1_PESSOA FROM "
cQuery += RetSqlName("SE1") + " SE1 LEFT JOIN "
cQuery += RetSqlName("SA1") + " SA1 ON (SE1.E1_LOJA = SA1.A1_LOJA) AND (SE1.E1_CLIENTE = SA1.A1_COD) "
cQuery += " WHERE "
If mv_par10 == 2
cQuery += "SE1.E1_FILIAL = '"+ xFilial("SE1")+"' AND "
Else
cQuery += "SE1.E1_FILIAL >= '"+ cFilDe +"' AND "
cQuery += "SE1.E1_FILIAL <= '"+ cFilAte+"' AND "
Endif
If mv_par02 == 1
cQuery += "SE1.E1_CLIENTE = '"+cCliente+"' AND "
Else
cQuery += "SE1.E1_CLIENTE >= '"+mv_par03+"' AND "
cQuery += "SE1.E1_CLIENTE <= '"+mv_par04+"' AND "
Endif
If mv_par01 == 1 .And. mv_par02 == 1
cQuery += "SE1.E1_LOJA = '"+cLoja+"' AND "
Endif
If mv_par05 == 2
cQuery += "SE1.E1_SITUACA IN ('0','F','G') AND "
Endif
If cPaisLoc <> "BRA"
If lCredito
cQuery += "SE1.E1_TIPO NOT IN " + FormatIn( MV_CRNEG+cSep+MVRECANT,cSep) + " AND "
Else
cQuery += "SE1.E1_TIPO IN " + FormatIn( MV_CRNEG+cSep+MVRECANT,cSep) + " AND "
Endif
Else
If lCredito
cQuery += "SE1.E1_TIPO NOT IN " + FormatIn( MV_CRNEG+cSep+MVRECANT+cSep+MVPROVIS,cSep) + " AND "
Else
If (cTipoTit $ MVRECANT .And. cTipoTit $ MV_CRNEG )
cQuery += " (SE1.E1_TIPO NOT IN " + FormatIn(MVRECANT,",") + " OR "
cQuery += "SE1.E1_TIPO NOT IN " + FormatIn( MV_CRNEG,cSep) + ") AND "
ElseIf !(cTipoTit $ MVRECANT) .And. !(cTipoTit $ MV_CRNEG )
cQuery += " ( SE1.E1_TIPO IN " + FormatIn(MVRECANT,",") + " OR "
cQuery += "SE1.E1_TIPO NOT IN " + FormatIn( MV_CRNEG,cSep) + ") AND "
Endif
Endif
Endif
cQuery += "SE1.E1_TIPO NOT IN " + FormatIn(MVABATIM,"|") + " AND "
cQuery += "SE1.E1_SALDO > 0 AND "
cQuery += "SE1.E1_EMISSAO <= '"+DtoS(dDatabase)+ "' AND "
cQuery += "SE1.D_E_L_E_T_ = ' ' AND "
If mv_par10 == 2
cQuery += "SA1.A1_FILIAL = '" + xFilial("SA1") + "' AND "
EndIf
cQuery += "SA1.D_E_L_E_T_ = ' ' "
cQuery += "ORDER BY " + SqlOrder(cOrdemSE1)
Return cQuery
Criei o ponto de entrada FA330QRY para que pudesse visualizar a query montada para busca dos títulos da compensação, e surpriseeeeeeeeeee!!!!
SELECT DISTINCT E1_FILIAL,E1_PREFIXO,E1_NUM,E1_PARCELA,E1_IRRF,E1_MOEDA,
E1_TIPO,E1_SALDO,E1_EMISSAO,E1_CLIENTE,E1_LOJA,E1_NOMCLI,
E1_SDACRES,E1_SDDECRE,E1_HIST,E1_PIS,E1_COFINS,E1_CSLL,E1_TXMOEDA,
E1_VLCRUZ,SE1.R_E_C_N_O_ RECSE1, A1_CGC
FROM SE1080 SE1
LEFT JOIN SA1050 SA1 ON (SE1.E1_LOJA = SA1.A1_LOJA)
WHERE SE1.E1_FILIAL >= ' '
AND SE1.E1_FILIAL <= 'ZZ'
AND SE1.E1_CLIENTE = '000274'
AND SE1.E1_SITUACA NOT IN ('I','J')
AND SE1.E1_TIPO NOT IN ('NCC','RA ','PR ')
AND SE1.E1_TIPO NOT IN ('AB-','FB-','FC-','FU-','IR-','IN-','IS-','PI-','CF-','CS-','FE-','IV-')
AND SE1.E1_SALDO > 0 AND SE1.E1_EMISSAO <= '20120918'
AND SE1.D_E_L_E_T_ = ' ' AND SA1.D_E_L_E_T_ = ' '
ORDER BY E1_FILIAL,E1_PREFIXO,E1_NUM,E1_PARCELA,E1_TIPO
Ou seja, ele busca um titulo para cada linha de cliente do cadastro inteiro cujo a loja seja idêntica rsrs
SELECT DISTINCT E1_FILIAL,E1_PREFIXO,E1_NUM,E1_PARCELA,E1_IRRF,E1_MOEDA,
E1_TIPO,E1_SALDO,E1_EMISSAO,E1_CLIENTE,E1_LOJA,E1_NOMCLI,
E1_SDACRES,E1_SDDECRE,E1_HIST,E1_PIS,E1_COFINS,E1_CSLL,E1_TXMOEDA,
E1_VLCRUZ,SE1.R_E_C_N_O_ RECSE1, A1_CGC
FROM SE1080 SE1
LEFT JOIN SA1050 SA1 ON (SE1.E1_LOJA = SA1.A1_LOJA AND SE1.E1_CLIENTE = SA1.A1_COD)
WHERE SE1.E1_FILIAL >= ' '
AND SE1.E1_FILIAL <= 'ZZ'
AND SE1.E1_CLIENTE = '000274'
AND SE1.E1_SITUACA NOT IN ('I','J')
AND SE1.E1_TIPO NOT IN ('NCC','RA ','PR ')
AND SE1.E1_TIPO NOT IN ('AB-','FB-','FC-','FU-','IR-','IN-','IS-','PI-','CF-','CS-','FE-','IV-')
AND SE1.E1_SALDO > 0 AND SE1.E1_EMISSAO <= '20120918'
AND SE1.D_E_L_E_T_ = ' ' AND SA1.D_E_L_E_T_ = ' '
ORDER BY E1_FILIAL,E1_PREFIXO,E1_NUM,E1_PARCELA,E1_TIPO
Efetuei o tratamento da query no ponto de entrada e beleza!!!!!!!!!!!!!!!!!!
Pra quem precisar segue o ponto de entrada:
#include "rwmake.ch"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ FA330QRY ºAutor ³Luiz Alberto MasterAdvplº Data ³ 18/09/12 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Ponto de Entrada para tratamento da Query da Compensação de Contas
a Receber, temporário para correção de falha
programa padrão.
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ AP7 º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function FA330QRY()
Local cQuery := PARAMIXB[1]
Local cSep := IIf("|"$MV_CRNEG,"|",",")
Local cOrdemSE1 := SE1->(IndexKey())
If mv_par10 == 2
cFilDe := cFilAnt
cFilAte:= cFilAnt
Else
cFilDe := mv_par11
cFilAte:= mv_par12
Endif
cQuery := "SELECT DISTINCT E1_FILIAL,E1_PREFIXO,E1_NUM,E1_PARCELA,E1_IRRF,E1_MOEDA,E1_TIPO,E1_SALDO,E1_EMISSAO,E1_CLIENTE,E1_LOJA,E1_NOMCLI,E1_SDACRES,E1_SDDECRE,E1_HIST,E1_PIS,E1_COFINS,E1_CSLL,E1_TXMOEDA,E1_VLCRUZ,"
cQuery += "SE1.R_E_C_N_O_ RECSE1, A1_CGC,A1_PESSOA FROM "
cQuery += RetSqlName("SE1") + " SE1 LEFT JOIN "
cQuery += RetSqlName("SA1") + " SA1 ON (SE1.E1_LOJA = SA1.A1_LOJA) AND (SE1.E1_CLIENTE = SA1.A1_COD) "
cQuery += " WHERE "
If mv_par10 == 2
cQuery += "SE1.E1_FILIAL = '"+ xFilial("SE1")+"' AND "
Else
cQuery += "SE1.E1_FILIAL >= '"+ cFilDe +"' AND "
cQuery += "SE1.E1_FILIAL <= '"+ cFilAte+"' AND "
Endif
If mv_par02 == 1
cQuery += "SE1.E1_CLIENTE = '"+cCliente+"' AND "
Else
cQuery += "SE1.E1_CLIENTE >= '"+mv_par03+"' AND "
cQuery += "SE1.E1_CLIENTE <= '"+mv_par04+"' AND "
Endif
If mv_par01 == 1 .And. mv_par02 == 1
cQuery += "SE1.E1_LOJA = '"+cLoja+"' AND "
Endif
If mv_par05 == 2
cQuery += "SE1.E1_SITUACA IN ('0','F','G') AND "
Endif
If cPaisLoc <> "BRA"
If lCredito
cQuery += "SE1.E1_TIPO NOT IN " + FormatIn( MV_CRNEG+cSep+MVRECANT,cSep) + " AND "
Else
cQuery += "SE1.E1_TIPO IN " + FormatIn( MV_CRNEG+cSep+MVRECANT,cSep) + " AND "
Endif
Else
If lCredito
cQuery += "SE1.E1_TIPO NOT IN " + FormatIn( MV_CRNEG+cSep+MVRECANT+cSep+MVPROVIS,cSep) + " AND "
Else
If (cTipoTit $ MVRECANT .And. cTipoTit $ MV_CRNEG )
cQuery += " (SE1.E1_TIPO NOT IN " + FormatIn(MVRECANT,",") + " OR "
cQuery += "SE1.E1_TIPO NOT IN " + FormatIn( MV_CRNEG,cSep) + ") AND "
ElseIf !(cTipoTit $ MVRECANT) .And. !(cTipoTit $ MV_CRNEG )
cQuery += " ( SE1.E1_TIPO IN " + FormatIn(MVRECANT,",") + " OR "
cQuery += "SE1.E1_TIPO NOT IN " + FormatIn( MV_CRNEG,cSep) + ") AND "
Endif
Endif
Endif
cQuery += "SE1.E1_TIPO NOT IN " + FormatIn(MVABATIM,"|") + " AND "
cQuery += "SE1.E1_SALDO > 0 AND "
cQuery += "SE1.E1_EMISSAO <= '"+DtoS(dDatabase)+ "' AND "
cQuery += "SE1.D_E_L_E_T_ = ' ' AND "
If mv_par10 == 2
cQuery += "SA1.A1_FILIAL = '" + xFilial("SA1") + "' AND "
EndIf
cQuery += "SA1.D_E_L_E_T_ = ' ' "
cQuery += "ORDER BY " + SqlOrder(cOrdemSE1)
Return cQuery
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- rbtmarques
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 1
- Obrigados Recebidos: 0
12 anos 1 mês atrás #6174
por rbtmarques
Respondido por rbtmarques no tópico Re: Lentidão Compensação CR após Migração P11 FINA330
vlw muito obrigado pela dica estava com o mesmo problema e consegui resolver com sua dica...
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Autor do Tópico
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
12 anos 1 mês atrás #6175
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Re: Lentidão Compensação CR após Migração P11 FINA330
Blz Roberto seja bem vindo ao MasterAdvpl e divulgue o site aos amigos.
Abraços.
Coloca sua foto ai pra gente te conhecer melhor.
Abraços.
Coloca sua foto ai pra gente te conhecer melhor.
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- Módulos do Protheus
- Módulo Financeiro
- Lentidão Compensação CR após Migração P11 FINA330
Tempo para a criação da página:0.140 segundos