Yury Posted May 28, 2009 Report Share Posted May 28, 2009 olá amigos, Gostaria de opniões a respeito de como vocês tratam isto no sistema que está acessando MySql/Postsgree imaginem a seguinte situação (eu sei que é uma situação hipotética) : Rotina de Aprovação/Reprovação de Pedidos de Venda (libera ou não o pedido de venda para ser faturado): em determinada empresa, 3 operadores do sistema podem aprovar um pedido, Supervisor Geral, Gerente Geral e Gerente de Vendas o pedido está com um status "Aguardando Aprovação/Reprovação", então está liberado para que algum operador o acesse, analise e grave como impedir que cada um dos três operadores acessem ao mesmo tempo o mesmo pedido em três estações diferentes e consequentemente trabalhem com uma informação que já foi processada por outro terminal ? o Supervisor Geral reprova o pedido e grava o Gerente Geral reprova o pedido e grava o Gerente de Vendas aprova o pedido e grava Qual status vai ficar gravado ? "Pedido Aprovado" Mas o Supervisor Geral pode questionar: mas eu reprovei este pedido, como pode ? Portanto oque estou querendo é compartilhar opiniões de como resolver uma questão como essa (há várias outras, mas todas passam pelo mesmo conceito) desculpem pelo "livro" que eu escrevi abraços Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Quote Link to comment Share on other sites More sharing options...
Yury Posted May 28, 2009 Author Report Share Posted May 28, 2009 olá amigos, Gostaria de opniões a respeito de como vocês tratam isto no sistema que está acessando MySql/Postsgree imaginem a seguinte situação (eu sei que é uma situação hipotética) : Rotina de Aprovação/Reprovação de Pedidos de Venda (libera ou não o pedido de venda para ser faturado): em determinada empresa, 3 operadores do sistema podem aprovar um pedido, Supervisor Geral, Gerente Geral e Gerente de Vendas o pedido está com um status "Aguardando Aprovação/Reprovação", então está liberado para que algum operador o acesse, analise e grave como impedir que cada um dos três operadores acessem ao mesmo tempo o mesmo pedido em três estações diferentes e consequentemente trabalhem com uma informação que já foi processada por outro terminal ? o Supervisor Geral reprova o pedido e grava o Gerente Geral reprova o pedido e grava o Gerente de Vendas aprova o pedido e grava Qual status vai ficar gravado ? "Pedido Aprovado" Mas o Supervisor Geral pode questionar: mas eu reprovei este pedido, como pode ? Portanto oque estou querendo é compartilhar opiniões de como resolver uma questão como essa (há várias outras, mas todas passam pelo mesmo conceito) desculpem pelo "livro" que eu escrevi abraços Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted May 28, 2009 Report Share Posted May 28, 2009 Um status para verificar se ja foi aprovado/reprovado não resolveria. Quote Link to comment Share on other sites More sharing options...
senun Posted May 28, 2009 Report Share Posted May 28, 2009 Yury, o que tenho feito, depende do conceito do sistema é : 1 campo para cada tipo de aprovador / reprovador ou prevalece a senha do maior ( menor é o operador, maior gerente, (mais maior ) diretor ,etc ) de forma que na comparação final reprovado / aprovado estará gravado o real... Nelson Nunes de Araujo Santo André - SP MSN : nelson.n.araujo@hotmail.com EMAIL: nelson.n.araujo@gmail.com nelson.n.araujo@terra.com.br Clipper 5.3E, Blinker 7.0, FW 2.4, Workshop Quote Link to comment Share on other sites More sharing options...
Yury Posted May 28, 2009 Author Report Share Posted May 28, 2009 obrigado pela atenção Nelson e SA Oliveira, mas minha dúvida realmente é no momento do acesso simultâneo ao mesmo registro, é isto que eu não quero permitir, de forma que quando um dos operadores acessem um pedido para aprovação ele fique indisponÃvel para os outros, pois a análise do pedido pode demorar 5 minutos por exemplo, e nesse tempo outro operador pode acessar o mesmo pedido depois que um dos operadores aprova/reprova, aà está tudo ok, pois o status do pedido já será alterado no FWH com DBF isto é muito simples de fazer, pois basta bloquear o registro quando o primeiro acessa e os outros não conseguiriam acessar, mas no BD MySql é outra história sei que um pouco embassado e chato, mas é uma necessidade abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Editado por - yury on 28/05/2009 16:34:59 Quote Link to comment Share on other sites More sharing options...
SAOliveira Posted May 28, 2009 Report Share Posted May 28, 2009 Na tabela algum campo de status, tipo livre,c,1,0 que receberia S/N. Ao tentar abrir o registro checar se esta S ou N. Se S move N e deixa abrir. Se N manda mensagem. Poderia até move quem esta com o registro aberto. Só uma ideia relanpago. Quote Link to comment Share on other sites More sharing options...
marcio1361303176 Posted May 28, 2009 Report Share Posted May 28, 2009 Amigo S.A.Oliveira, creio que essa não seja a melhor solução Imagina assim O Usuario 01 abre dai grava por exemplo "S" Dai da algum erro, ou o carra reinicia o micro O controle foi pro espaço. Realmente nao sei como fazer... informaisvrb@gmail.com FWHX 2.6+ SQLLIB + xDev + rpv + MYSQL 5.0 / fwh808+sqllib(atual) Msn.: mastermarvrb@msn.com Quote Link to comment Share on other sites More sharing options...
senun Posted May 28, 2009 Report Share Posted May 28, 2009 citação:obrigado pela atenção Nelson e SA Oliveira, mas minha dúvida realmente é no momento do acesso simultâneo ao mesmo registro, é isto que eu não quero permitir, de forma que quando um dos operadores acessem um pedido para aprovação ele fique indisponÃvel para os outros, pois a análise do pedido pode demorar 5 minutos por exemplo, e nesse tempo outro operador pode acessar o mesmo pedido depois que um dos operadores aprova/reprova, aà está tudo ok, pois o status do pedido já será alterado no FWH com DBF isto é muito simples de fazer, pois basta bloquear o registro quando o primeiro acessa e os outros não conseguiriam acessar, mas no BD MySql é outra história sei que um pouco embassado e chato, mas é uma necessidade abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Editado por - yury on 28/05/2009 16:34:59 id=quote>id=quote>Yury, vc tentou usar o recurso para locar o registro para um determinado operador.... dependendo da operação, o usuário 1 fica com o registro locado para que o 2 não altere.... qdo desalocar, verifique se a prioridade do usuario 2 é superior ao 1 para alterar o registro... Nelson Nunes de Araujo Santo André - SP MSN : nelson.n.araujo@hotmail.com EMAIL: nelson.n.araujo@gmail.com nelson.n.araujo@terra.com.br Clipper 5.3E, Blinker 7.0, FW 2.4, Workshop Quote Link to comment Share on other sites More sharing options...
Yury Posted May 28, 2009 Author Report Share Posted May 28, 2009 citação:Yury, vc tentou usar o recurso para locar o registro para um determinado operador.... id=quote>id=quote>Não Nelson, não tentei isto... me explique como seria, qual sua idéia... isto poderia ser feito via comando/funções ou alguma flag nos campos do registro ? grato abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Quote Link to comment Share on other sites More sharing options...
kleyber Posted May 28, 2009 Report Share Posted May 28, 2009 citação:Amigo S.A.Oliveira, creio que essa não seja a melhor solução Imagina assim O Usuario 01 abre dai grava por exemplo "S" Dai da algum erro, ou o carra reinicia o micro O controle foi pro espaço. Realmente nao sei como fazer... id=quote>id=quote>Estamos falando de SQL, certo? Então se tiver o BEGIN TRANSACTION e o END TRANSACTION ao final da rotina e o computador travar ou outra coisa parecida, o banco desconsidera o que foi feito, não? Ou estou enganado? Se a transação ocorre com sucesso acho que daria pra se fazer um teste... ou não? hehehehe Kleyber Derick xHarbour 1.1.0 + FWH 8.02 (BMW Zerada!!!) + xDevStudio + SQLLIB Visite São LuÃs - MA A Ilha dos Amores Editado por - kleyber on 28/05/2009 18:58:45 Quote Link to comment Share on other sites More sharing options...
senun Posted May 28, 2009 Report Share Posted May 28, 2009 Yury, a idéia é bem simples..... o operador obtem o registro... neste momento o registro é blocado para que outros não tenham acesso a ele... Enquanto não encerrar a operação, o registro não será desbloqueado. registrou a operação( liberação / bloqueio ). desbloqueie o registro em uso, para acesso geral.. qdo o segundo operador acessar a este registro, o registro estará marcado( .T. ou .F. ).... antes de mudar este status, verifique se a senha do operador que está querendo mudar o status é superior ao do que colocou o status nesta situação.... Senha de Gerente, tem superioridade ao do Operador, e assim por diante.... é apenas uma idéia, pois não sei a lógica que vc está utilizando... espero que te ajude.... qq coisa, estamos aqui.. Nelson Nunes de Araujo Santo André - SP MSN : nelson.n.araujo@hotmail.com EMAIL: nelson.n.araujo@gmail.com nelson.n.araujo@terra.com.br Clipper 5.3E, Blinker 7.0, FW 2.4, Workshop Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.