Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmento - TOTVS Backoffice - Linha Protheus - ADVPL- Restrições na atribuição das variáveis cEmpAnt e __cUserId

time.png Tempo aproximado para leitura: 5 minutos

Ocorrência
A partir das releases 12.1.2510, foram implementadas restrições na atribuição das variáveis globais cEmpAnt e __cUserId no contexto de execução no Protheus.

Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - ADVPL - a partir da versão 12.1.2510

Causa 
As variáveis cEmpAnt (grupo de empresa) e __cUserId (usuário) eram comumente atribuídas diretamente por desenvolvedores ou integradores para simular ou alterar o contexto de execução de serviços no Protheus. No entanto, essa prática oferece riscos de segurança e inconsistência, especialmente em ambientes com múltiplas empresas.
Com a evolução do Framework e das práticas de segurança, essas variáveis cEmpAnt e __cUserId não podem mais ser alteradas diretamente em chamadas.


Importante: A leitura dessas variáveis é permitida.

Solução
Troca de grupo de empresas ou usuário após abertura inicial.

  • Rotinas em geral:
    Mesmo após a autenticação e a preparação do ambiente, não será permitida atribuição diretamente as variáveis cEmpAnt ou __cUserId.
    Caso seja necessário verificar ou executar ações em outro grupo de empresas, ou com outro Usuário, a única forma suportada é por meio da função:

    RPCSetEnv(cRpcEmp, cRpcFil, cEnvUser, cEnvPass, cEnvMod)


    A chamada da RPCSetEnv() deve ser efetuada em uma nova thread aberta com as funções StartJob, SmartJob ou similares, passando os parâmetros corretos no início, respeitando as permissões e licenciamento do usuário e módulo informados.

    Importante: Não é recomendado o uso da RpcSetEnv() em threads de interface, isso pode causar consumo indevido de licenças e até falhas no ERP.

    Saiba mais detalhes:
    Cross Segmento - TOTVS Backoffice Linha Protheus - ADVPL - Função que permite trocar a empresa em tempo de execução
    https://tdn.totvs.com/display/public/framework/RpcSetEnv
    https://tdn.totvs.com/display/tec/StartJob

     

  • Webservices REST:
    A inicialização do ambiente deve ocorrer por meio de autenticação e identificação do ambiente (empresa/filial) por meio do Header da requisição [tenantId].
    As informações de ambiente e usuário são extraídas com base nesses parâmetros, respeitando a estrutura do serviço.

    Importante: Variáveis como cEmpAnt e __cUserId não podem ser utilizadas para troca de contexto na execução.

    Saiba mais detalhes no artigo:
    Cross Segmento - TOTVS Backoffice - Linha Protheus - ADVPL - Abertura de ambiente em Web Service

     

  • Webservices SOAP:
    No caso do SOAP, o ambiente é preparado conforme a configuração de URIs específicas para cada grupo de empresas, definida no AppServer.ini.
    A diretiva [PrepareIn] do AppServer.ini é utilizada para configurar a preparação de ambiente para threads de execução.

    Importante: Como não existe a opção de configuração PrepareIn=ALL, deve ser configurada uma [HTTPURI] diferente para cada grupo de empresas, pois o SOAP necessita de ambiente especialista por empresa e filial.
    Variáveis como cEmpAnt e __cUserId não podem ser utilizadas para troca de contexto na execução.

    Consulte a documentação completa:
    Configurar Portais e Webservices
    PrepareIn Rest - Appserver.ini
    REST com ERP Microsiga Protheus

Saiba mais
https://tdn.totvs.com/pages/releaseview.action?pageId=954597455
https://tdn.totvs.com/pages/releaseview.action?pageId=918398030

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _