Descrição:
Função utilizada para criar um semáforo no servidor de licenças ou em disco.
Sintaxe:
LockByName( < cName >, [ lEmpresa ], [ lFilial ] ) → lCreated
Retorno:
lCreated → Logical, Retorno verdadeiro (.T.) se conseguir criar o semáforo com sucesso, caso não consiga criar ou já exista o retorno será falso (.F.)
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório |
---|---|---|---|---|
cName | Caracter | Nome do semáforo a ser criado. | X | |
lEmpresa | Logical | Se verdadeiro (.T.), o controle será feito por grupo de empresa. | .T. | |
lFilial | Logical | Se verdadeiro (.T.), o controle será feito por filial, considerando a filial (considera empresa e filial caso o layout possua) | .F. |
Observações:
A 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.
Exemplo:
Ini
[EnvironmentX] SourcePath=D:\Protheus\APO\ RootPath=D:\Protheus\ StartPath=\System\ RpoDb=TOP RpoLanguage=Multi RpoVersion=120 LocalFiles=ctree SpecialKey=EnvironmentX
Código
If LockByName("Xisto", .F., .F.) //Lock no ambiente inteiro, pois não considera empresa nem filial //Faço meu processamento UnlockByName("Xisto", .F., .F.) //Efetuo a liberação do lock após o término do processamento Else MsgInfo("Rotina já em execução", "Framework") EndIf
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas