Usina BRAdvPL Guia
Entrar
← Todos os tópicos
FUNçãOPublicado

ExistBlock

ExistBlock( <cPontoEntrada> ) --> lExiste

Verifica se um ponto de entrada ou bloco customizado existe antes de executá-lo.

Pontos de entradaFrameworkCustomizaçãoFunções essenciais
01 · VISÃO GERAL

Visão geral

ExistBlock() é usada para consultar se determinada customização está disponível no ambiente. Em rotinas extensíveis, ela evita chamar ExecBlock() para um ponto inexistente e torna o código mais seguro para ambientes com variações por cliente, filial ou módulo.

02 · SINTAXE

Sintaxe

ExistBlock( <cPontoEntrada> ) --> lExiste

Parâmetros

cPontoEntrada
CaracterObrigatório

Nome do ponto de entrada, bloco ou identificador de customização a verificar.

Retorno

Lógico. Retorna .T. quando o bloco existe e .F. quando não existe.

03 · EXEMPLO PRÁTICO

Executar ponto de entrada apenas se existir

#Include "TOTVS.ch"

User Function ExExistBlock()
    Local lValido := .T.

    If ExistBlock("MA030VLD")
        lValido := ExecBlock("MA030VLD", .F., .F.)
    EndIf

    If lValido
        MsgInfo("Validação autorizada.")
    EndIf
Return
Resultado esperado

A chamada ao ponto de entrada só acontece quando ele existe no ambiente.

BOAS PRÁTICAS
  • Use antes de ExecBlock() quando a customização for opcional.
  • Documente o ponto de entrada esperado e o contrato de retorno.
  • É comum em fontes que precisam funcionar em vários ambientes sem exigir todas as customizações.
ARMADILHAS COMUNS
  • ExistBlock() só informa existência; a validade dos parâmetros e do retorno continua sendo responsabilidade da rotina.
  • Evite transformar pontos opcionais em dependência invisível sem documentação.

Conteúdos relacionados

REFERÊNCIAS
  1. RXM Tecnologia. 20 funções AdvPL essenciais que todo dev Protheus usa. Maycon Motta da Silva, maio de 2026. Disponível em: https://rxmtecnologia.com.br/blog/20-funcoes-advpl-essenciais-que-todo-dev-protheus-usa.
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