[firebase-br] Update concorrente

Anticlei Scheid clei em geous.com.br
Seg Nov 3 16:47:33 -03 2008


Para melhorar a velocidade eu uso uma tabela que chamo de fechamentos de 
estoque contendo o fechamento de quantidade de qualquer período que queira, 
se quiser pode ter uma rotina até diária (não recomendo) e a SP que calcula 
a quantidade de estoque atual de um item sempre sumariza os movimentos a 
partir da data do último fechamento + a quantidade constante no último 
fechamento.
Quanto a inserts e updates minha opinião é que se existe uma tabela de 
movimentos de estoque, esta deve funcionar como um "livro caixa", ou seja, 
só INSERTS.
Quando é necessário corrigir alguma quantidade TEM QUE existir um movimento 
de entrada e saída ou um estorno de algum movimento existente, de 
preferência oficial e com documentação assinada por responsáveis. Se for em 
grande volume faça um inventário, que já implica em documentação mais 
detalhada e também oficial.
Ah ! Importante ! Você deve bloquear movimentos com datas inferiores à data 
do último fechamento de cada item a ser movimentado, caso contrário as 
quantidades vão ficar erradas, pois esses movimentos não serão considerados 
no cálculo de saldo em estoque.
Calcular estoques pode parecer muito simples, pois é só somar as entradas e 
subtrair as saídas, mas se não tiver DISCIPLINA e um sistema bem 
sincronizado e íntegro, não conseguirá controlar saldos de estoque nunca.

Abraço

----- Original Message ----- 
From: "Daniel Sonda" <daniel em mhnet.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, November 03, 2008 2:26 PM
Subject: Re: [firebase-br] Update concorrente


Kleber Caneva escreveu:
> Eu pessoalemnte crio uma tabela de movimento de estoque, e cada operação 
> inclui um novo registro.
>
> Para consultar o Saldo, eu crio um SP onde passo o codigo do produto. Essa 
> SP procura por um Inventario o incio do arquivo. Ai venho processando 
> (somando ou subtraindo) até chegar no saldo atual. É muito rapido.
>
> Usando o mesmo processo, é possivel pegar o saldo de uma determinada data.
>

Tanto o Zottis quanto o Kleber me indicaram calcular sempre o estoque
usando uma tabela de movimentação. Obrigado pelas sugestões!

Minha dúvida, como respondi pro Zottis, é quanto às alterações... elas
geram inserts ou updates na tabela de movimentos?

Esse tipo de consulta, calculando o saldo do estoque cada vez que eu
precise, num sistema que irá usar intensivamente essa informação, não
vai  deixá-lo lento, forçando muito o servidor?

E sobre o update concorrente? Como posso tratar uma área crítica de
atualização no Firebird?

Att.
Daniel Sonda
www.h2jsolucoes.com.br



Kleber Caneva escreveu:
> Eu pessoalemnte crio uma tabela de movimento de estoque, e cada operação 
> inclui um novo registro.
>
> Para consultar o Saldo, eu crio um SP onde passo o codigo do produto. Essa 
> SP procura por um Inventario o incio do arquivo. Ai venho processando 
> (somando ou subtraindo) até chegar no saldo atual. É muito rapido.
>
> Usando o mesmo processo, é possivel pegar o saldo de uma determinada data.
>
> []´s
>
> Kléber Caneva
>
>
> ----- Original Message ----- 
> From: "Daniel Sonda" <daniel em mhnet.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Monday, November 03, 2008 1:31 PM
> Subject: [firebase-br] Update concorrente
>
>
> Olá pessoal, considerem o seguinte cenário:
>
>     Sistema ERP com aproximadamente 50 usuários ativos e concorrentes de
> diversos setores (compras, almoxarifado, produção, vendas, etc) fazendo
> inclusões, alterações e exclusões de dados relacionados ao estoque de
> produtos.
>
>     Objetivo: controlar o estoque de produtos.
>     Requisitos: atualização on-line do estoque, com possibilidade de
> consulta retroativa (Ex: qual o estoque há um  mês atrás?).
>
>     Solução: encontrei exemplos de controle de estoque com triggers em
> cada tabela de movimentação (itens de notas de compra, venda,
> apontamentos de produção, etc) que atualizam um campo na tabela de
> produto (saldo).
>
>     Dúvida: o campo de saldo na tabela de produto torna-se uma área
> crítica, com vários acessos simultâneos de consulta e alteração, com
> grande (certa) possibilidade de conflito.
>
>     Alguma sugestão de como resolver esse tipo de concorrência para
> atualização? O Firebird fornece algum suporte para tratar esse tipo de
> situação?
>
>

______________________________________________
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