Página 1 de 1

Troca de versão de sistema

Enviado: 10 Jan 2017 18:09
por leandrolinauer
Boa tarde a todos.
Gostaria de saber se há alguma forma de fazer o sistema executar automaticamente quando for feito a troca de versão?

Exemplo que já tenho funcionando.

Rodo o sistema e depois de consultado e verificado que tem versão nova e tem que trocar antes de entrar ele entra no codigo abaixo:

Código: Selecionar todos

ShowWait(,,"VERSÃO DESATUALIZADA, atualizando o sistema...")
FErase(wD_IniEXE+"PROGRAMA.OLD")    //exclui o antigo
FRename(wD_IniEXE+"PROGRAMA.EXE",wD_IniEXE+"PROGRAMA.OLD") //renomea o programa atual
CopyFile(wD_Instal+"PROGRAMA.EXE",wD_IniEXE+"PROGRAMA.EXE" ) //copia do servidor o novo
         
ShowMessage(,,"ATUALIZADO COM SUCESSO, FAVOR ACESSAR O SISTEMA NOVAMENTE...",4)

e sai do sistema, fecha.

aí nesta parte eu quero que o sistema ja fechado execute novamente e entre ja com a versão nova., tem como fazer isto?

Um abraço a todos.
:)Pos

Troca de versão de sistema

Enviado: 10 Jan 2017 18:20
por leandrolinauer
Boa tarde a todos.
Consegui, deu certo, eu havia tentando com RUN() mas este nao da certo aí fiz com hb_Openprocess(wD_IniEXE+"PROGRAMAEXE") e deu certo.

Valeu, consegui.
Grato a todos
:xau

Troca de versão de sistema

Enviado: 12 Jan 2017 01:31
por fladimir
Como ficou o código completo poderia postar?

[]´s

Troca de versão de sistema

Enviado: 16 Jan 2017 14:09
por leandrolinauer
Boa tarde
segue:

Código: Selecionar todos

   lDatePRG:=FileDate(wD_IniEXE+"MEUPROGRAMA.EXE") //pego a data do programa.
   lTimePRG:=FileTime(wD_IniEXE+"MEUPROGRAMA.EXE") //pego a data do programa.
   lSizePRG:=FileSize(wD_IniEXE+"MEUPROGRAMA.EXE") //pego o tamanho do arquivo
   //dados do sistema no servidor
   sDatePRG:=FileDate(wD_Instal+"MEUPROGRAMA.EXE") //pego a data do programa.
   sTimePRG:=FileTime(wD_Instal+"MEUPROGRAMA.EXE") //pego a data do programa.
   sSizePRG:=FileSize(wD_Instal+"MEUPROGRAMA.EXE") //pego o tamanho do arquivo
	
   If wE_Modo=="PRODUCAO".And. (lDatePRG # sDatePRG .Or. lTimePRG # sTimePRG .Or. lSizePRG # sSizePRG )//o programa esta desatualizado  
      ShowWait(,,"VERSÃO DESATUALIZADA, atualizando o sistema...")
      FErase(wD_IniEXE+"MEUPROGRAMA.OLD")    //exclui o antigo
      FRename(wD_IniEXE+"MEUPROGRAMA.EXE",wD_IniEXE+"MEUPROGRAMA.OLD") //renomea o programa atual
      CopyFile(wD_Instal+"MEUPROGRAMA.EXE",wD_IniEXE+"MEUPROGRAMA.EXE" ) //copia do servidor onov
      hb_Openprocess(wD_IniEXE+"MEUPROGRAMA.EXE") //EXECUTA O SISTEMA NOVAMENTE
   EndIf		   
Basta apenas o código acima, o sistema novo trocado é executado.

Troca de versão de sistema

Enviado: 16 Jan 2017 17:01
por fladimir
Obrigado Leandro pelo retorno, mas tenho 2 questões

Em q momento dispara esta rotina?
E como ficam outros terminais q estejam executando o sistema, exemplo 1 lançando nota, outro vendendo etc?

Troca de versão de sistema

Enviado: 18 Jan 2017 12:05
por leandrolinauer
Bom dia.
Primeiro tive que colocar todos os sistema LOCAL, ou seja, instalados na máquina, assim cada terminal fica com sua própria execução e atualização.
Não executo mais pela REDE, notei que demora muito mais para o programa abrir e causa muito problema com WIN7 e lentidão nas telas.
Não faço atualização que tenha estruturação de banco de dados, porque isto afetaria a todos de uma só vez, estas faço fora de hora, ainda não bolei algo que ficasse pendurado, aguardando a liberação do banco de dados para que seja feita, quando tem urgência e a filial pode parar aí faço a troca, senão aguardo para fora do horario mesmo.
Não consegui ainda, caso no mesmo terminal esteja com dois programas aberto, neste caso da falha e some com o executável aí tenho que entrar e arrumar manualmente.
Esta rotina é disparada na inicialização do sistema, coloco para verificar toda vez que entro no sistema pelo próprio sistema, ele verifica na pasta do servidor se tem uma versão nova, ou seja, eu atualizo apenas no servidor, depois cada terminal verifica e se atualiza sozinho, alguns demoram mais a fazer a atualização porque esta atendendo, outros menos, pq todos tem que entrar para fazer um a um.
Com o tempo quero aprimorar mais e minha idéia é chegar no seguinte:
-Faço a atualização e coloco na internet para download.
-O servidor na filial verifica constantemente e se tiver nova versão, baixa e se atualiza e se estrutura se necessário e liberado.
-O terminal verifica no servidor e se atualiza, (já implantado e funcionando)

Nestes meio termo, necessito fazer as regras abaixo, que não existe ainda.
-O servidor só se atualiza caso a versão poder estruturar ou não o banco de dados.
-O terminal tbem só se atualiza se estiver livre o programa para fazer, ou seja, apenas um programa na mesma máquina.
-E obrigar os demais sistemas a sairem se for feita a atualização no servidor, caso ainda não se atualizaram.

Bom, detalhadamente funciona desta forma acima descrito.
Tudo de bom, qualquer dúvida, estamos aí.
:)Pos

Troca de versão de sistema

Enviado: 18 Jan 2017 12:35
por fladimir
Obrigado