A bancada de quem entrega o próprio sistema. Daqui sai o instalador do
cliente novo, o pacote de atualização e a publicação no seu servidor —
e é daqui que o sistema do seu cliente passa a se atualizar sozinho.
Para quem é
Você compila, você entrega
O Studio não é um produto que o seu cliente vê.
Você recebe os fontes, compila a sua versão do sistema e atende os seus
clientes. O Studio é a ferramenta que fica na sua
bancada e transforma a sua pasta C:\Sistema em coisas que
você pode enviar: um instalador completo, um pacote de atualização, um
arquivo publicado no seu servidor.
Nada do que sai daqui leva a nossa marca. O nome do sistema, o CNPJ, os
telefones, o responsável técnico da NF-e e as suas logos vão como você
já configurou na sua base — o Studio lê tudo isso de lá em vez de pedir
de novo.
As três abas
Cada uma resolve um momento diferente da vida de um cliente.
ABA 1
Instalador completo
Um cliente novo. Empacota a sua pasta do sistema inteira com um banco
limpo, gerado a partir da sua base de teste — o cadastro
fiscal e as tabelas de referência ficam, o movimento sai.
ABA 2
Atualizador avulso
Um cliente que já opera. Você marca o que vai no pacote e saem três
arquivos: o .zip, o versao.json e um
Atualizar x.y.z.exe de dois cliques.
ABA 3
Publicação
Sobe o par de arquivos para o seu servidor por FTP, FTPS ou SFTP. Depois
baixa de volta pelo endereço público e confere — é o passo que responde
ao “publiquei e não chegou”.
Aba 1 — Instalador completo. Repare no campo
Endereço de atualização do seu servidor: é ele que faz o
sistema do cliente nascer sabendo onde procurar. Deixando em branco, o
cliente nunca procura atualização — e aí só o caminho B funciona.
O coração disto
A atualização automática, do lado do cliente
O que muda, na prática, é que ninguém mais precisa ir até lá.
Antes, atualizar um cliente era mandar o executável e explicar por
telefone onde colar. Agora o sistema dele procura sozinho, baixa
sozinho e troca sozinho — e o operador só é avisado, nunca
interrompido.
O que o lojista vê
Ele abre o sistema como sempre. Em segundo plano, sem tela e sem
espera, o Retaguarda verifica se há versão nova e, havendo, já baixa.
Quando termina, aparece um aviso no sino de notificações
dizendo que a atualização chegou e o que mudou nela — o texto é o que
você escreveu na aba 2.
Ele continua trabalhando. A troca dos arquivos acontece quando
ele fecha o sistema, que é o único momento em que ninguém está
no meio de uma venda. Na abertura seguinte, já é a versão nova.
Se ele quiser adiantar, o menu de atualização tem o botão
Instalar e reiniciar. E se nada for feito, o aviso
volta no próximo login — o pacote fica guardado, conferido, esperando.
A tela do cliente. É a mesma nos dois caminhos — não há
como o lojista saber se o pacote veio do seu servidor ou de um arquivo
que você mandou. Procura em mostra o endereço efetivo, e é a
primeira linha a olhar quando algo não chega. O texto de baixo é
exatamente o que você escreveu na aba 2. E o F8 só aparece
habilitado depois que o pacote foi baixado e conferido.
No PDV é diferente, de propósito
O terminal de caixa também se atualiza sozinho, mas sem
avisar nada na tela. Quem está no caixa não pode ser
interrompido por uma notificação no meio da fila.
Por que dá para confiar
A ordem das etapas é a defesa. Nada é tocado na pasta do sistema antes
do pacote estar inteiro e conferido:
Lê o manifestoUm arquivo de texto pequeno, com o número da versão e a impressão digital do pacote.
Compara a versãoSe não for mais nova que a instalada, para aqui. Nada é baixado.
Baixa para um arquivo temporárioFora da pasta do sistema, com outro nome.
Confere o tamanhoPega download cortado — e a página de erro do servidor salva como se fosse um zip.
Confere a impressão digital (SHA-256)Byte por byte. Não batendo, o pacote é recusado e apagado.
Extrai para uma área de esperaAinda fora da pasta do sistema.
Só então marca como prontoÉ esta marca que faz o sino avisar.
A troca é a última etapa — e é reversívelCada arquivo trocado vira .old antes de receber o novo. Se qualquer um falhar, tudo volta ao lugar e nada é perdido.
Falhar não faz estrago
Se a troca não der certo, nada foi alterado, o pacote continua
guardado e a próxima abertura tenta de novo. O operador não vê
mensagem de erro nenhuma — o motivo fica no log, em
C:\Sistema\logs\.
Os dois caminhos
Com servidor ou sem servidor
Você escolhe. O sistema do cliente se comporta igual nos dois.
A diferença está só em como o pacote chega até a máquina dele.
Depois que chega, o caminho é o mesmo — as oito etapas acima, sem
atalho em nenhuma delas.
Aba 2 — Atualizador avulso. A versão aparece grande e
não é digitável: ela sai do Retaguarda.exe da sua pasta.
A lista mostra o tamanho de cada item antes de você gerar — aqui a
PreVenda ficou de fora e o pacote caiu de 302 para 161 MB. O texto do
campo O que mudou nesta versão é o que o lojista vai ler na
tela dele.
Caminho A
Você tem um servidor
Na aba 2, você marca o que vai no pacote e gera.
Saem o .zip e o versao.json.
Na aba 3, informa o endereço, o usuário e a
senha, e manda subir. O Studio envia o zip primeiro e o
manifesto por último.
Ele então baixa de volta pelo endereço público e
confere o tamanho e a impressão digital do que está lá.
Pronto. Todos os seus clientes recebem no próximo login deles,
sem você fazer mais nada.
O endereço do seu servidor já está gravado
no banco do cliente desde a instalação — é o campo que você
preencheu na aba 1.
Caminho B
Você não tem servidor
A mesma aba 2 já gerou, junto com os outros dois
arquivos, um Atualizar 7.4.4.exe.
Você manda esse arquivo ao cliente por onde quiser — WhatsApp,
e-mail, pendrive.
Ele dá dois cliques. O programa mostra a versão
e o que mudou, deposita os dois arquivos na pasta que o sistema
vigia, e sai.
Ele abre o sistema. Daí em diante, idêntico ao caminho A.
Esse executável não instala nada:
não troca arquivo, não mexe no banco, não pede permissão de
administrador. Ele só entrega o pacote e some.
Daqui para a frente é o mesmo caminho nos dois casos.
O sistema confere a impressão digital, avisa no sino, e troca os arquivos
quando o lojista fechar. A pasta vigiada é
C:\Sistema\atualizacao\entrada
— e se um pacote for deixado ali à mão, ele tem prioridade sobre o
servidor, porque quem está na frente da máquina sabe o que está fazendo.
Aba 3 — Publicação. O Endereço público é o
mesmo campo da aba 1: o que você põe aqui é onde o cliente vai procurar.
Depois de subir, o Studio baixa daqui e confere — se você errar a pasta
ou faltar permissão de leitura, aparece agora, e não no cliente.
O par de arquivos
Dois arquivos, lado a lado. É todo o contrato.
Sua hospedagem pode ser a mais simples que existir: os dois arquivos
precisam apenas estar acessíveis por um endereço da internet.
Não há PHP, não há banco de dados, não há programa rodando no
servidor. Uma pasta pública em qualquer hospedagem serve.
versao.json
{"versao": "7.4.4",
"arquivo": "atualizacao_7.4.4.zip",
"tamanho": 26214400,
"sha256": "9f2c…",
"obrigatoria": false,
"minima": "7.2.0",
"notas": "O que mudou nesta versão"}
Campo
O que faz
versao
O número que o cliente compara com o dele. Sai do próprio Retaguarda.exe e não é digitável — mais sobre isso abaixo.
arquivo
O nome do zip. Fica ao lado do manifesto, ou pode ser um endereço completo se você servir o pacote de outro lugar.
tamanho
Conferido antes de qualquer coisa. É o que pega download cortado.
sha256
A impressão digital do pacote. Não batendo, o pacote é recusado.
obrigatoria
Marca a atualização como obrigatória — aparece em vermelho na tela do cliente.
minima
O piso. Um cliente muito atrasado não recebe este pacote direto; ele precisa passar por uma versão intermediária antes. Deixe em branco se não houver piso.
notas
O texto que o lojista lê na tela. Escreva para ele, não para você.
Você nunca escreve esse arquivo à mão
Contar bytes e calcular impressão digital na unha garante erro — e o
erro seria silencioso do pior jeito: o seu pacote recusado
no seu cliente, corretamente, sem nada que apontasse a
causa. O Studio monta o manifesto sozinho.
O endereço no cliente
Um campo só, preenchido uma vez.
No sistema do cliente, o endereço fica em
Configurações › Config. Fiscais › Atualização. Se você
usou a aba 1 para gerar o instalador, ele já nasce preenchido e você não
precisa tocar nisso nunca mais.
O campo aceita três formas, e as três funcionam:
Você informa
O sistema procura o manifesto em
…/erp/versao.json
nele mesmo
…/erp/pacote.zip
ao lado do arquivo
…/erp
dentro da pasta
A tela de atualização mostra o endereço
efetivo — onde o sistema realmente vai procurar. Se algo não
chegar ao cliente, é a primeira linha a olhar.
Três coisas que vão te pegar
Melhor saber antes.
1. O Retaguarda.exe tem que ir no pacote
É ele que carrega o número da versão. Se você mandar só a pasta
Relatorio, por exemplo, o cliente recebe os arquivos e
continua na versão antiga — porque quem responde pela
versão é o próprio executável. A tela avisa em vermelho quando você
desmarca.
2. A versão não se digita
Ela sai do Retaguarda.exe que está na sua pasta, e o campo
não é editável. Se fosse, seria possível publicar “7.4.5” com um
executável que diz 7.4.4 — e o cliente instalaria em laço, porque toda
verificação acharia versão nova para sempre.
Só os três primeiros dígitos contam. O quarto é o número
da compilação e muda toda vez que você compila; se ele entrasse na conta,
toda recompilação sua viraria “versão nova” na tela do cliente.
3. Só o que muda precisa ir
O pacote não precisa levar a pasta inteira. Marque os executáveis e as
pastas que realmente mudaram — a tela mostra o tamanho de cada item antes
de você gerar, e a diferença entre 300 MB e 80 MB aparece no tempo de
download de cada cliente seu.
E uma para o dia da estreia
Antes de sair publicando para todo mundo, rode o pacote em
um cliente só, ou numa máquina de teste que não seja a
sua. Na sua bancada tudo já está instalado e configurado — e é
justamente isso que o teste precisa exercitar.
O que você precisa ter
Para
Você precisa de
Gerar instalador e pacote
Só o LojaDev Studio e a sua pasta C:\Sistema.
Entregar sem servidor
Nada além disso. O Atualizar x.y.z.exe vai por WhatsApp.
Entregar pelo servidor
Uma hospedagem qualquer com FTP, FTPS ou SFTP, e um endereço público. Sem PHP e sem banco.
LojaDev Studio · A Loja do Desenvolvedor · documento de apoio ao vídeo de apresentação