Perguntas Gatilho demora muinto na primeira execução

Mais
6 anos 5 meses atrás - 6 anos 5 meses atrás #32374 por sarraipa
Estou com o seguinte problema, fiz um gatilho na rotina de solicitação de transferência MATA311, o gatilho deve preencher a TES de entrada, está funcionando.

O problema do gatilho e que no primeiro item ele demora uns 20 segundos para funcionar nos demais itens vai de forma instantânea, alguém sabe como corrigir isso?
Anexos:
Ultima edição: 6 anos 5 meses atrás por sarraipa. Razão: erro

Por favor Acessar ou Registrar para participar da conversa.

Mais
6 anos 5 meses atrás #32376 por admin
André boa tarde, vc já debugou essa função que vc usa no gatilho ?

Por favor Acessar ou Registrar para participar da conversa.

Mais
6 anos 5 meses atrás #32379 por sarraipa
Já mas acho que o problema não está no fonte, se puder da uma olhada, segue o fonte

//******************************

User Function BACTES01(cOPER,cFilDes,cProd)

LOCAL aAreaAnt := GETAREA()
LOCAL cTESeNT := ""
LOCAL cGRPROD := ""
local cChave := ""
Local cTesPad := SuperGetMv('MV_BDTESTR',,'214')
LOCAL cFil_orig := xFilial("NNT")

Default cOPER := ""
Default cFilDes := ""
Default cProd := ""



dbSelectArea("SB1")
SB1->(dbSetOrder(1))
If SB1->(DbSeek(XFilial("SB1") + cProd))
cGRPROD := SB1->B1_GRTRIB
ENDIF

//BUSCA A TES COM FORNECEDOR DE ORIGEM MAIS O GRUPO DO PRODUTO
cChave := cFilDes+cOPER+AvKey("","FM_CLIENTE")+AvKey("","FM_LOJACLI")+"07XPHH"+ALLTRIM(cFil_orig)+AvKey("","FM_GRTRIB")+AvKey("","FM_PRODUTO")+Alltrim(cGRPROD)+AvKey("","FM_EST")+AvKey("","FM_POSIPI")

dbSelectArea("SFM")
SFM->(dbSetOrder(2))

IF SFM->(dbSeek(cChave))

cTESeNT := SFM->FM_TE

ENDIF


IF EMPTY(cTESeNT)

//BUSCA A TES COM O GRUPO DO PRODUTO
cChave := cFilDes+cOPER+AvKey("","FM_CLIENTE")+AvKey("","FM_LOJACLI")+AvKey("","FM_FORNECE")+AvKey("","FM_LOJAFOR")+AvKey("","FM_GRTRIB")+AvKey("","FM_PRODUTO")+Alltrim(cGRPROD)+AvKey("","FM_EST")+AvKey("","FM_POSIPI")

dbSelectArea("SFM")
SFM->(dbSetOrder(2))

IF SFM->(dbSeek(cChave))

cTESeNT := SFM->FM_TE

ENDIF

ENDIF



//CASO NAO ENCONTRE TES PEGA O PARAMETRO 'MV_BDTESTR'
IF EMPTY(cTESeNT)

cTESeNT := cTesPad

ENDIF


RESTAREA(aAreaAnt) // Retorna o ambiente anterior


Return cTESeNT

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.096 segundos
Joomla templates by a4joomla