Cria uma nova sessão nomeada de Variáveis Globais agrupadas em duas tabelas de HashMap, uma de dados primários a "Tabela X" e outra para Listas de Valores a "Tabela A".
Ambas tabelas ("Tabela X" e "Tabela A") são compostas por "chave" e "valor".
As "chaves" são sequências de caracteres (string), e estas são sensíveis as letras maiúsculas e minúsculas.
Os "valores" são dependentes de cada tabela, onde na "Tabela X" podem receber dados primários (String, Numérico, Data e Lógico) e na "Tabela A" podem receber Listas de Valores (Arrays).
Os "Arrays" da "Tabela A" só podem ser compostos pelos tipos:
- Numérico – números;
- Caracteres – sequências de caracteres (strings);
- Data – Valor de Data;
- Lógico – valor lógico de Verdadeiro (.T.) e Falso (.F.);
- Arrays – Lista de Valores;
- Nulos – Valor não definido (Nil);
Todos os outros tipos serão substituídos por Nulos, pois pode ser que não seja possível se compartilhar entre diferentes "Jobs", objetos, CodeBlock;
Obs. Nenhum "valor" , dados primários (String, Numérico, Data e Lógico) ou Listas de Valores (Arrays), precisam ser clonados antes de se atualizar (VarSet...) ou obter (VarGet...) os valores nas tabelas, pois cada execução ("Job") tem a sua cópia local da variável não podendo assim interferir na execução do outro.
O tipo primário "Lógico" na "Tabela X" só está disponível em Build igual ou superior a 7.00.131227A NG
Sintaxe
lRet := VarSetUID( <cUID> [, <lTemUID>] )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência | Observações |
---|---|---|---|---|---|
cUID | Caracter | Identificador da sessão de Variáveis Globais | X | - | o nome informado é sensível as letras maiúsculas e minúsculas |
lTemUID | Lógico | Se .T. ignora se <cUID> já existe, e se existir retorno .T. | - | - | O padrão é .F., ou seja, se o <cUID> já existir irá retornar erro (.F.) |
Retorno
Nome | Tipo | Descrição | Observações |
---|---|---|---|
lRet | Lógico | Indica se conseguiu criar a sessão cUID e/ou se ela já estava criada | Retorna se a função foi executada corretamente |
Observações
Se <lTemUID> for .T. irá retornar verdadeiro (.T.) se conseguir criar a sessão <cUID> ou se ela já existir.
Por padrão o valor de <lTemUID> é falso (.F.)
Disponível em Build igual ou superior a 7.00.131227A
Exemplos
Exemplo
User Function exemplo() Local cMyUID := "teste_UID_RL" Local lRet := .F. lRet := VarSetUID(cMyUID) If(!lRet) ConOut("Erro na criação da sessão: " + cMyUID) EndIf Return .T.