Ajude o site desativando o bloqueador de anúncio
Cabeçalho

Restrições na atribuição das variáveis cEmpAnt e __cUserId

Autor: Eurai Criado: 18/10/2025 Atualizado: 12/11/2025 ADVPL
Postagem

🔒 Restrições na atribuição das variáveis cEmpAnt e __cUserId no Protheus

A nova versão do sistema TOTVS Protheus introduziu restrições importantes quanto à atribuição direta das variáveis cEmpAnt e __cUserId, além de outras alterações de compatibilidade (break changes).

Essas mudanças impactam principalmente integrações via REST e SOAP, onde o uso do comando rpcSetEnv() passa a ser bloqueado. Caso ainda seja utilizado, a thread será finalizada automaticamente, impedindo o funcionamento da requisição.


🚫 Entenda o problema

Por muitos anos, era comum encontrar integrações REST e SOAP que enviavam o CNPJ no XML ou JSON e, logo em seguida, instanciavam o ambiente utilizando rpcSetEnv() conforme o valor recebido. A partir dessa atualização, esse processo **não será mais permitido**.

O objetivo da mudança é garantir maior segurança e isolamento de ambiente entre empresas, evitando manipulação direta de variáveis internas.


⚙️ Ajustes para REST

Para adequar suas integrações REST às novas regras, siga as recomendações abaixo:

  1. Configure no appserver.ini a diretiva:
    prepareIn=ALL
  2. No cabeçalho (Header) da requisição, utilize a chave tenantId para identificar a empresa e a filial. Exemplo:
    tenantId: 01,02

Com isso, o ambiente correto será instanciado automaticamente, sem necessidade de utilizar rpcSetEnv().


🧩 Ajustes para SOAP

Até a data desta publicação, o modelo adotado para SOAP segue o formato onde **cada empresa possui sua própria URL**. Assim, caso existam três empresas no ambiente SIGAMAT, as URLs devem ser configuradas da seguinte forma:

Cada URL corresponde a uma empresa distinta, devidamente configurada e isolada.

Importante: a variável cFilAnt ainda poderá ser setada na thread.


🏷️ Sobre o uso de tenantId no SOAP

O SOAP também possui a tag tenantId, mas, por enquanto, ela atua apenas sobre a **filial**, e não sobre a empresa. É possível utilizá-la em conjunto com a URL da empresa, enviando no request o tenantId correspondente à filial.

No futuro, é esperado que o tenantId no SOAP seja expandido para controlar **empresa e filial simultaneamente**, de forma semelhante ao funcionamento do REST com prepareIn=ALL.


📚 Fonte oficial

Mais detalhes podem ser consultados diretamente na documentação oficial da TOTVS:

➡ TOTVS – Release Notes


💡 Gostou do conteúdo? Compartilhe com seus colegas e deixe seu comentário abaixo! 😎

ASSINE A NEWSLETTER

Cadastrando...

PIX uDesenv

PIX QR Code para depósito

Clique para doar

Parceiros

Tudo em ADVPL - Blog parceiro

Blog ADVPL