Tratamento de ambiente, empresa, filial e módulo
Define quem abre e encerra o contexto Protheus.
Visão geral
RpcSetEnv permite selecionar empresa, filial, usuário, credencial, módulo e tabelas em rotinas automáticas que precisam abrir seu próprio contexto. Seu retorno lógico deve ser conferido. Menu, Schedule preparado e serviços com PrepareIn já podem possuir ambiente: não o reinicialize nem encerre com RpcClearEnv. A documentação registra exceção em REST/SOAP com contexto preparado desde 12.1.2510. A partir da LIB 20251117, o argumento de credencial admite o token específico gerado por totvs.framework.users.rpc.getAuthToken(); não presumir aceitação de tokens arbitrários. O bloco abaixo é só uma abertura preparada, não um ciclo de vida completo. (Fontes: refs. 1–1.)
Exemplo comentado
#Include "Protheus.ch"
User Function Ed695()
// Credencial recebida do chamador autorizado; nunca registrar em log.
// Bloco nao invocado: nao troca o ambiente corrente.
Local bAbrir := {|cEmpresa,cFilialAlvo,cUsuario,cCredencial,cModulo| ;
RpcSetEnv(cEmpresa,cFilialAlvo,cUsuario,cCredencial,cModulo)}
ConOut(ValType(bAbrir))
Return NilCria bloco B sem autenticar, abrir ou fechar ambiente. Integração real precisa verificar .T. e limpar apenas contexto próprio. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.
- Não confundir restauração de área com troca de empresa. Não armazenar credenciais no fonte ou log; conferir direitos, módulo e propriedade do contexto.
- Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.