Pessoal, boa tarde, Alguém saberia informar se é possível redefinir a variável contendo o código da empresa associado no momento ao usuário logado para executar um processo (especifico) entre empresas e após concluído retornar o código da empresa original ?
bom dia. Se você fizer isso provavelmente vai dar problema com muitas validações. Pois os bancos são conectados por empresa e envolvem muitas variaveis globais que já carregadas na conexão dos bancos. Sugiro desconectar os bancos da empresa X conectar os bancos da empresa Y e depois voltar. Recentemente em um trabalho de integração de dados via Appserver eu precisei conectar os bancos de acordo com o usuário que eu recebia, que poderia ser de empresa X ou Y. O agravante era que no appserver ja vinha conectado os bancos com a empresa de um usuario padrão, então eu precisava desconectar tudo e conectar os bancos da empresa do usuário. t+
Primeiro vc loga no sistema com o seu usuario usando o programa run btb/btapi910za.p(usuario,senha, output table tt-erros). e depois roda essa rotina .... o btbapi910za já faz as conexões de bancos e tal, vc só tem que estar com o emsfnd conectado. Código: find first fnd_usuar_univ exclusive-lock where fnd_usuar_univ.cod_usuario = v_cod_usuar_corren no-error. if not avail fnd_usuar_univ then do: create fnd_usuar_univ. assign fnd_usuar_univ.cod_usuario = v_cod_usuar_corren. end. assign fnd_usuar_univ.cod_empresa = string(empresa) fnd_usuar_univ.cod_livre_1 = i-ep-codigo-usuario fnd_usuar_univ.log_livre_1 = yes fnd_usuar_univ.log_livre_2 = no. release fnd_usuar_univ. empty temp-table ttErrosConexao. run piEmpresa in hSPContexto. run getTTErros in HSPContexto (output table ttErrosConexao). if can-find(first ttErrosConexao) then do: message substitute('Erro conexÆo empresa &1', empresa) view-as alert-box info buttons ok. return 'NOK'. end. return 'OK'.