Mudar empresa e Filial em ADVPl

Pessoal, b tarde! Tenho um fonte customizado que muda Emresa e Filial para fazer uma nota de entrada que esta dando erro na LIB mais atual do portal. Hoje utilizo o recurso de PREPARE ENVIRONMENT EMPRESA "05" FILIAL '01', é o mais recomendado para isso ??

Olá, como você faz isso, você faz isso via job, via REST, numa thread com interface?

Daniel, o fonte utilizo dentro da aplicação mesmo, chamada pelo Menu.

Se você mudar isso no meio da aplicação, isso vai gerar inúmeros problemas, vai quebrar cache, posicionamento de tabelas e diversas coisas, não recomendo você fazer isso. Se você precisa fazer algo em outro grupo de empresas, pense em fazer via StartJob, pois será uma nova thread, com um novo contexto etc.

Olá,

A única função existente para abrir o ambiente é a RpcSetEnv.

Porém fechar e abrir o ambiente, gera uma queda de performance.

Sendo uma thread de interface, os problemas são maiores, pois por questões de performance, existem inúmeros caches gerados com base no grupo aberto ao inicializar o Protheus, chamar as funções RpcClearEnv e RpcSetEnv, pode levar a cenários de exceções e mal funcionamento.

Por exemplo, o REST do Protheus, não abre e fecha ambiente, ele começa a thread no grupo XX e fica nesse mesmo grupo até a thread ser finalizada, por tempo, por exceção etc. Temos diversos cenários de não conformidade, exatamente por mal uso do RpcSetEnv em thread já previamente preparadas.