No artigo de hoje vou demonstrar como trocar de empresa e filial usando a função OpenFile.
Para trocar a empresa e filial no Protheus, nós podemos simplesmente alterar as variáveis cEmpAnt, cFilAnt e cNumEmp. Essas 3 são variáveis públicas que definem a filial aberta no sistema, conforme print abaixo:
Porém, para algumas funções, são carregados parametrizações internas, como por exemplo, a classe / webservice WSNFeSBRA, em que uma das utilidades que podemos usar é baixar o XML de uma NF já transmitida no Protheus – exemplo no link Função que retorna o xml de uma nota em AdvPL).
Para esse caso em específico, para poder instanciar a classe, devemos estar na filial correta, então no nosso fonte basicamente teríamos a seguinte lógica:
- Fazer backup das variáveis públicas
- Alterar as variáveis públicas para a nova filial
- Chamar a função OpenFile para fazer a validação dessa nova filial
- Fazer as tratativas necessárias / customizações
- Voltar o backup das variáveis públicas
- Chamar a função OpenFile para voltar para a filial do backup.
Abaixo o código fonte exemplificando a lógica acima:
//1. Faz o backup das variáveis públicas cEmpBkp := cEmpAnt cFilBkp := cFilAnt cNumEmpBkp := cNumEmp //2. Altera as variáveis públicas cEmpAnt := "01" cFilAnt := "0201" cNumEmp := cEmpAnt + cFilAnt //3. Chama a função OpenFile para a nova filial OpenFile(cNumEmp) //4. Aqui você faz as suas customizações / tratativas // ... // ... // ... //5. Volta o backup das variáveis cEmpAnt := cEmpBkp cFilAnt := cFilBkp cNumEmp := cEmpAnt + cFilAnt //6. Chama a função OpenFile para voltar para a filial de origem OpenFile(cNumEmp)
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Dica legal Atilio, mas a função OpenFile ainda não está documentada no TDN, e a partir da nova release 33, algumas funções restritas serão bloqueadas para utilização em customizações.
Uso bastante a função StartJob (https://tdn.totvs.com/display/tec/StartJob), que seria uma “alternativa” para troca de empresa em tempo de execução!
Abraço
Don Junior
Opa, valeu pela contribuição e comentário Don.
Sim, o binário novo esta vindo com muitas novidades né.
Grande abraço jovem.