Usina BRAdvPL Guia
Entrar
← Todos os tópicos
COMANDOPublicado

FUNCTION

[STATIC] FUNCTION <cNome>( [<uParam1>, <uParam2>, ...] )

Declara uma função AdvPL, com parâmetros locais e retorno obrigatório por RETURN.

DeclaraçãoFunçõesRotinasParâmetrosRETURN
01 · VISÃO GERAL

Visão geral

FUNCTION é o comando usado para declarar uma função em AdvPL. A função recebe um nome, pode receber parâmetros e deve encerrar sua execução com RETURN. Quando declarada como STATIC FUNCTION, fica visível apenas dentro do próprio arquivo-fonte; quando publicada como USER FUNCTION, passa a ser uma rotina chamável externamente conforme as convenções do ambiente Protheus.

02 · SINTAXE

Sintaxe

[STATIC] FUNCTION <cNome>( [<uParam1>, <uParam2>, ...] )

Parâmetros

STATIC
ModificadorOpcional

Restringe a visibilidade da função ao arquivo-fonte em que foi declarada.

cNome
IdentificadorObrigatório

Nome da função declarada. Deve ser estável quando utilizado por menus, pontos de entrada ou chamadas externas.

uParamN
Qualquer tipo AdvPLOpcional

Parâmetros recebidos pela função. Cada parâmetro funciona como variável local no escopo da função.

RETURN
ComandoObrigatório

Finaliza a função e, opcionalmente, devolve um valor ao chamador.

03 · EXEMPLO PRÁTICO

Função com parâmetros e retorno

#Include "TOTVS.ch"

User Function ExFunction()
    Local nResultado := SomaValores(10, 5)

    MsgInfo(CValToChar(nResultado), "Resultado")
Return

Static Function SomaValores(nValorA, nValorB)
Return nValorA + nValorB
Resultado esperado

A User Function é o ponto de entrada. A Static Function recebe parâmetros locais, calcula o resultado e retorna o valor ao chamador.

04 · EXEMPLO PRÁTICO

Retorno lógico para validação

#Include "TOTVS.ch"

User Function ExValida()
    Local cCodigo := "A001"

    If CodigoValido(cCodigo)
        MsgInfo("Código aceito", "Validação")
    EndIf
Return

Static Function CodigoValido(cCodigo)
Return !Empty(AllTrim(cCodigo))
Resultado esperado

A função auxiliar devolve .T. ou .F., deixando explícito o contrato de validação.

BOAS PRÁTICAS
  • Cada parâmetro declarado entre parênteses é criado como variável local da função.
  • A execução da função deve ser finalizada com RETURN, com ou sem valor de retorno.
  • Use STATIC FUNCTION para rotinas auxiliares internas do fonte.
  • Use USER FUNCTION quando a rotina precisar ser chamada externamente pelo ambiente, menu, ponto de entrada ou outra integração.
  • O TDN registra que uma função pode ser chamada diretamente pelo nome ou pelo operador de alias, conforme o contexto.
ARMADILHAS COMUNS
  • Não confunda FUNCTION com chamada de função: FUNCTION declara a rotina; o uso do nome executa a rotina.
  • Parâmetros omitidos ou em ordem incorreta mudam o comportamento da rotina chamada.
  • Funções sem contrato claro de retorno dificultam testes e manutenção.
  • Expor como USER FUNCTION algo que deveria ser apenas auxiliar aumenta o acoplamento do fonte.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. FUNCTION. TDN Framework. Disponível em: https://tdn.totvs.com/display/public/framework/FUNCTION. Conteúdo consultado em 25/08/2026 e adaptado para guia de referência.
Situação
Publicado
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha