Pessoal, bom dia... Tenho um .p (exemplo.p) com a seguinte estrutura: Código: def var i-parametro as integer no-undo. assign i-parametro = 1. run pi-calcula. procedure pi-calcula: //faz alguma coisa end procedure. procedure pi-seta-parametro: def input param p-parametro as integer no-undo. assign i-parametro = p-parametro. end procedure. Posso chamar este programa direto, rodando ele com o paremetro "fixo" 1: Código: run exemplo.p. Ou posso chamar ele persistente, passando um outro parametro: Código: def var h-exemplo as handle no-undo. run exemplo.p persistent set h-exemplo. run pi-seta-parametro in h-exemplo(input 2). run pi-calcular in h-exemplo. Ambas as formas funcionam, o problema é que quando uso a rotina como persistente ele já sai executando primeiro a pi-calcula com o parametro 1, depois seto o parametro que eu quero e executa de volta. Minha pergunta é, como faço para que o programa exemplo.p quando chamado persistent já não execute automaticamente a pi-calcula? A exemplo.p já existe e roda em diversos programas chamando diretamente, apenas em um novo programa eu preciso rodar com um parametro diferente e não quero duplicar código. Obrigado. Obs: caso tenha erro de sintaxe no meu código favor ignorar pois escrevi ele diretamente aqui no post do fórum. Obrigado.
Eita, pessoal, desculpa o incomodo, usei as palavras certas na documentação da Progress e achei aqui é só testar o PERSISTENT da THIS-PROCEDURE dentro do exemplo.p Obrigado pelo tempo dispensado. Código: def var i-parametro as integer no-undo. assign i-parametro = 1. if not THIS-PROCEDURE:PERSISTENT then run pi-calcula. procedure pi-calcula: //faz alguma coisa end procedure. procedure pi-seta-parametro: def input param p-parametro as integer no-undo. assign i-parametro = p-parametro. end procedure.
Eu sou bem sincero com vc, eu prefiro o modo persistent, funciona como uma biblioteca de funções que eu acesso a qualquer momento dentro da minha aplicação, não tem aquele tempinho perdido fazendo um run ...., carrega, processa, retorna, joga fora .... entende, e dai partimos pra criar classes.
Bom dia meu caro, concordo contigo... Este projeto estou fazendo ela ficar persistente só para esta etapa que foi o que passou no escopo do projeto...