Nesse vídeo demonstraremos a utilização da função RPCSetEnv, que serve para preparar o ambiente para executarmos o nosso programa (ideal por exemplo, para quem vai trabalhar com jobs / schedule).
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zExe426
Faz a preparação do ambiente para utilização do sistema
@type Function
@author Atilio
@since 11/03/2023
@see https://tdn.totvs.com/pages/releaseview.action?pageId=6814927
@obs
Função RPCSetEnv
Parâmetros
+ cRpcEmp , Caractere , Código da empresa
+ cRpcFil , Caractere , Código da filial
+ cEnvUser , Caractere , Login do usuário
+ cEnvPass , Caractere , Senha do usuário
+ cEnvMod , Caractere , Módulo de conexão (se não vier nenhum será FAT de faturamento)
+ cFunName , Caractere , Nome da FunName (se não vier nenhuma será RPC)
+ aTables , Array , Array com tabelas que já serão abertas
+ lShowFinal , Lógico , Define se irá controlar a variável lMsFinalAuto
+ lAbend , Lógico , Se .T. irá exibir mensagem de erro em caso de falha ao validar a licença de uso
+ lOpenSX , Lógico , Se .T. pega o primeiro registro da SM0 e faz a abertura das tabelas do dicionário (quando não for passado o cRpcFil)
+ lConnect , Lógico , Se .T. faz a conexão com servidor AS400 / SQL Server
Retorno
+ lRet , Lógico , Retorna se conseguiu preparar o ambiente com sucesso (.T.) ou não (.F.)
**** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
User Function zExe426()
Local aArea := FWGetArea()
Local cAutoEmp := "99"
Local cAutoFil := "01"
Local cAutoUsu := "daniel.atilio"
Local cAutoSen := "tst123"
Local cAutoAmb := "GPE"
//Se o dicionário não estiver aberto, irá preparar o ambiente
If Select("SX2") <= 0
RPCSetEnv(cAutoEmp, cAutoFil, cAutoUsu, cAutoSen, cAutoAmb)
EndIf
//Busca as informações do usuário
cCodUsr := RetCodUsr()
cNomUsr := UsrFullName(cCodUsr)
//Exibe uma mensagem com as informações
FWAlertInfo("Usuário logado: " + cCodUsr + " (" + cNomUsr + ")", "Teste RetCodUsr")
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.