A função RpcSetEnv é utilizada para abertura de ambiente em rotinas automáticas, permitindo definir a empresa e filial no qual desejamos fazer a inicialização do ambiente, especificando o usuário e senha para determinar os direitos e ações a serem realizadas. É possível também especificar quais as tabelas que serão abertas para uso no ambiente e qual módulo será utilizado.
Sintaxe:
RpcSetEnv( [ cRpcEmp ] [ cRpcFil ] [ cEnvUser ] [ cEnvPass ] [ cEnvMod ] [ cFunName ] [ aTables ] [ lShowFinal ] [ lAbend ] [ lOpenSX ] [ lConnect ] ) → lRet
Retorno:
lRet → Logical, Retorna .T. se abriu corretamente o ambiente com a empresa e filial. Se .F. não conseguiu abrir o ambiente.
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório |
cRpcEmp | Caracter | Código da empresa. | ||
cRpcFil | Caracter | Código da filial. | ||
cEnvUser | Caracter | Nome do usuário. | ||
cEnvPass | Caracter | Senha do usuário. | ||
cEnvMod | Caracter | Código do módulo. | ||
cFunName | Caracter | Nome da rotina que será setada para retorno da função FunName(). É também utilizado na gravação da rotina que executou as inclusões/alterações na tabela de auditoria | ||
aTables | Array | Array contendo as tabelas a serem abertas. | ‘RPC’ | |
lShowFinal | Logical | Alimenta a variável publica lMsFinalAuto. | .F. | |
lAbend | Logical | Se .T., gera mensagem de erro ao ocorrer erro ao checar a licença para a estação. | .T. | |
lOpenSX | Logical | SE .T. pega a primeira filial do arquivo SM0 quando não passar a filial e realiza a abertura dos SXs. | .T. | |
lConnect | Logical | Se .T., faz a abertura da conexão com servidor As400, SQL Server etc. | .T. |
Exemplo:
User Function fSetEnv()
Local aTables as array
aTables := {"CT1","CT2","CT3","CT4","CT5","CTF","CTE"}
//seta o ambiente com a empresa 99 filial 01 com os direitos do usuário administrador, módulo CTB
RpcSetEnv( "99","01", "Administrador", " ", "CTB", "CTBA102", aTables, , , , )
/************* Processamentos *************/
RpcClearEnv() //Encerra o ambiente, fechando as devidas conexões
Return Nil
O ambiente não deve ser inicializado ou encerrado em rotinas de menu do Protheus, o Protheus já entrega o ambiente aberto e preparado para a correta execução da rotina, caso o ambiente seja aberto ou fechado em rotinas de menu erros diversos podem ocorrer.
Essa situação também ocorrer para schedule (exceção para processo especial) e para REST quando já configurado com PrepareIn.
Adicionar comentário