- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ponto de Entrada - OM010TOK
×
Linguagem de Programação ADVPL
Perguntas Ponto de Entrada - OM010TOK
- alemaocar
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 8
- Obrigados Recebidos: 0
10 anos 2 meses atrás #25156
por alemaocar
Ponto de Entrada - OM010TOK foi criado 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...
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.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
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!
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.
- alemaocar
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 8
- Obrigados Recebidos: 0
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..
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..
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
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"
Verifique em "Ferramentas->Janelas de debug->Variáveis privadas"
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ponto de Entrada - OM010TOK
Tempo para a criação da página:0.125 segundos