Hoje trago para vocês, o lançamento da versão 1.1 do PChangeRPO (troca de RPO a quente no Protheus).
Havia uma necessidade no passado de trocar o RPO a quente no Protheus (basicamente você compilar e sobrepor o RPO de produção com um RPO de compilação, assim suas customizações entrarem no ar a quente), então na época eu havia desenvolvido um projeto Open Source chamado PChangeRPO.
Isso foi em meados de 2017, e recentemente um amigo veio em perguntar no Discord se teria como adicionar algumas features e melhorias no projeto, então estou lançando aqui a versão 1.1 do PChangeRPO.
Antes de conhecer as novidades, abaixo os links para download e para conhecer o projeto:
- Página Oficial da Atilio Sistemas sobre o PChangeRPO
- Download do executável (precisa ter o Java instalado na máquina)
- Download do código fonte
- Página do GitHub do projeto
- Artigo com o Conceito de Troca de RPO / Compilação a Quente no Protheus
Agora vamos as novidades:
Arquivo appserver.ini com outros nomes
Essa foi a sugestão realizada, onde no cenário apontado, existiam appserver.ini com outros nomes, por exemplo, appserver_slave1.ini.
Para esse cenário, foi feito uma tratativa, onde iria ser procurador qualquer arquivo com o nome “appserver” com a extensão “.ini”, e esse arquivo em específico seria manipulado.
Barra de Carregamento
Antigamente, existia apenas um label informativo, e o cursor do mouse ficava em modo carregamento.
Agora, foi adicionado uma barra de carregamento, onde ao iniciar o processamento, ela demonstra estar carregando.
Botões de Abrir e Salvar a configuração
Quando se atendia mais de um cliente, era necessário fazer algumas “gambiarras” para se usar vários PChangeRPO cada um com uma configuração diferente.
Agora, foram criados dois botões, um de Salvar a configuração, onde é possível apontar para alguma pasta e salvar um arquivo .json, e também foi criado o botão de Abrir a configuração, que basta apontar para esse arquivo .json.
Dessa forma, se você atende mais empresas que utilizam o conceito de troca de RPO a quente, basta você exportar essa configuração, deixando ela salva em algum diretório, e depois abrir.
Adição de botões para seleção de pastas
Na parte das pastas dos APOs, antes era necessário abrir a pasta e copiar o caminho, agora tem um botão que você clica, ele mostra uma tela de explorer para você selecionar a pasta do APO.
Projeto no padrão Eclipse
Antigamente, para programar em Java, eu usava o KDevelop, porém para atualizar o projeto e deixar em um padrão de fácil manutenção, adaptei a estrutura de pastas, para funcionar com o Eclipse.
Então, caso você queira “brincar” com os códigos fontes, basta instalar o Eclipse, e importar os códigos fontes do projeto, seja via GitHub ou via o código fonte disponível nos links acima.
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Opa Atilio, boa dica, fiz scripts no linux pra automatizar isso, porém eu encontrei um problema muito sério quanto a isto, toda vez que trocava o rpo a quente, eu tinha problemas em algumas rotinas do backoffice, ex: pedido de venda não calculava certo as parcelas de notas, impostos,trocava numeração da nota fiscal, colocava chave de nota fiscal em nota autorizava, e corrompia alguns slaves. Passei a atualização de RPO apenas em modo exclusivo e nunca mais tive problemas.
Grande Claudio, tudo joia?
Ah sim, existe esse risco, ainda mais se tiver algumas transações com customizações.
Porém, até no TCloud da TOTVS, hoje é feito essa tratativa de Troca de RPO a quente, pode ser que eles tenham melhorado essa parte, se possível tente realizar algum teste para verificar.
Grande abraço.
Olá Atílio,
Fiz o teste. copiou o arquivo RPO para o lugar informado. Mas não alterou o arquivo appserver.ini
Oi Atilio, Descobri que o programa faz diferença entre letras maiúsculas e minúsculas no caminho. Se estiver diferente dentro do Appserver.ini. o programa não substitui o caminho no appserver.ini
Fala Cleber, tudo joia?
Ah entendi, faz sentido. Java é case sensitive.
Vou adicionar aqui no backlog, depois quando tiver um tempo eu dou uma mexida no código.
Grande abraço jovem e obrigado pelo feedback.