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ções de abertura de ambiente

No ADVPL para TOTVS Protheus, a abertura de ambiente sem interface gráfica é feita principalmente via função RpcSetEnv e comando Prepare Environment, usados em rotinas em background como Jobs e Workflows. Essas funções preparam a thread, conectam ao banco e gerenciam licenças, mas não devem ser usadas em Web Services para evitar erros. RpcSetEnv é programática, enquanto Prepare Environment simplifica a sintaxe.

Dúvida 
Quais são as funções de abertura de ambiente no ADVPL?

 

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

 

Solução 
No desenvolvimento em ADVPL para o TOTVS Protheus, a abertura de ambiente sem interface gráfica (SmartClient) é necessária para a execução de rotinas em background, Jobs, Workflows e scripts de automação. As duas principais formas de realizar essa inicialização são por meio da função RpcSetEnv e do comando Prepare Environment.

É importante ressaltar uma regra arquitetural fundamental: nenhuma dessas funções é permitida ou utilizada para a abertura de ambientes em métodos ou serviços de Web Services (sejam REST ou SOAP). 
O uso dessas instruções em Web Services não é permitido, pois causa duplicidade ou erros na inicialização da thread.

O uso dessas instruções é restrito a rotinas executadas em background, como Jobs, Schedule, Workflows ou scripts, em que, caso executadas com fontes via Menu, podem causar erros, pois o ambiente já está aberto.

 

  1. RpcSetEnv 
    A função RpcSetEnv é uma função para a inicialização programática de threads no Protheus em rotinas em background (como Jobs e Schedule). Ela prepara a thread atual, realiza a conexão com o banco de dados, posiciona nas tabelas de empresa e filial no dicionário de dados (SX2 e SM0) e gerencia o consumo de licenças conforme os parâmetros informados.
     

Exemplo de uso com RpcSetEnv:

UserFunction MeuJob() Local cEmpresa := "99" Local cFilial := "01" Local cModulo := "FAT"

// Inicializa o ambiente programaticamente
RpcSetEnv(cEmpresa, cFilial, cModulo)

// Lógica da rotina em background
ConOut("Ambiente aberto com sucesso via RpcSetEnv.")

// Encerra o ambiente e libera licenças da thread
RpcClearEnv()

Return

 

  1. Prepare Environment 
    O Prepare Environment é um comando da linguagem ADVPL, que simplifica a sintaxe de inicialização de um ambiente. Internamente, o pré-processador converte esse comando em chamadas nativas de preparação da thread e abertura de tabelas.
     

Exemplo de uso com Prepare Environment:

#include "protheus.ch"

UserFunction MeuTeste() // Inicializa o ambiente de forma declarativa PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "FAT" TABLES "SC5", "SC6"

// Lógica do teste ou validação pontual
ConOut("Ambiente aberto com sucesso via Prepare Environment.")

// Encerra o ambiente e fecha as tabelas
RESET ENVIRONMENT

Return

 

Saiba mais

Abertura de ambiente em Web Service
PREPARE ENVIRONMENT
RPCSETENV

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 _