Tempo de leitura: 2 minutos
Olá, se você precisa estender a funcionalidade padrão do Cadastro de Fornecedores (MATA020) no TOTVS Protheus, o Ponto de Entrada MA020BUT é a chave para adicionar botões personalizados na EnchoiceBar da rotina. Isso permite que você execute funções ADVPL customizadas diretamente da tela de visualização ou manutenção do fornecedor.
💡 O que é o Ponto de Entrada MA020BUT?
O MA020BUT é um Ponto de Entrada que atua na rotina MATA020 (Cadastro de Fornecedores, tabela SA2). Ele é executado para permitir que o desenvolvedor inclua botões de usuário na barra de botões (EnchoiceBar), logo abaixo dos botões padrões como “Visualizar”, “Alterar” e “Excluir”.
Sintaxe
User Function MA020BUT
…código aqui
Return aBotoes
retorna um array de arrays, onde cada sub-array define um novo botão.
Parâmetro(s) de Retorno:
Exemplo em ADVPL:
Crie um arquivo .PRW contendo a seguinte User Function:
# INCLUDE "PROTHEUS.CH"
/*/{Protheus.doc} MA020BUT
Inclusão de um botão customizado na EnchoiceBar do Cadastro de Fornecedores (MATA020).
@type User Function
@author Adilio Costa
@since 29/10/2025
@return Array de botões a serem adicionados.
@?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 e Formações 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
*/
User Function MA020BUT()
Local aBotoes := {} // Inicializa o array de botões
Local cAlias := GetNextAlias() // Obtém o alias atual da rotina (SA2)
Local cCodFor := ""
Local cMsg := ""
aAdd(aBotoes, { "Ver Saídas", "U_fFunc(cCodFor)", 0, .T., "VIEW" })
If AllTrim(cCodFor) == "000001"
aAdd(aBotoes, { "Val. Espec.", "U_FNCTST()", 0, .T., "VIEW" })
EndIf
Return aBotoes
User Function fFunc(cFornecedor)
Local cMsg := "Abrindo consulta de Saídas para o Fornecedor: " + cFornecedor
MsgStop(cMsg, "Customização MA020BUT")
Return Nil
// ----------------------------------------------------------------------
// Exemplo de User Function a ser chamada pelo botão "Val. Espec."
// ----------------------------------------------------------------------
User Function FNCTST()
MsgAlert("Executando validação específica para fornecedor 000001.", "Validação Customizada")
Return Nil
🔑 Benefícios e Uso
Ao utilizar o MA020BUT, você ganha:
-
Agilidade Operacional: Adicione atalhos para consultas ou processos específicos da sua regra de negócio.
-
Integração: Inicie integrações com sistemas externos (como consultas de crédito ou workflows) diretamente do Cadastro de Fornecedores.
-
Melhoria da Usabilidade: Deixe funções críticas e customizadas visíveis e acessíveis para o usuário.
Bem, finalizamos mais um post aqui no Blog ProtheusAdvpl.