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 - Função que permite trocar a empresa em tempo de execução

time.pngTempo aproximado para leitura: 00:02:00 min

Dúvida

Existe alguma função que permite trocar a empresa em tempo de execução?

Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) – ADVPL – A partir da versão 11.80

Solução
Não existe uma função específica que permita consultas ou manipulação em uma empresa 'B' enquanto estiver conectado em ambiente da empresa 'A'. Para possibilitar uma ação desse tipo é necessário que outra Thread seja iniciada para uma execução independente, e nela preparado um ambiente para tal. O recurso para essa necessidade seria a função StartJob.
A seguir um exemplo de rotina automática, para a inclusão de um produto, em duas empresas diferentes simultaneamente:

 

Threads Sem interface:

#Include 'Protheus.ch'
#Include 'TBICONN.ch'

User Function tStJb010()
Local aVetor := {}

PRIVATE lMsErroAuto := .F.
Private INCLUI := .T.

PREPARE ENVIRONMENT EMPRESA "01" FILIAL '0101'USER "Usuario" PASSWORD "****" MODULO "EST"

aVetor:= {{"B1_COD" ,'PA01 ' ,NIL},;
{"B1_DESC" ,"TESTE EXECAUT " ,NIL},;
{"B1_TIPO" ,"PA" ,Nil},;
{"B1_UM" ,"UN" ,Nil},;
{"B1_PESO" ,10 ,Nil},;
{"B1_LOCPAD" ,"01" ,Nil},;
{"B1_RASTRO" ,"N" ,Nil},;
{"B1_LOCALIZ" ,"N" ,Nil}}

//Inclui o produto na empresa corrente ('99')
MSExecAuto({|x,y| Mata010(x,y)},aVetor,3)

If !lMsErroAuto
ConOut("Produto incluído na empresa 99")
Else
ConOut("Erro na inclusao!")
MostraErro()
EndIf

//Inclui o mesmo produto na empresa '02'
STARTJOB("U_T010Auto",getenvserver(),.t.,aVetor)

RESET ENVIRONMENT

Return

User Function T010Auto(aVetor)
PRIVATE lMsErroAuto := .F.
Private INCLUI := .T.

PREPARE ENVIRONMENT EMPRESA "02" FILIAL '0201'USER "Usuario" PASSWORD "****" MODULO "EST"

MSExecAuto({|x,y| Mata010(x,y)},aVetor,3)

If !lMsErroAuto
ConOut("Produto incluído na empresa 02 ")
Else
ConOut("Erro na inclusao!")
MostraErro()
EndIf

RESET ENVIRONMENT

Return

 

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

1 Comentários

  • Avatar
    Charles Carvalho Lima

    Como faz para mudar a empresa e filial em tempo de execução em rotinas chamadas diretamente do menu do Protheus, visto que a partir da release 12.1.2510 as variáveis cEmpAnt e cFilAnt não estarão mais disponíveis para atribuição?

    O 'Prepare Enviroment' e o 'SetRpcEnv' são recursos utilizados em rotinas Scheduladas. Poderão ser utilizadas agora também em rotinas de menu?

    2
    Ações de comentário Permalink
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 _