A operação do Winthor numa empresa de varejo hoje requer quatro servidores:
- Servidor principal Linux (Oracle) – requer a assistência de um DBA Oracle pois a TOTVS não dá suporte a ele;
- Servidor DocFiscal Windows – Responsável por toda comunicação com a SEFAZ;
- Servidor WTA (Winthor Anywhere) Windows – Requerido para atualização dos programas (rotinas) e para a operação do DocFiscal;
- Servidor de faturamento Windows – responsável por coletar as vendas dos caixas e enviar para o servidor principal;
Eu estou atendendo a uma empresa que tem duas operações desse tipo e por isso tem oito servidores dedicados ao Winthor.
Por um lado eu acho que usar servidores distintos reduz o risco de uma atualização em um requisito do sistema conflitar com a operação de outro e facilita a manutenção e a redundância. Por outro lado gera um problema para manter quatro máquinas rodando e sincronizadas. Você só percebe esse último problema quando se depara com a necessidade de mover uma ou mais delas entre redes e alterar os respectivos endereços IP e se pergunta: “onde eu tenho que configurar cada um dos servidores e cada um dos clientes que acessam esses servidores para não quebrar a operação?”
Depois que você sabe é “fácil”, mas como eu esperava as configurações são espalhadas:
- Mudança no endereço IP do servidor principal:
- No próprio servidor, além da óbvia mudança do IP na configuração do Linux é preciso editar o arquivo listener.ora;
- Cada estação que acessa o chamado “menu Winthor” precisa ter o arquivo tnsnames.ora editado;
- Cada caixa precisa ter o “dblink” recriado pelo menu F5 “Manutenção checkout” da 2075 pois do contrário apesar de supostamente a operação da 2075 ser “offline” existe uma carga obrigatória no início do dia que não poderá ser feita e a rotina se recusará a abrir o caixa;
- O servidor DocFiscal precisa ser reconfigurado com novo endereço via sua interface web.
- Mudança no endereço IP do servidor DocFiscal precisa ser informada na rotina 132;
- Mudança no endereço IP do servidor WTA precisa ser informada na rotina 132;
- Mudança no endereço IP dos caixas precisa ser informada ao servidor de faturamento no programa de gerenciamento;
Virtualizar todas as máquinas Windows é uma possibilidade, mas o número de outros problemas que tenho a resolver é tão alto que isso vai ficando para depois.
Sobre o servidor principal, no início eu estranhei a TOTVS não dar suporte a ele mas depois a razão disso ficou mais clara. Aparentemente a TOTVS quer deixar evidente que os dados pertencem ao cliente e que ela só fornece um conjunto de programas para manipulá-los. Na maioria dos sistemas comerciais que eu já vi só quem sabe a senha do banco de dados é o suporte técnico do sistema comercial mas com o Winthor, pelo contrário, a TOTVS não sabe a senha, o que já sugere que ela seja diferente para cada cliente, o que por sua vez dificulta a criação de um vírus que tenha como alvo o servidor principal Winthor nacionalmente. E é o cliente que precisa digitar as credenciais durante a instalação dos softwares. Infelizmente o fato de ser usado um SGBD tão complexo quanto o Oracle e ser necessária a contratação de um DBA para cuidar de seus problemas é um ponto negativo.
E justamente o fato do cliente saber a senha permitiu a existência de processos paralelos para obter informações do banco. Um deles já existia quando eu cheguei e eu acabei tendo que criar outro: um programa para consultar o banco de dados e gerar etiquetas de preços com código de barras para os produtos nas gôndolas. O processo anterior era enrolado demais até para mim e estava com uns bugs muito estranhos (do tipo que faz você arregalar os olhos e dizer baixinho: “mas que p***ra é essa?!”) então decidi que criar um software, além de ser um exercício de programação para Oracle, iria me poupar de dores de cabeça com as chamadas de suporte para o processo existente.
O servidor da faturamento roda também um servidor FTP Filezilla. Na primeira vez que vi isso rodando eu não sabia ainda o propósito e tive ânsia de desativar, mas me contive porque tudo era possível nessa empresa. Mais tarde fiquei sabendo que é por FTP que os caixas transferem informações para o servidor de faturamento. Um problema aí: as credenciais são padrão para toda instalação do Winthor: usuário “caixa” e senha “caixa”. O mesmo ocorre nos caixas: cada um deles tem um servidor Oracle XE com as mesmas credenciais, onde estão armazenadas todas as informações sobre as vendas. Por que o servidor de faturamento precisa de um servidor de FTP para receber as informações quando poderia buscar as informações diretamente nos servidores em cada caixa ainda é um mistério para mim. Um vírus dedicado ao Winthor (ou um funcionário mal intencionado) pode apagar/alterar todas as informações dos caixas (testado) e, se o usuário FTP tiver permissões de apagamento (acaba de me ocorrer que tenho que checar isso) bagunçar tudo no servidor de faturamento também.
Já estava com saudades dos seus posts haha.
Por curiosidade, em qual linguagem programou a solução para gerar as etiquetas de preços?
Delphi. É a única linguagem com a qual me sinto confortável. Hoje mesmo eu tive que escrever dois programas em Java na faculdade, mas detesto essa linguagem.
Encontrei outro problema provocado pela mudança no IP do servidor Oracle. O “CCW Agente”, necessário para a operação da Central de Controle Winthor (CCW) deixa de funcionar e você não consegue mais usar a CCW para atualizar o sistema. Eu não sei se é possível corrigir isso em alguma configuração, mas atualizar o CCW Agente resolveu, porque o instalador pergunta tudo de novo.
Jefferson, tudo bem?
Estou querendo instalar o WinThor para avaliar melhor as funcionalidades, sabe informar como posso encontrar os scripts para instalar o banco de dados.
Atualmente tenho o seguinte link que disponibiliza diversos arquivos porém não tem uma documentação para ser seguida.
Link: http://servicos.pcinformatica.com.br/autoservico/instaladores/
Até onde sei essa informação não é pública e apenas os DBAs credenciados pela PCSistemas/TOTVS sabem oficialmente como fazer. O banco de dados é instalado pelo DBA durante a implantação do sistema.
Tenha me mente que ter um DBA responsável pelo banco (não precisa ser um funcionário em tempo integral, pode ser um contrato) é um dos requerimentos da contratação do sistema Winthor.
Outra coisa: este link que você encontrou é apenas para os softwares do “autoserviço”, que é como eles chamam o faturamento/caixas. Uma instalação completa do Winthor tem centenas de outros módulos (“rotinas”) e mesmo que você consiga achar o instalador do cliente ou baixar as centenas de rotinas manualmente e ainda conseguir instalar/configurar o servidor Oracle, eu acho difícil você conseguir rodar alguma coisa sem o arquivo de licença.
Obrigado Jefferson
QUAL LINGUAGEM É UTILIZADA PARA CRIAR AS ROTINAS NO WINTHOR?
EU CONSIGO CRIAR ALGUMAS COISAS UTILIZANDO JAVA E CONECTANDO NO BANCO DE DADOS, PORÉM AINDA ASSIM, VEJO QUE NÃO É A MESMA COISA, PQ NÃO SEI COMO QUE É CADASTRADO COMO ROTINA DENTRO DO PROPRIO WINTHOR.
A linguagem parece ser Delphi, mas não creio que saber a linguagem vá te ajudar.
Então mano, como eu te falei, eu faço alguns programas, não necessariamente rotinas, utilizo o acesso e tenho conhecimento das tabelas do banco.
Inclusive fiz um programa para coletores a quinze dias atrás, porém só estava querendo saber mesmo pra ver se me ajuda em alguma coisa.
Eu só não entendi o que quis dizer quando falou que saber a linguagem não me ajudaria muito.
Tem alguma complexidade além?
Algo que não saiba? É isso?
Eu quero começar a fazer de forma correta igual o pessoal faz, porém eles cobram muito caro por coisas que eu sei que é simples pq eu sou desenvolvedor, mas cobrar 10k em um programa que faz apenas um select no bd é foda.
E outra, seria pra fazer pra empresa que eu trabalho mesmo sabe.
Deixar de fazer no Java e passar a fazer como é de fato feito.
Me Desculpa pela caixa alta anteriormente, não tinha percebido.
Gostei de seu site, estou terminando de desenvolver um também, quero fazer algumas postagens voltado a desenvolvimento web e desktop
Você disse que não sabe “como é cadastrado como rotina dentro do próprio Winthor”
A PC Sistemas (agora TOTVS) pode ter implementado uma API para isso, pode haver um arquivo de configuração em algum lugar, a lista pode estar em uma tabela no banco de dados ou a rotina pode até ser “hardcoded” no programa menu. Nada disso tem a ver com linguagem usada.
Já coisas como a agilidade do programa, sim, tem a ver com a linguagem/compilador usado.
Obrigado,
Descobri todas as resposta para minhas dúvidas sobre o Winthor, sou curioso demais, cavei cavei até achar.
Obrigado pelas dicas.
Mas agora já sei como o sistema funciona e posso continuar desenvolvendo as rotinas de forma mais prazerosa e de forma correta.
Abraços.