No vídeo de hoje, iremos responder a dúvida em como adicionar uma função no Outras Ações quando não existe ponto de entrada.
Hoje, a dúvida foi feita pelo grande Serinhano, onde ele perguntou como poderia adicionar opções na função FATA110 sendo que ela não possui ponto de entrada no Menu.
Então basicamente o que fazemos é criar uma User Function, que aciona o Menu, o Model e o View da função FATA110.
Obs.: Existe outra forma, no ponto de entrada ChkExec, daria para verificar com um If o nome da função, e depois adicionar um atalho via SetKey, por exemplo nas teclas F5, F6, F7, etc. Conforme exemplo abaixo:
User Function ChkExec()
	Local aArea 	:= FWGetArea()
	Local lContinua := .T.
	Local cFuncao	:= Upper(ParamIXB)
	
	//Se vier da rotina Pedido de Veículos, habilita o uso de atalhos, devido a tela não ter ponto de entrada para manipular o menu
	If ("VEIXA050" $ cFuncao)
		SetKey(VK_F7, {|| u_zSuaFuncao()})
	EndIf
	
	//Se vier da Rotina de Turnos, habilita o uso de atalhos, devido a tela não ter ponto de entrada para manipular o menu
	If ("GPEA080" $ cFuncao)
		SetKey(VK_F5, {|| u_zSuaFuncao()})
	EndIf
	
	FWRestArea(aArea)
Return lContinua
Continuando com o artigo original, isso é demonstrado no vídeo abaixo:
E abaixo o código fonte desenvolvido para exemplificar:
//Bibliotecas
#Include "TOTVS.ch"
#Include "FWMVCDef.ch"
   
/*/{Protheus.doc} zVid02
Função para "clonar" a função padrão FATA110 adicionando opções no Outras Ações
@author Atilio
@since 29/12/2021
/*/
   
User Function zVid02()
    Local oBrowse     := Nil  
    Private cCadastro := "Grupos de Clientes"
    Private aRotina   := FwLoadMenuDef("FATA110")
       
    //Talvez é necessário chamar aqui o SetFunName dependendo da rotina padrão
   
    //Adicionar a opção no menu padrão
    ADD OPTION aRotina TITLE "* Função Teste" ACTION 'Alert("teste")'    OPERATION 8    ACCESS 0
   
    //Abre o browse da rotina
    oBrowse := FWMBrowse():New()
    oBrowse:SetAlias('ACY')
    oBrowse:SetDescription(cCadastro)
    oBrowse:Activate()
Return
   
//Busca o Model da função FATA110
Static Function ModelDef()
Return FWLoadModel('FATA110')
   
//Busca o View da função FATA110
Static Function ViewDef()
Return FWLoadView('FATA110')
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Grande Atilio, obrigado pela força.
Eu que agradeço jovem pelo feedback.
Grande abraço.