Tempo de leitura: 1 minuto
A função LockByName em ADVPL é utilizada para criar travas / bloqueios (semáforo) de rotinas no servidor de licenças ou em disco, com ela podemos travar uma função, evitando que ela seja executada enquanto estiver sendo usada. Ela é uma das funções de Controle de Semáforo em ADVPL.
Sintaxe:
LockByName(cSem,lEmp,lFil)
Parâmetro(s):
Retorno:
Exemplo da função LockByName em ADVPL:
//Bibliotecas
#include 'protheus.ch'
/*{Protheus.doc} User Function fLoBName
(Essa função tem por finalidade mostrar a funcionalidade da função LockByName em ADVPL)
@type Function
@author Adilio Costa
@since 02/09/2024
@version 1.0
@?Inscreva-se no Blog ProtheusAdvpl:
https://www.protheusadvpl.com.br
@?Inscreva-se no Canal ProtheusAdvpl:
https://www.youtube.com/protheusadvpl
@?Siga-nos no Instagram:
https://www.instagram.com/protheusadvpl
@?Conheça os Cursos e Formações do ProtheusAdvpl:
https://cursos-e-formacoes-protheusadvpl.gr-site.com/
@Participe de nossas comunidades no WhatsApp:
-Comunidade Protheus Backoffice:https://chat.whatsapp.com/KMUIAjwZ6EZ6eAHsLkPTyb
-Comunidade Protheus-RH:https://chat.whatsapp.com/L5dUyAna6xU4ylG5DUgfOW
-Comunidade Protheus-Programação:https://chat.whatsapp.com/LsD6z0apdqKHlOz67bcaEn
-Comunidade Protheus-Framework:https://chat.whatsapp.com/BzUFpjaSnTC3vtsfa77jmG
|Se esse conteúdo foi útil pra você nos ajude divulgando
ele e nossas redes sociais!!|
*/
User Function fLoBName()
//Habilitando o semáforo
If ! LockByName("IDSEM", .T., .F.)
MsgStop("Semáforo já existente, função não pode ser executada!", "Atenção")
Return
EndIf
//Comandos
//Desabilita o semáforo
UnlockByName("IDSEM", .T., .F., .F.)
Return
Observação: A função LockByName trabalha em conjunto com a chave SpecialKey, que pode ser informada no arquivo de configuração do servidor no ambiente corrente, para distinguir os diversos ambientes (produção e homologação).
Em versões que não possuem Servidor de Licenças o semáforo é criado automaticamente em disco.
É isso aí, finalizamos aqui mais um post no Blog ProtheusAdvpl. Caso tenha ficado alguma dúvida deixe seu comentário ou nos envie um e-mail para adiliocosta@protheusadvpl.com.br, até um próximo post, grande abraço e fica com Deus.
Link(s) de referência(s):