Preparando o ambiente com a RPCSetEnv – Maratona AdvPL e TL++ 426

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.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação