Como usar as funções PutGlbValue e GetGlbValue | Ti Responde 0141

No vídeo de hoje, vamos demonstrar em como criar variáveis globais no AdvPL sem utilizar a declaração Public explícita.

A dúvida de hoje, nos perguntaram, em como poderíamos criar variáveis que ficassem disponíveis em toda a thread no Protheus mas sem usar o escopo Public de modo explícito.

 

Pensando nisso, montamos esse exemplo, onde vamos demonstrar a utilização das funções PutGlbValue, GetGlbValue e TimeGlbValue.

 

Segue abaixo o vídeo exemplificando:

 

E abaixo o código fonte desenvolvido:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zVid141P
Exemplo de criação de variável pública
@type  Function
@author Atilio
@since 01/04/2024
/*/

User Function zVid141P()
    Local aArea := FWGetArea()

    //Cria uma variável pública na memória
    PutGlbValue("cXNomSobr", "Daniel Atilio")

    FWRestArea(aArea)
Return

/*/{Protheus.doc} User Function zVid141G
Exemplo de busca de variável pública
@type  Function
@author Atilio
@since 01/04/2024
/*/

User Function zVid141G()
    Local aArea := FWGetArea()
    Local cNome := ""

    //Busca a variável pública na memória
    cNome := GetGlbValue("cXNomSobr")

    //Mostra uma mensagem
    FWAlertInfo("O nome é " + cNome, "Teste GetGlbValue")

    FWRestArea(aArea)
Return

/*/{Protheus.doc} User Function zVid141G
Exemplo de busca de quantidade de segundos desde a última atualização da variável pública
@type  Function
@author Atilio
@since 01/04/2024
/*/

User Function zVid141T()
    Local aArea     := FWGetArea()
    Local nSegundos := 0

    //Busca o tempo
    nSegundos := TimeGlbValue("cXNomSobr")

    //Mostra uma mensagem
    FWAlertInfo("A quantidade de segundos é " + cValToChar(nSegundos), "Teste TimeGlbValue")

    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