Trecho do ponto de entrada que faz a chamada para o Ponto de Entrada que o cliente renomeia para XMA103BUT

O fonte MA103BUT.prx (pasta 0-Pontos Entrada Protheus) apenas chama a função U_MLA103BUT() (fonte MLA103BT.prw, pasta Pontos Entrada do projeto Central XML), que contém a regra:

	// Verifica se o cliente não tem primeiro o programa com o prefixo Z - Especifico para clientes que já usaram o prefixo X em outra customização
	If ExistBlock( "ZMA103BUT" )
		aUsButtons := ExecBlock( "ZMA103BUT", .F., .F.,{aInfo} )
		If sfValAtrib("aUsButtons") == "A"
			AEval( aUsButtons, { |x| AAdd( aButtons, x ) } )
		Endif
	Else
		// Executa Ponto de Entrada do Cliente
		If ExistBlock( "XMA103BUT" )
			aUsButtons := ExecBlock( "XMA103BUT", .F., .F.,{aInfo} )
			If sfValAtrib("aUsButtons") == "A"
				AEval( aUsButtons, { |x| AAdd( aButtons, x ) } )
			Endif
		EndIf
	Endif

Return aButtons

Uso na Central XML

Documentação oficial no TDN

MA103BUT - Inclusão de opções na EnchoiceBar - Linha Microsiga Protheus - TDN (totvs.com)

Ponto de entrada MA103BUT

Linha de Produto: Microsiga Protheus
Módulo: Compras (SIGACOM)
Rotina: Documento de Entrada - MATA103
Ponto de Entrada: MA103BUT
Idioma: Português (Brasil)
Banco(s) de Dados: Todas
Sistema(s) operacional(is): Todos

Ponto de Entrada

Descrição: O Ponto de Entrada MA103BUT, chamado a partir do código-fonte MATA103.PRW, permite ao usuário adicionar opções na barra de menus EnchoiceBar do Documento de Entrada.
Programa Fonte: MATA103.PRW
Função: A103Bar
Parâmetros: PARAMIXB[1] - Array - aInfo: informações da tela do Documento de Entrada.
Retorno: Array (vetor) de opções de usuário, adicionado ao vetor de botões do sistema. Cada elemento: { "BITMAP", {

Exemplo:

#Include 'Protheus.ch'

User Function MA103BUT()

Local aButtons := {}

aadd(aButtons, {'TESTE', {|| Alert("Ponto de entrada executado") }, 'TESTE'})

Return (aButtons)