1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[RESOLVIDO] Criar operacao, usuários simultaneos.

Discussão em 'EMS , HCM e Totvs 11' iniciado por reissobr, Maio 17, 2018.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. reissobr

    reissobr Membro Participativo

    Boa Tarde Pessoal.

    Estamos preparando um customizado para a criação das operações do processo de fabricação (tabela operação).
    A chave da tabela operação é o campo num-id-operacao. Para criar o próximo, leio o ultimo, somo um, e crio o registro novo.
    Como posso ter usuários simultâneos usando, preciso garantir que não ocorra a leitura do ultimo registro por dois usuários simultaneos, para não correr o risco de dois usuários quererem salvar registros com o mesmo num-id-operacao.
    A principio, devo controlar esta situação pelo uso de LOCK, mas é a primeira situação que preciso fazer isto manualmente.

    Alguém com alguma dica de como deve proceder, para não correr o risco de tentar gravar registros com a mesma chave por usuários diferentes acessando o sistema ?

    Tnks.
  2. antonioc

    antonioc Membro Participativo

    Eu faria o seguinte:

    Criaria um sequencial no banco especifico e atribuiria o valor do ultimo num-id da operação..

    do while true:
    assign i-seq = next-value(sequencial)
    ler a operacao com o num-id e i-seq.
    existe operação?
    next.
    leave.
    end.
    criar a operação tendo o id com o valor i-seq.

    com esta opção o sequencial sempre estaria atualizado conforme o ultimo sequencial da operação.
    reissobr curtiu isso.
  3. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    ai vc pode criar uma tabela onde teria o numero da ultima operação, quando vc ler pra pegar esse codigo, vc faz um find exclusive-lock, dai os outros usuarios, ao acessar o registro, vc usa o no-wait, pra saber se o registro está em uso, e coloca um loop pra segurar o processo até que o outro usuario libere, igual faz o gerador de nota fiscal que trava o registro do programa FT0114 até que vc conclua o processo da nota, se der algum erro e o usuario desistir, o contador volta e vc não tem problema de ficar com buracos na sequencia
    reissobr curtiu isso.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página