|
Bem Vindo, Visitante
|
Todos os Fórums
ADVPL
|
Imprimir
Enviar Para um Amigo Precisa estar Logado
|
|
|
Assunto: |
Quem Chamou a funcão |
|
Versão: |
10 |
|
Plataforma: |
Microsoft |
Complemento: |
|
|
DB: |
SQL Server |
Complemento: |
|
|
|
|
|
Mensagem do
CMKAS
em 23/06/2010, 11:29 h
Local: SP Registro: 17/06/2009 Postagens: 110 |
Preciso saber quem chamou a função,
se é um gatilho ou ponto de entrada ou
o que.
Onde está a chamada da seguinte função:
RetdupNat.prw
User Function RetDupNat
Local cDupNat := SA1->A1_NATUREZ
If (SC5->C5_TIPO $ 'N')
SE1->E1_DESCFIN := SC5->C5_DESCFI
Endif
Return cDupNat
Porque está dando o seguinte erro:
Update error - lock required - File: SE1020 in file C:\advtec9\advpl\advplfile.cpp at line 67
on U_RETDUPNAT(RETDUPNAT.PRW) 22/10/2009 line : 4
[build:7.00.080806P]
[environment: oficial]
[thread 2768]
Called from NFERFLDFIN(MATA103X.PRX) 26/05/2009 line : 1726
Called from {|| NFERFLDFIN(@CCONDICAO,@CDESCRICAO,@CNATUREZA,NMOEDACOR,@NTAXA,OCONDICAO,ONATUREZA,OMOEDA,OTAXA,ODSCMOEDA,OCTAPAG,OMULTNAT,!LVISUAL,@ACOLSSE2,AHEADSE2,@ACOLSSEV,AHEADSEV,ODESCRI)}(MATA103X.PRX) line : 861
Called from line : 3016
Called from NFEFLDCHG(MATA103X.PRX) 26/05/2009 line : 3016
Called from {|NDST| NFEFLDCHG(NDST,OFOLDER:NOPTION,OFOLDER,AFLDCBATU)}(MATA103.PRW) line : 1540
Called from line : 0
Called from A103NFISCAL(MATA103.PRW) 20/05/2009 line : 1650
Called from EXECBROW(MSLIB.PRW) 04/05/2009 line : 910
Called from {|AARRAY,NPOS,ASVROTINA,LRUNPOPUP| ASVROTINA := ACLONE(AROTINA), IF(AARRAY <> NIL,AROTINA := ACLONE(AARRAY),),SETENCH(AROTINA[NPOS][1]), INCLUI := (AROTINA[NPOS][4] == 3), ALTERA := (AROTINA[NPOS][4] == 4), EXECBROW(AROTINA[NPOS][2],IF(LEN(AROTINA[NPOS]) > 4,AROTINA[NPOS][5],),NPOS,'SF1',@AENCHO,,'XFILIAL("SF1")','XFILIAL("SF1")', .F.,.T.,LSEEALL .AND. LBRWFILON,.F.,.T.,LRUNPOPUP),IF(LAXPESQUI,MBRSETALLCOLS(CALIAS,AIDXCOL),),AROTINA := ACLONE(ASVROTINA)} line : 7709
Called from line : 7736
Called from {|| EVAL(BEXECBROW,, 3)} line : 7736
Called from line : 0
Called from MBRWINDOW(MSLIB.PRW) 04/05/2009 line : 7951
Called from MBROWSE(MSLIB.PRW) 04/05/2009 line : 587
Called from MATA103(MATA103.PRW) 20/05/2009 line : 171
Called from __EXECUTE(APLIB090.PRW) 23/04/2009 line : 888
Called from {|| __EXECUTE('MATA103()','XXXXXXXXXX','DOCUMENTO ENTRADA','04','&ATUALIZAçõES->MOVMTOS. INTERNOS',1)} line : 2631
Called from line : 0
Called from MSAPP:RUNAPP(APLIB000.PRW) 28/04/2009 line : 861
Called from SIGAADV(APLIB000.PRW) 28/04/2009 line : 2432
|
|
|
Mensagem do
ROBERTKOCH
em 23/06/2010, 11:51 h
Local: RS Registro: 14/02/2008 Postagens: 138 |
Bom dia,
Basta você "seguir a trilha" da pilha de chamadas, através da expressão "Called From". Exemplo:
Erro inicial:
on U_RETDUPNAT(RETDUPNAT.PRW) 22/10/2009 line : 4
chamado por...
Called from NFERFLDFIN(MATA103X.PRX) 26/05/2009 line : 1726
chamado por...
Called from {|| NFERFLDFIN
chamado por...
Called from NFEFLDCHG(MATA103X.PRX) 26/05/2009 line : 3016
ou seja: MATA103 é a rotina de NF de entrada. E por aí vai.
Uma dica: pontos de entrada são programas customizados e, portanto, são funções de usuário. E, como funções de usuário, são compilados com "U_" no início do nome. Pelo que reparei, a única rotina cujo nome inicia com U_ é a primeira da lista. Portanto, não haveria outros pontos de entrada envolvidos... Parece-me ser chamado a partir de alguma validação de campo ou botão.
s/mais,
Robert
|
|
|
Mensagem do
CMKAS
em 23/06/2010, 11:57 h
Local: SP Registro: 17/06/2009 Postagens: 110 |
Também acho que deve ser a validação de
algum campo, mas qual ????
Como saber isto ?????? |
|
|
Mensagem do
CMKAS
em 23/06/2010, 16:04 h
Local: SP Registro: 17/06/2009 Postagens: 110 |
A gravação está sendo executada corretamente,
este não é o problema, mas sim localizar onde
ele está sendo disparado. |
|
|
Mensagem do
AUGUSTOPAC
em 23/06/2010, 16:18 h
Local: SP Registro: 24/11/2005 Postagens: 396 |
nao está certo nao
RetdupNat.prw
User Function RetDupNat
Local cDupNat := SA1->A1_NATUREZ
If (SC5->C5_TIPO $ 'N')
SE1->E1_DESCFIN := SC5->C5_DESCFI // aqui vc tá gravando um campo sem bloqueio de registro
Endif
Return cDupNat
correto
RetdupNat.prw
User Function RetDupNat
Local cDupNat := SA1->A1_NATUREZ
If (SC5->C5_TIPO $ 'N')
reclock("SE1",.F.) // bloqueia registro para gravaçao
SE1->E1_DESCFIN := SC5->C5_DESCFI
se1->( MSUNLOCK() ) // desbloqueia registro
Endif
Return cDupNat
*** ajusta o programa e compila |
|
|
Mensagem do
CMKAS
em 23/06/2010, 16:57 h
Local: SP Registro: 17/06/2009 Postagens: 110 |
OK,
Obrigado pela correção.
Mas ainda preciso saber
de onde a função está
sendo chamada.
Alguma idéia ????
|
|
|
Mensagem do
AUGUSTOPAC
em 24/06/2010, 07:55 h
Local: SP Registro: 24/11/2005 Postagens: 396 |
pode ser na integração contabil ou alguma chamada no financeiro |
|
|
Mensagem do
PAGLIOTTO
em 24/06/2010, 10:51 h
Local: SP Registro: 25/02/2008 Postagens: 51 |
Camarada,
Insira no seu fonte uma mensagem com o a função procname()
msgalert(procname())
Essa funçã retorna quem fez a chamada da função, se passar numero no parametro ele pega quem fez a chamada anterior.
msgalert(procname())
msgalert(procname(1))
msgalert(procname(2))....
espero ter ajudado
Marcelo Pagliotto |
|
|
Mensagem do
R_CAVALINI
em 25/06/2010, 08:47 h
Local: SP Registro: 02/12/2008 Postagens: 4 |
Olhe o parametro mv_dupnat... |
|
Para postar no Fórum você precisa efetuar o seu login ou se registrar
|
|