Obtendo Informações do appserver.ini com GetSrvProfString em ADVPL

Tempo de leitura: 3 minutos

Se você é um desenvolvedor ADVPL no ambiente TOTVS Protheus, certamente já precisou acessar as configurações do servidor de aplicação. A função GetSrvProfStringé a ferramenta padrão e mais eficiente para ler essas informações diretamente do arquivo appserver.ini.

Este guia completo irá mostrar como utilizar essa função, garantindo que seu código seja robusto e adaptável a qualquer ambiente Protheus.

 

O Papel Essencial do GetSrvProfString

O GetSrvProfString é uma função nativa do AdvPL que permite ler o conteúdo de uma chave de configuração (em formato string) que está definida na seção do Environment ([Environment]) logado (ou na seção [General]) do arquivo de inicialização do Application Server (appserver.ini).

 

🎯 Por que é importante usarmos GetSrvProfString?

  • Flexibilidade: Permite criar rotinas que se ajustam automaticamente a diferentes configurações de servidor Protheus (Ex: caminhos de diretórios, portas, etc.).

  • Manutenção Simples: Evita que você precise recompilar o RPO (.prw) toda vez que uma configuração de ambiente mudar.

 


 

Sintaxe

GetSrvProfString(cChave,cValPad)

 

Parâmetro(s):

 

Retorno:

 


 

Exemplo Prático: Encontrando Diretórios Chave

O uso mais comum do GetSrvProfString é para obter os caminhos absolutos para diretórios essenciais, como o protheus_data ou a pasta system

No exemplo em ADVPL abaixo podemos ver como obter os diretórios da protheus_data e da system utilizando a função GetSrvProfString:

#include 'protheus.ch'
/*{Protheus.doc} User Function fGetSPS2
    Exemplo da função GetSrvProfString que recupera valores do arquivo appserver.ini
    @type  Function
    @author Adilio Costa
    @since 31/10/2025
    @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 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!!|

*/
/*{Protheus.doc} fGetSPS2
Exemplo de uso da função GetSrvProfString para obter o RootPath e o StartPath.
*/
User Function fGetSPS2()
	Local aArea   := FWGetArea()

// Define uma variável para armazenar o caminho
	Local cCaminhoData := ""
    Local cCaminhoSystem := ""
// Tenta ler a chave "RootPath". Se não encontrar, assume um valor padrão.
	cCaminhoData := GetSrvProfString("RootPath", "C:\TOTVS\Protheus\protheus_data\")

    //Tenta ler a chave "StartPath". Se não encontrar, assume um valor padrão.
	cCaminhoSystem := GetSrvProfString("StartPath", "C:\TOTVS\Protheus\protheus_data\system\")

// Exemplo de uso: mostrar o caminho
	FWAlertInfo( "O diretório protheus_data é: " + cCaminhoData +" e o caminho da system é:"+cCaminhoSystem, "Função GetSrvProfString" )


	FWRestArea(aArea)
Return

Função GetSrvProfString em ADVPL

Exemplo 2: Lendo Chaves Personalizadas (Parâmetros de Sistema)

Você pode usar o appserver.ini para configurar seus próprios parâmetros de sistema, acessíveis pelo GetSrvProfString.

(No appserver.ini na seção do ambiente(Environment), ex: [PROTHEUSADVPL])

...
URL_Servico_Externo=http://api.minhasolução.com/v1/
TempoLimiteConexao=120
...

Exemplo em ADVPL:

User Function LeConfigCustom()
Local cURL := ""
Local cTempoLim := ""
Local nTempoLim := 0

// Lê uma URL de serviço externo
cURL := GetSrvProfString("URL_Servico_Externo", "http://api.fallback.com/")

// Lê um valor numérico, usando um valor padrão seguro
cTempoLim := GetSrvProfString("TempoLimiteConexao", "60")
nTempoLim := Val(cTempoLim) // Converte para numérico

MsgAlert("URL do Serviço: " + cURL + CRLF + "Timeout da Conexão: " + cTempoLim + " segundos.", "Parâmetros do Aplicativo")

Return

 

 

Bem, finalizamos mais um post aqui do Blog ProtheusAdvpl.

Se esse conteúdo lhe foi útil nos ajude compartilhando ele em suas redes sociais do TOTVS Protheus.

Grande abraço e fica com Deus.

 

Link de referência:https://tdn-homolog.totvs.com/display/tec/GetSrvProfString

Receba as últimas atualizações do ProtheusAdvpl
Deixe seu melhor email
Nós respeitamos sua privacidade.