Nesse vídeo demonstraremos a utilização das funções ExecBlock e ExistBlock, sendo que uma valida se a função existe no RPO (esta compilada) e a outra executa.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | //Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function zExe156 Valida se uma função existe e com a possibilidade de executar @type Function @author Atilio @since 18/12/2022 @see https://tdn.totvs.com/pages/releaseview.action?pageId=6814883 e https://tdn.totvs.com/display/public/framework/ExistBlock+-+Verifica+ponto+de+entrada+existente @obs Função ExecBlock Parâmetros + cNomePE , Caractere , Nome da User Function / ponto de entrada + lVarEnv , Lógico , Indica se as variáveis private e public serão restauradas + lSet , Lógico , Indica se os Sets do sistema serão restaurados + uParam , Indefinido , Define as variáveis que vão ficar disponíveis na função executada através do PARAMIXB Retorno + uRetorno , Indefinido , Assume o retorno da User Function executada Função ExistBlock Parâmetros + cNomePE , Caractere , Nome da User Function / ponto de entrada + lLocaliz , Lógico , Indica se é específico para o mercado internacional (.T.) ou para qualquer ambiente inclusive o Brasil (.F.) + lForced , Lógico , Indica se será executado (.T.) mesmo em Série 3, Pyme ou Start ou se não será (.F.) nesses ambientes Retorno + lExiste , Lógico , .T. se encontrou ou .F. se não encontrou **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao **** /*/ User Function zExe156() Local aArea := FWGetArea() Local xRetorno := "" //Se a função estiver compilada no ambiente If ExistBlock( "zExe084" ) xRetorno := ExecBlock( "zExe084" , /*lVarEnv*/ , /*lSet*/ , { "Daniel" , 29, Date()}) FWAlertInfo( "O retorno é: " + cValToChar(xRetorno), "Teste com ExistBlock e ExecBlock" ) EndIf FWRestArea(aArea) Return |
Bom pessoal, por hoje é só.
Abraços e até a próxima.