Identificador de Regra

GER-000SELEF02

Módulo: GER - Gerais.

Finalidade: Esse identificador permite aos usuários de forma programática (via regra ligada ao mesmo) restringir o acesso de um usuário a determinadas empresas/filiais, nos momentos em que a troca de empresas e filiais é feita. As situações possíveis são : na entrada do sistema (logon), na seleção de empresa ou filial via telas de seleção ou na troca de empresa e filial implícita pelo sistema, quando um processo assim necessite gerar informações em outra empresa e filial.

É possível neste identificador, por exemplo, não permitir que um usuário efetue logon em ou troque para um determinada empresa e filial, mas permitir que o sistema possa executar processos em outra empresa e filial quando o usuário está fisicamente logado em outra empresa e filial. Um exemplo disso seria a geração de Ordens de Compra em outra filial via Nota Fiscal de Saída, onde durante o fechamento da Nota Fiscal o sistema altera a empresa e filial logada para gerar uma Ordem de Compra em outra filial. Nesse caso, pode-se negar ao usuário o acesso via logon ou via tela de troca de empresa/filial para a filial em que será gerada a Ordem de Compra, mas permite que o sistema altere implicitamente e faça a geração na outra Filial.

Nesse identificador estão disponibilizadas informações da empresa e filial atual e da empresa e filial para onde está sendo feita a troca, além de identificar se essa troca está ocorrendo no logon ou através do menu. Através dessas informações é possível constuir um esquema lógico para determinar se o usuário pode ou não pode trocar para a empresa e filial de destino, retornando uma identificação ao sistema que não deve permitir essa troca, exibindo uma mensagem de erro identificando a situação.

Características: Este identificador também afeta o ERP Server, mas é possível fazer a verificação na regra se está sendo utilizado o ERP Server, usando a variável de programador AmbWeb. No logon ou na troca de usuários, o identificador não possui a filial e empresa atuais, que aparecem zeradas no identificador.

Para que o identificador execute a regra de consistencia corretamente para todas as empresas (tendo uma única regra), é necessário cadastrar o identificador em todas as empresas, referenciando o mesmo código de regra. Caso contrário, a consistência será feita apenas na empresa em que a regra estiver cadastrada e que seja a mesma empresa em que o usuário estiver logado e as demais não serão consistidas.

Tela: Gerais, Logon, FSELEMP, FSELFIL

Transação: Não se aplica.

Regra:

Definir Numero GerNEmpAtu;
Definir Numero GerNFilAtu;
Definir Numero GerNEmpNov;
Definir Numero GerNFilNov;

Definir Alfa GerASelUsu;
Definir Alfa GerAEntSis;
Definir Alfa GerAPerAlt;

Definir Alfa VSAlfaEmpAtu;
Definir Alfa VSAlfaFilAtu;
Definir Alfa VSAlfaEmpNov;
Definir Alfa VSAlfaFilNov;
Definir Alfa VSAlfaAmbWeb;
Definir Alfa VSAlfaCodUsu;
Definir Alfa VSAlfaMensagem;

IntParaAlfa(GerNEmpAtu, VSAlfaEmpAtu);
IntParaAlfa(GerNFilAtu, VSAlfaFilAtu);
IntParaAlfa(GerNEmpNov, VSAlfaEmpNov);
IntParaAlfa(GerNFilNov, VSAlfaFilNov);
IntParaAlfa(CodUsu, VSAlfaCodUsu);

se (AmbWeb = 1)
VSAlfaAmbWeb = "S";
senao
VSAlfaAmbWeb = "N";

/*
Não permite que o usuário 1019 troque pela tela de seleção de empresa/filial
para a empresa 2 e filial 1 ou entre no sistema ERP com esses dois valores,
mas permite que o sistema acesse essa empresa e filial quando algum processo
interno exigir
*/
se ((AmbWeb = 0) e (CodUsu = 1019) e ((GerAEntSis = "S") ou (GerASelUsu = "S")))
inicio
se ((GerNEmpNov = 1) e (GerNFilNov = 2))
GerAPerAlt = "N";
fim;

/*
Não permite que o usuário 1020 troque pela tela de seleção de empresa/filial
para a empresa 2 e filial 1 ou entre no sistema ERP com esses dois valores,
e nem permite que os processos do sistema acessem a e empresa e filial quando
algum processo interno exigir
*/
se ((AmbWeb = 0) e (CodUsu = 1020))
inicio
se ((GerNEmpNov = 1) e (GerNFilNov = 2))
GerAPerAlt = "N";
fim;


/*
Não permite que o usuário 1012 conecte no ERP com a empresa e e filial 2,
em nenhuma hipótese, seja por entrada no sistema, troca de empresa
ou filial por tela de seleção ou troca de empresa ou filial implicitamente
por alguma rotina do sistema
*/
se ((AmbWeb = 0) e (CodUsu = 1012) e (GerNEmpNov = 2) e (GerNFilNov = 2))
GerAPerAlt = "N";


VSAlfaMensagem = "Seleção em tela: " + GerASelUsu +
". Entrada do sistema: " + GerAEntSis +
". Empresa atual: " + VSAlfaEmpAtu +
". Filial atual: " + VSAlfaFilAtu +
". Empresa nova: " + VSAlfaEmpNov +
". Filial Nova: " + VSAlfaFilNov +
". Usuário atual: " + VSAlfaCodUsu +
". Ambiente WEB: " + VSAlfaAmbWeb +
". Permite trocar: " + GerAPerAlt + ".";

Mensagem(Retorna, VSAlfaMensagem);

Variáveis Disponibilizadas:

Nome Tipo Observações Retorna Valor
GerNEmpAtu NÚMERO Identifica o código da empresa em que atualmente o usuário está logado. Possui o valor zero no logon ou na troca de usuário. N
GerNFilAtu NÚMERO Identifica o código da filial em que atualmente o usuário está logado. Possui o valor zero no logon ou na troca de usuário. N
GerNEmpNov NÚMERO Identifica o código da empresa para a qual o sistema está trocando. N
GerNFilNov NÚMERO Identifica o código da filial para a qual o sistema está trocando. N
GerASelUsu ALFA Identifica que a troca atual está sendo efetuada através da tela de seleção de empresa (FSELEMP) ou da tela de seleção de filial (FSELFIL) N
GerAEntSis ALFA Identifica que a troca atual está sendo efetuada no logon ou na troca de usuário N
GerAPerAlt ALFA Define se a troca pode ser efetuada, ddevendo retornar o valor "N" (Não) quando a troca não é permitida. O valor padrão é "S" (Sim), permitindo a troca, mas qualquer valor diferente de "N" será considerado que pode ser efetuada a troca. S

Atenção

Caso o parâmetro global LisVarReg esteja habilitado, a variável ListaVariaveis estará disponível em todos os identificadores de regras do sistema. O conteúdo desta variável lista os campos disponibilizados no identificador de regras em questão.

Não é aconselhada a ativação desse parâmetro global para o uso cotidiano. Esse recurso de listagem dos campos de identificadores auxilia a construção de regras e o Suporte para, por exemplo, depuração ou quando não houver acesso à documentação dos identificadores de regras.

Este artigo ajudou você?