Buscando registros que estão travados com DBRLockList – Maratona AdvPL e TL++ 128

Nesse vídeo demonstraremos a utilização da função DBRLockList que traz uma lista de registros travados (via RecLock) de um determinado alias.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe128
Retorna uma lista com registros que foram travados (com RecLock) de um alias
@type Function
@author Atilio
@since 14/12/2022
@see https://tdn.totvs.com/display/tec/DBRLockList
@obs 
    Função DbRLockList
    Parâmetros
        Não possui parâmetros
    Retorno
        + aRet         , Array        , Lista com o número dos registros que estão com lock ativo

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe128()
    Local aArea      := FWGetArea()
    Local aTravas    := {}
    
    //Abre o cadastro de produtos
    DbSelectArea('SB1')
    SB1->(DbSetOrder(1)) //B1_FILIAL + B1_COD
    SB1->(DbGoTop())

    //Trava o registro para alteração
    RecLock("SB1", .F.)

    //Busca os registros travados
    aTravas := SB1->(DBRLockList())

    //Destrava o registro
    SB1->(MsUnlock())

    //Mostra quantas travas foram encontradas
    FWAlertInfo("Existe(m) " + cValToChar(Len(aTravas)) + " registro(s) com lock na SB1", "Teste DBRLockList")

    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação