Access Violation eIfStmt

Boa tarde!

O problema abaixo é intermitente no cliente e a linha acusada no fonte tem a seguinte sintaxe:

nAnaAglu := Eval(&bAglut) 

// Esta variavel baglut é o retorno de uma função: 
// bAglut := PLSRETAGL(aVlrCob,'aMatSD2','cCodProSB1','cCodTES','nValorItem',,;
//                    'nPPrcVen','nPTES','nPCod',,aStruSD2)

Essa função retorna um ascan

SEGUE O ERRO


Stack : 
Access Violation eIfStmt on PLAGLUSD2(PLSTOSE1.PRW) 17/05/2017 18:40:14 line : 858

[build: 7.00.131227A-20151103]
[environment: lote]
[thread: 5964]
[dbthread: 8616]
[rpodb: Top]
[localfiles: CTREE]
[remark: Emp :01/10 Logged :rsdias                    SIGAPLS  Obj :PLSA627 - Lotes de Cobrança]
[threadtype: RmtSockThread]
Called from PLSTOSE1(PLSTOSE1.PRW) 17/05/2017 18:40:14 line : 266
Called from PLGERREC(PLSA510.PRW) 03/02/2016 16:50:38 line : 1402
Called from PLSGERTIT(PLSA627.PRW) 30/05/2016 16:27:48 line : 9945
Called from A627ITENS(PLSA627.PRW) 30/05/2016 16:27:48 line : 1757
Called from PLS627PROC(PLSA627.PRW) 30/05/2016 16:27:48 line : 555
Called from { || LRET := PLS627PROC(NOPC, _NH) }(PLSA627.PRW) 30/05/2016 16:27:48 line : 442
Called from eval line : 415
Called from { || EVAL( BACTION ) , LEND := .T.  , RESTKEYS( ASVKEYS , .T.  ) , ODLG2BARGAUGE:END() }(GPPROCES.PRW) 17/06/2011 10:59:54 line : 415
Called from ::MSDIALOG:ACTIVATE
Called from PROC2BARGAUGE(GPPROCES.PRW) 17/06/2011 10:59:54 line : 417
Called from PL627MOV(PLSA627.PRW) 30/05/2016 16:27:48 line : 442
Called from FWMBROWSE:EXECUTE(FWFORMBROWSE.PRW) 04/01/2017 16:53:56 line : 1078
Called from { || OSELF:EXECUTE("PL627MOV",              3,             0,"NOVO LOTE",              3,"('BDC', BDC->(RECNO()), 3)","NOVO LOTE","",               3) } line : 578
Called from ::MSDIALOG:ACTIVATE
Called from FWMBROWSE:ACTIVATE(FWMBROWSE.PRW) 06/12/2016 19:36:40 line : 669
Called from FWMBROWSE(MSLIB.PRW) 29/11/2016 18:48:16 line : 12666
Called from MBROWSE(MSLIB.PRW) 29/11/2016 18:48:16 line : 170
Called from PLSA627(PLSA627.PRW) 30/05/2016 16:27:48 line : 156
Called from __EXECUTE(APLIB090.PRW) 20/01/2017 10:25:36 line : 581
Called from MDIEXECUTE(APLIB260.PRW) 06/06/2016 16:11:42 line : 806
  • Poderia imprimir o retorno da função e postar aqui quando o erro acontecer? Além disso, você realmente precisa de macro substituição no Eval? http://tdn.totvs.com/display/tec/Access+Violation+no+AppServer+ao+debugar

    Renan   26 de jul de 2017
  • Perdoe a minha ignorância, mas o que seria ascan como retorno ? Só conheço aScan como função de pesquisa dentro de array. Não sabia que é possível ter um Return aScan(). É isso mesmo ? Att. Don Junior.

    Don Junior   26 de jul de 2017
  • Provavelmente a função PLAGLUSD2 retorna uma string que é uma expressão que utiliza aScan. Ex: "aScan(aVetor,'valor')". Assim, usando '&', esse aScan é resolvido e retorna um code block. E então esse code block é executado via Eval().

    Renan   27 de jul de 2017
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do SigaOAdvpl!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags ou faça a sua própria pergunta.