× Linguagem de Programação ADVPL

Perguntas Ponto de Entrada - OM010TOK

Mais
10 anos 2 meses atrás #25156 por alemaocar
Boa Tarde Pessoal, tudo bem!
Estou começando no ADVPL, e estou com problema em uma rotina de PE, que já estava customizada aqui na empresa, e apos a atualização começo a dar este problema abaixo:
variable does not exist AHEADER on U_OM010TOK(OM010TOK.PRW) 18/08/2014 09:00:49 line : 39

Um pedaço da Rotina:
User Function OM010TOK()

Local _aArea := GetArea()
Local _aAreaDA0 := GetArea("DA0")
Local _aAreaDA1 := GetArea("DA1")

Local _lReturn := .T.

Private _cNL := Chr(13) + Chr(10)
Private _nI := 0
Private _nJ := 0

Private _npITEM := aScan(aHeader,{|x| AllTrim(x[2]) == "DA1_ITEM"})
Private _npPRCVEN := aScan(aHeader,{|x| AllTrim(x[2]) == "DA1_PRCVEN"})

Private _nTamaHead := Len(aHeader)
Private _nTamaCols := Len(aCols)
Private _aItens := {}
Private _lAlterado := .F.
Private _lZerados := .F.
Private _cZerados := ""

Processa({ || CursorWait(), _VERIFIC(), CursorArrow()}, "Verificando alterações...", "por favor, aguarde.", .F.)

//O Protheus ja verifica se existem itens zerados, porem, ao criar esse ponto de entrada (OM010TOK), o sistema apenas emite o aviso de item zerado mas deixa gravar.
//Por isso foi necessario criar o teste de itens zerados para verificar novamente e bloquear a gravacao caso necessario.
If _lZerados
msgStop("Não é permitido cadastrar produtos com preço de venda zerado. Corrija o(s) seguinte(s) item(ns):" + _cNL + _cNL + _cZerados, "[" + FunName() + "] - Atenção!")
Return(!_lReturn)
EndIf

If _lAlterado //Se houve alteracoes entao gera o workflow
Processa({ || CursorWait(), _WORKFLO(), CursorArrow()}, "Gerando e-mail para auditoria...", "por favor, aguarde.", .F.)
EndIf

RestArea(_aAreaDA0)
RestArea(_aAreaDA1)
RestArea(_aArea)

Return(_lReturn)

Pelo erro identificado é um problema de criação de variavel, neste caso pelo que identifiquei o erro pode estar neste ponto:
Private _npITEM := aScan(aHeader,{|x| AllTrim(x[2]) == "DA1_ITEM"})

Se alguem tiver uma opinião ai, a ajuda sera bem vinda..

Obrigado a todos...

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #25157 por kanaamlrr
Respondido por kanaamlrr no tópico Ponto de Entrada - OM010TOK
Michel,
Essa variável vem diretamente do fonte padrão da TOTVS.
Pode ser que o nome dela tenha sido alterado por algum motivo.
Tente debugar esse PE coloque um ponto de parada na linha que você mencionou e procure o array aHeader na janela de Variáveis privadas do IDE.
Depois é só substituir.
Abraço!

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #25164 por alemaocar
Respondido por alemaocar no tópico Ponto de Entrada - OM010TOK
Kanaãm,
Verifiquei a questão da Variavel em debug, e não aparece o valor do aHeader na janela de Variável privada. Inclui o print do momento do debug..Tem alguma noção do que pode ser?
Valeu pela atenção...
Obrigado..
Anexos:

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #25180 por kanaamlrr
Respondido por kanaamlrr no tópico Ponto de Entrada - OM010TOK
Michel, o print que você tirou não é da janela de "variáveis privadas"
Verifique em "Ferramentas->Janelas de debug->Variáveis privadas"

Por favor Acessar ou Registrar para participar da conversa.

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