FunName
Retorna o nome da funcao em execucao (nao a chamadora). Usado pra log, auditoria e logica condicional por contexto.
Assinatura: FunName() -> cNome
Retorna: Character
FunName retorna o nome da funcao "ativa" — geralmente a funcao chamadora do framework (MATA010, MATA030, etc), nao a User Function dentro dela. Util pra logica que precisa saber em qual contexto esta sendo chamada.
Sintaxe
ConOut("Funcao ativa: " + FunName())
// Em PE chamado por MATA030:
// Funcao ativa: MATA030
Casos de uso classicos
- Ponto de Entrada multi-rotina — mesma PE chamada por varias rotinas, voce desvia por FunName.
- Auditoria/Log — registra contexto da operacao.
- Trigger condicional — gatilho da SX7 chamado por rotinas diferentes; voce sabe qual e qual.
Exemplo: PE com 3 comportamentos
User Function MT100GRV()
Local cFunc := FunName()
Do Case
Case cFunc == "MATA103" // Documento de Entrada
U_GravaXMLEntrada()
Case cFunc == "MATA460" // Liberacao
U_LogLiberacao()
Case cFunc == "MATA410" // Pedido
U_AjustePedido()
EndCase
Return
Pegadinhas
- Retorna a funcao "raiz", nao a User Function — dentro de uma User Function chamada por MATA030, retorna "MATA030".
- Maiusculo sem prefixo — vem como "MATA030", nao "U_MyFunc".
- Em job vazio, retorna o nome do job (nao "").
- ProcName(N) e relacionada — retorna funcao N niveis acima na pilha.