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

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