Páginas filhas
  • LockByName

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/327912/newLayout.css

...

Função: LockByName - Criação de semáforo no servidor de licenças

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:

NomeTipoDescriçãoDefaultObrigatório
cNameCaracterNome do semáforo a ser criado.
X
lEmpresaLogicalSe verdadeiro (.T.), o controle será feito por grupo de empresa..T.
lFilialLogicalSe 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:

Bloco de código
languageapplescript
titleIni
[EnvironmentX]

SourcePath=
d
D:\Protheus\APO\


RootPath=D:\Protheus\


StartPath=\System\

x2_path=

RpoDb=
Dbf
TOP
RpoLanguage=
English
RpoInterface=Windows
RpoVersion=811
Cisasync=0
LocalFiles=ADS
Trace=0
Multi
RpoVersion=120
LocalFiles=ctree
SpecialKey=EnvironmentX
Parâmetros:
NomeTipoDescrição
Bloco de código
theme
Midnight
titleCó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


Templatedocumentos

.F.
HTML
<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>
DefaultObrigatóriocNameCaracterNome do semáforo a ser criado.XlEmpresaLógicoSe verdadeiro (.T.), o controle será feito por empresa..T.lFilialLógicoSe verdadeiro (.T.), o controle será feito por filial.