Troca de Empresa durante a Execução

Boa tarde!

Tenho algumas integrações SOAP que usam o mesmo endpoint para varias empresas e no programa eu ficava mudando entre as empresas utilizando o trecho abaixo:

dbCloseAll()

cEmpAnt := cEmpRet

cFilAnt := cFilRet

OpenSM0(cEmpAnt+cFilAnt)

OpenFile(cEmpAnt+cFilAnt)

Após a atualização para o release 12.1.2410 não é mais permitido alterar a variável cEmpAnt, existe alguma outra forma de mudar a empresa posicionada durante a "execução" ?

Olá,

Murilo, a thread tem seu ambiente preparado conforme a configuração do SOAP, cada thread vai atender um grupo de empresas específico, se você deseja mudar de grupo de empresas, você deveria fazer uma requisição para cada grupo de empresas e tratar o grupo via o header TenantId.

Chamar funções como DBCloseAll tem um impacto extremamente negativo, parando semáforos de controle em diversos outros problemas, isso não é recomendado.

Olá Murilo, tudo bem?

Aqui temos customizações onde realizamos operações com diversas empresas e suas filiais. Na maioria dos casos, para não dar problema, encapsulamos a rotina de integração com um StartJob. Criamos assim uma sessão no server que "morre" ao finalizar o que precisa ser feito. Isso eliminou bastante errorlog que era gerado no uso de um RpcSetEnv.

Murilo, tudo bem?
conseguiu resolver esta demanda?