[firebase-br] Dúvida com transação x refresh

Magno System magno em speet.com.br
Qui Abr 14 17:16:21 -03 2011


No caso da centralização, é que armazenamos os produtos da venda em uma 
tabela auxiliar até a venda ser efetivada. Ao efetivar a venda os dados são 
gravados em uma tabela definitiva e o estoque alterado.

O problema é o seguinte:

Você tem estoque de 1 unidade de determinado produto.

O vendedor 1 abre a venda mas não conclui com 1 unidade deste produto.
O vendedor 2 abre a venda mas não conclui com 1 unidade deste produto.

Quando os 2 vendedores efetivarem a venda o estoque vai para - 1.

No modelo novo como o arquivo auxiliar de vendas será compartilhado por 
todas os caixas o vendedor 2 já é advertido que tem estoque reservado para o 
produto e a venda deste produto já é bloqueada.


----- Original Message ----- 
From: "Tecnobyte Informática" <temp2 em tecnobyte.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Thursday, April 14, 2011 4:57 PM
Subject: Re: [firebase-br]Dúvida com transação x refresh


No meu caso, além da sincronização automática existe também um comando para
sincronização GERAL que pode ser executado a critério do usuário. Em caso de
uma falha, o usuário executa esta sincronização geral e todos os cadastros
são comparados com os que estão gravados localmente. Claro que neste caso
específico há uma lentidão considerável, mas é algo raramente usado.

Sobre a centralização dos dados, no meu caso não tive problemas, pois todos
os dados de vendas gravados nos PDVs são replicados para o servidor o mais
rápido possível (assim que o servidor estiver disponível, online).

As alterações de preços em massa pode ocorrer sim, mas pelo menos nos meus
clientes isto não é uma coisa que acontece com frequência. Então, se ocorrer
lentidão uma vez ou outra devida a alterações de preço em massa, não deverá
comprometer o funcionamento da empresa, visto que nos meus casos isto é
muito raro. Além de que usuários bem informados podem programar uma
atualização destas para um horário que não houver pico de atendimento.

Atenciosamente.

Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br

-----Mensagem Original----- 
From: Magno System
Sent: Thursday, April 14, 2011 3:39 PM
To: FireBase
Subject: Re: [firebase-br]Dúvida com transação x refresh

Daniel, o modelo em produção é exatamente igual ao seu modelo, sem por nem
tirar.

Estamos mudando pois percebemos algumas desvantagens para o nosso sistema:

1 - Temos uma rotina de atualização de preços em massa onde muitos produtos
tem os preços alterados de acordo com tabela vigente. Isso dá uma sobrecarga
(leia-se lentidão) ao FIREBIRD para atualizar todas as estações com um
grande volume de dados.

2 - Impossibilidade de cruzar algumas informações em determinados momentos
pois as mesmas ficam separadas em bancos locais de cada estação em vez de
estarem centralizadas no servidor.

3 - Houve casos de o sistema funcionar perfeito por meses mas em determinado
momento perder a sincronia entre banco local e servidor.

4 - Mais trabalho na manutenção da estrutura de banco (servidor e local).

É óbvio que cada caso é um caso. Para você funcionou perfeitamente.



----- Original Message ----- 
From: "Tecnobyte Informática" <temp2 em tecnobyte.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Thursday, April 14, 2011 3:45 PM
Subject: Re: [firebase-br]Dúvida com transação x refresh


Eu já fiz um sistema de PDV que trabalhava de forma semelhante ao que você
faz aí. No meu sistema a lógica era esta abaixo:

1. Em cada estação PDV existe um banco de dados local, contendo tabelas de
produtos, vendas, etc.

2. No servidor, todas as alterações feitas nas tabelas produtos e outros
cadastros relacionados com vendas são monitoradas através de trigger,
gerando um log dos registros alterados.

3. Antes de iniciar uma nova venda, o sistema de PDV verifica a conexão com
servidor usando uma esquema parecido com PING Em vez de um ping normal, fiz
uma espécie de ping direto na porta 3050 para saber se o FB está
respondendo, pois é muito mais rápido que fazer uma conexão com o FB. De
qualquer forma um ping comum também resolve quase perfeitamente. Se o
servidor estiver online, é feita uma conexão com o banco de dados do
servidor para buscar todas as alterações novas das tabelas produtos, etc e
gravar nas tabelas do banco local.

4. No final da venda o sistema do PDV novamente verifica a conexão com o
servidor. Se estiver online, transmite para o servidor todas as vendas que
ainda não foram transmitads. Também usei commit de duas fases para garantir
a integridade nos dois bancos de dados. Ficou perfeito assim! O tempo
necessário para verificar a conexão usando ping ou similar é realmente muito
curto e não chega a atrapalhar o PDV.


Atenciosamente.

Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br



______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista