Nesse vídeo demonstraremos em como utilizar as funções AtIsRotina e FWIsInCallStack, sendo que ambas validam se uma função esta na pilha de chamadas.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zExe049
Exemplo de função que verifica se esta sendo acionada por alguma função da pilha de chamadas
@type Function
@author Atilio
@since 01/12/2022
@see https://tdn.totvs.com/pages/releaseview.action?pageId=161349910
@obs 
    Função AtIsRotina
    Parâmetros
        + Indica o nome da função a ser procurada na pilha de chamadas
    Retorno
        + Retorna .T. se encontrou ou .F. se não encontrou
    Função FWIsInCallStack
    Parâmetros
        + Indica o nome da função a ser procurada na pilha de chamadas
    Retorno
        + Retorna .T. se encontrou ou .F. se não encontrou
    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
User Function zExe049()
    Local aArea      := FWGetArea()
    Local cFuncBusca := ""
    //Buscando pela AtIsRotina (só funciona se tudo tiver maiúsculo)
    cFuncBusca := "U_ZMINIFORM"
    If AtIsRotina(cFuncBusca)
        FWAlertInfo("Foi acionado pela função - " + cFuncBusca, "Exemplo AtIsRotina")
    EndIf
    //Buscando pela FWIsInCallStack (independe se for maiúscula ou minúscula)
    cFuncBusca := "u_zMiniForm"
    If FWIsInCallStack(cFuncBusca)
        FWAlertInfo("Foi acionado pela função - " + cFuncBusca, "Exemplo FWIsInCallStack")
    EndIf
    FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.
 
 
