Olá,
Estou precisando usar a rotina automática PLSA260FD6DEMAIS ("Demais Dados Cadastrais da família"), para complementar alguns dados via uma API.
Mas na hora de executar o "oModel:vldData()" dá o erro: "variable does not exist LJURIDICO"
Segue o trecho do fonte:
oModel := FWLoadModel("PLSA260FD6DEMAIS")
oModel:SetDescription('Preenche Demais Dados Cadastrais da familia')
oModel:setOperation(MODEL_OPERATION_UPDATE)
BA3->(DBGoTop()) // reposiciono pois o FWLoadModel pode ter jogado para outro registro ou para EOF
oModel:activate()
oModel:setValue( 'MasterBA3', "BA3_HORACN", '1130') )
If !(oModel:vldData() .AND. oModel:commitData())
BREAK
EndIf
oModel:DeActivate()
oModel:Destroy()
oModel := NIL
Cara foi você que criou está rotina?
Use um nome para ela até 10 caracteres e vê se resolve
Olá,
Verifique se a atualização dos fontes do Protheus resolve o seu problema, caso não resolva, abra uma issue para a equipe responsável pela manutenção da rotina PLSA260FD6DEMAIS
, pois essa rotina ou alguma dependência da mesma está utilizando de uma variável private
indevidamente e no seu caso, ela não existe.
Todo modelo pode ser utilizado fora de sua rotina ou como um serviço, logo criar uma dependência de uma variável private
é um erro.
A utilização de variáveis private
é complexa e inúmeras vezes leva a exceção, eu pessoalmente nunca uso isso.
Enquanto você aguarda a correção por parte da TOTVS você tem uma alternativa, em seu fonte você vai criar a variável lJuridico
e informar um valor booleano para a mesma, colocando por exemplo como .F.
e então efetuar novos testes, verificando se tudo foi gravado como você esperava, claro, novos erros podem ocorrer, pois é possível que a rotina dependa de outras variáveis.
Como já disse, a utilização de variáveis private não é uma boa prática, portanto caso você solucione o problema assim, recomendo você remover essa variável após a correção por parte da TOTVS.
Muito obrigado Daniel.
Vou fazer as 2 coisas: abrir uma issue para a equipe responsável pela manutenção da rotina PLSA260FD6DEMAIS e testar criar uma variável private lJuridico para ver o resultado.
E assim que tiver um resultado eu posto aqui…
Criar uma variável lJuridico não deu certo. Continua acusando “variable does not exist LJURIDICO”.
Vou tentar atualizar atualizar os fontes e o dicionário…
A criação da variável lJuridico deve ser feita como uma variável private, precisa possuir um valor lógico, a criação deve ser feita ANTES de qualquer coisa feita na rotina PLSA260FD6DEMAIS, e deve ser feita de uma forma que a stack da variável seja mantida durante a utilização da rotina PLSA260FD6DEMAIS.
Mais uma vez obrigado Daniel.
Foi isso mesmo, criei “Private lJuridico := .F.” e funcionou.
Agora vou reportar para a Totvs verificar…