× Linguagem de Programação ADVPL

Perguntas PE FT600FGR / APARENTE ERRO EM OUTRA ROTINA APOS UTILIZACAO DO GETDADOS

Mais
11 anos 3 meses atrás #9878 por andre_rocha
Amigos,

Estou criando uma rotina que transporte conteúdos gravados na proposta comercial (ADY/ADZ) para o orcamento que é criado automaticamente (SCJ/SCK).

A rotina funciona, mas, aparentemente, existe algum problema quando utilizo os objetos GetDados que sao passados para o PE via PARAMIXB. Digo isso por que o sistema passa pelo PE, o PE nao reporta erro, faz o que tem que fazer, porem na execucao de uma rotina subsequente, que depende inclusive de um clique do usuario, o sistema da THREAD ERROR.

Fato 1: Quando eu descompilo o PE o erro nao ocorre.
Fato 2: O PE cumpre a funçao.

Segue abaixo o codigo fonte e o THREAD ERROR.


Fonte:
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³FT600FGR º Autor ³ Andre Rocha º Data ³ 19/01/13 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescricao ³ Transporta valores dos campos de medida da proposta para o º±±
±±º ³ Orcamento º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Faturamento º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/

User Function FT600FGR()

nOpc := PARAMIXB[1] // Numérico Opção do aRotina
cProposta := PARAMIXB[2] // Caractere Número da proposta
oGetDad1 := PARAMIXB[3] // Array of Record GetDados dos produtos
_my_aHeader := oGetDad1:aHeader
_my_aCols := oGetDad1:aCols
_my_aArea := GetArea()

If nOpc = 3 .OR. nOpc = 4

DBSelectArea("SCK")
DBSetOrder(5)

For i:=1 to Len(_my_aCols)

If !_my_aCols[i,Len(_my_aHeader)+1] //----> CONSIDERA SOMENTE LINHAS NAO DELETADAS

SCK->(DBSEEK(xFilial("SCK")+cProposta+_my_aCols[i,aScan(_my_aHeader,{|x| Alltrim(x[2])== "ADZ_ITEM"})]))
RecLock("SCK",.F.)
SCK->CK_YUNSVEN := _my_aCols[i,aScan(_my_aHeader,{|x| Alltrim(x[2])== "ADZ_YUNSVE"})]
SCK->CK_YCOMBRU := _my_aCols[i,aScan(_my_aHeader,{|x| Alltrim(x[2])== "ADZ_YCOMBR"})]
SCK->CK_YALTBRU := _my_aCols[i,aScan(_my_aHeader,{|x| Alltrim(x[2])== "ADZ_YALTBR"})]
SCK->CK_YLARBRU := _my_aCols[i,aScan(_my_aHeader,{|x| Alltrim(x[2])== "ADZ_YLARBR"})]
SCK->CK_YCOMLIQ := _my_aCols[i,aScan(_my_aHeader,{|x| Alltrim(x[2])== "ADZ_YCOMLI"})]
SCK->CK_YALTLIQ := _my_aCols[i,aScan(_my_aHeader,{|x| Alltrim(x[2])== "ADZ_YALTLI"})]
SCK->CK_YLARLIQ := _my_aCols[i,aScan(_my_aHeader,{|x| Alltrim(x[2])== "ADZ_YLARLI"})]
MsUnlock()
EndIf

Next

EndIf

Restarea(_my_aArea)

Return(.T.)

**************************************************************
ERRO:

THREAD ERROR (Administrador, WIN-LOATPA1IX0L) 23/01/2013 09:12:39
variable is not an object on MSNEWGETDADOS:EXECUTE(APLIB170.PRW) 06/09/2011 17:28:17 line : 433

[TOTVS build: 7.00.111010P-20120120]
Called from MSNEWGETDADOS:TUDOOK(APLIB170.PRW) 06/09/2011 17:28:17 line : 445
Called from FT300OK(FATA300.PRX) 29/08/2012 11:21:44 line : 2148
Called from {||NOPCA:=IF(FT300OK({OGETDAD1,OGETDAD2,OGETDAD3,OGETDAD4,OGETDAD5},OFOLDER:NOPTION) .AND. OBRIGATORIO(AGETS,ATELA),1,0),IF(NOPCA==1,OFOLDER:SETOPTION(IF(OFOLDER:NOPTION<>1,1,2)),NIL),IF((NOPCA==1 .AND. FT300MOTEN(@CMOTIVO,@CMEMO,@NOPCA,NOPCX)),ODLG:END(),NIL)}(FATA300.PRX) 29/08/2012 11:21:44 line : 463
Called from eval line : 6663
Called from SAFEEVAL(MSLIB.PRW) 23/08/2012 17:49:04 line : 6663
Called from {|| ( LOKOK:=IF(LMESSAGEDEL,IIF(FINDFUNCTION("APMSGYESNO"), APMSGYESNO(OEMTOANSI(IF( CPAISLOC $ "ANG|PTG", "CONFIRMAR A EXCLUSãO ?", "CONFIRMA A EXCLUSAO ?" )), OEMTOANSI("ATENçãO")), (CMSGYESNO:="MSGYESNO", &CMSGYESNO.(OEMTOANSI(IF( CPAISLOC $ "ANG|PTG", "CONFIRMAR A EXCLUSãO ?", "CONFIRMA A EXCLUSAO ?" )), OEMTOANSI("ATENçãO")))), .T. ),LOK:=IF(LOKOK,(REGOTO(NREG,CALIAS),SAFEEVAL(BOK)), .F. ),EVALRETOK(LOK,NBAR),IF(TYPE("INCLUI") = "L" .AND. __NNIVELBAR == 0,__LLOOP := INCLUI,)) }(MSLIB.PRW) 23/08/2012 17:49:04 line : 1394
Called from ::MSDIALOG:ACTIVATE
Called from FT300ALTER(FATA300.PRX) 29/08/2012 11:21:44 line : 463
Called from FWMBROWSE:EXECUTE(FWFORMBROWSE.PRW) 02/07/2012 10:10:13 line : 1013
Called from { || OSELF:EXECUTE("FT300ALTER", 4, 0,"ALTERAR", 4,"","ALTERAR","", 4) } line : 120
Called from eval line : 120
Called from {|| If( lClick, ( lClick := .F., eval({ || OSELF:EXECUTE("FT300ALTER", 4, 0,"ALTERAR", 4,"","ALTERAR","", 4) }), lClick := .T., ), "")} line : 120
Called from ::MSDIALOG:ACTIVATE
Called from FWMBROWSE:ACTIVATE(FWMBROWSE.PRW) 23/08/2012 17:27:21 line : 593
Called from FWMBROWSE(MSLIB.PRW) 23/08/2012 17:49:04 line : 11495
Called from MBROWSE(MSLIB.PRW) 23/08/2012 17:49:04 line : 155
Called from FATA300(FATA300.PRX) 29/08/2012 11:21:44 line : 129
Called from __EXECUTE(APLIB090.PRW) 21/08/2012 15:52:51 line : 556
Called from FWPREEXECUTE(FWPREEXECUTE.PRW) 17/08/2011 18:06:36 line : 65
Called from {|| FWPreExecute('Oportunidades', 'FATA300()', 1, '05', 'xxxxxxxxxx') } line : 158
Called from ::TWINDOW:ACTIVATE
Called from MSAPP:ACTIVATE(FWAPP.PRW) 20/08/2012 14:07:59 line : 523
Called from SIGAFAT(APLIB000.PRW) 05/09/2012 18:33:06 line : 129
Publicas ....
.......

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 3 meses atrás #9881 por kanaamlrr
Cara, você já tentou mudar o nome do seu objeto oGetDad1?
Pode ser que ele esteja entrando em conflito com algum objeto padrão.

Testa ai e posta se deu certo.
Valeu!

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 3 meses atrás #9882 por andre_rocha
Era exatamente isso.

Obrigado Kanaãm!

Por favor Acessar ou Registrar para participar da conversa.

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