Usina BRAdvPL Guia
Entrar
← Todos os tópicos
GUIA PRÁTICOEm revisão

Bloqueio, gravação e concorrência de registros

Verifica o lock antes de atribuir campos e distingue desbloqueio de transação.

Bloqueio, gravação e concorrência de registrosAdvPL
01 · VISÃO GERAL

Visão geral

RecLock(cAlias,.F.) tenta bloquear o registro posicionado para alteração; .T. inicia inclusão. Só atribua campos após retorno verdadeiro. O alias não pode ser query nem somente leitura. MsUnlock encerra a operação sobre o registro no alias corrente; dentro de transação explícita o lock físico pode permanecer até o final, embora MsUnlock continue necessário. Não tratar desbloqueio como confirmação de toda uma operação de negócio. O fragmento exige tabela própria ZZ1, campo Z1_DESC e registro previamente localizado em homologação. Não é exemplo de manutenção direta de tabela padrão. (TOTVS, s.d., refs. 1–2)

Retorno

Não há retorno único: trata-se de um roteiro composto.

03 · EXEMPLO PRÁTICO

Exemplo comentado

// Fragmento: ZZ1 aberta, gravavel, com Z1_DESC e registro de teste posicionado.
If !ZZ1->(Eof())
    If RecLock("ZZ1", .F.)
        // Regra e valor ficticios, apenas para tabela propria.
        ZZ1->Z1_DESC := "TESTE EDITORIAL"
        ZZ1->(MsUnlock())
    Else
        ConOut("Registro indisponivel; nenhuma atribuicao.")
    EndIf
EndIf
Resultado esperado

Com lock obtido, propõe atualizar Z1_DESC na tabela fictícia; na falha, não atribui. O fragmento não implementa a recuperação completa de erros. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

BOAS PRÁTICAS
  • Reler e validar critérios sob o lock, manter trecho curto e tratar erros para encerrar a operação. Não incluir diálogos nem tentativas infinitas; testar concorrência com duas sessões e a transação externa.
  • Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. RecLock. TDN. Consulta em 2026-10-26.
  2. TOTVS. MSUNLOCK(). TDN. Consulta em 2026-10-26.
Situação
Em revisão
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha