Identificador de Regra
GER-000CONCX01
Módulo: GER - Gerais.
Finalidade: Implementado o identificador de regras GER - 000CONCX01 que será executado antes do consumo de uma conexão de usuário ao executar uma tela do sistema. Sua finalidade é disponibilizar um ponto de controle para permitir avaliar se deve ser feita a abertura ou não de uma determinada tela de um determinado processo, controlando assim o acesso a tais telas e o consumo de conexões por processos por determinado usuários. Tal controle não invalida ou substitui o controle do sistema, que continua operando após o retorno da regra, a não ser que esta diga que não deve ser aberta determinada tela e então não consumirá uma conexão. O limite de conexões, caso seja este o intuito da regra, é sempre o do sistema, ou a menor, este pondendo ser definido pela regra.
O identificador recebe uma variável com a sigla do processo que está sendo consumido no momento, ou seja, o processo relacionado à tela que está sendo aberta. Exemplo: FRCR, RVPE) e retorna uma variável indicando se é permitido ou não continuar com o processo (abrir ou não a tela), e opcionalmente retornar uma variável para retornar uma mensagem ao usuário indicando o motivo da não abertura da tela caso esteja sinalizado para não continuar o processo.
Características: Quando o usuário já estiver em uma conexão flutuante ou abrir a tela de um processo que este usuário já estiver consumindo uma conexão no mesmo executável, a regra não será disparada.
Algumas telas (como as de cadastros) não consomem conexões. Estas rotinas também não passam pelo identificador.
A regra possui um controle na execução da regra que visa a capturar qualquer forma de geração de erro (geralog, Mensagem(ERRO)). Caso alguma dessas formas de cancelamento de execução ou erro ocorrer na regra, o sistema irá capturar e exibir ao usuário, concatenar com uma mensagem específica do sistema, indicando o uso do identificador. A tela que seria aberta não será aberta também, não dando continuidade ao processo.
Também será inibida a execução da função de regra AbrirTelaSistema para que não seja aberta outra tela por dentro dessa regra, o que pode causar recursividade na chamada do identificador, já que vai chamar o mesmo para abrir outra tela. Outra situação com o uso dessa função é para inibir a abertura de uma tela diferente da que o usuário solicitou, o que pode gerar dúvidas ou confusão.
Tais medidas são necessárias para evitar confusão do uso do controle via regra contra o controle normal do sistema para o controle de processos, identificar de forma clara que a lógica do sistema está sendo em parte substituída por uma lógica personalizada por regra de usuário.
Transação: Não se aplica.
Regra:
Definir Alfa GerASigPro;
Definir Alfa GerAAbrTel;
Definir Alfa GerAMotCan;
Definir Alfa xSql;
Definir Alfa xStr;
GerAAbrTel = "S";
ConverteParaMaiusculo(GerASigPro);
Se ((CodUsu = 1015)
AbrirTelaSistema('F120GPD_RVPE', "1;1;1", xNum);
Se ((CodUsu = 1012) e (GerASigPro = "RVPE"))
inicio
xStr = "select count(*) as qtdcon from R911SEC, R911MOD where R911MOD.ModNam = :MODNAM and R911MOD.NumSec = R911MOD.NumSec and appusr = :APPUSR";
SQL_Criar(xSQL);
SQL_DefinirComando(xSQL, xStr);
SQL_DefinirAlfa(xSQL, "MODNAM", "RVPE");
SQL_DefinirAlfa(xSQL, "APPUSR", NomUsu);
SQL_AbrirCursor(xSQL);
SQL_RetornarInteiro(xSQL, "QtdCon", xQtdCon);
SQL_FecharCursor(xSQL);
SQL_Destruir(xSQL);
Se (xQtdCon = 2)
inicio
GerAAbrTel = "N";
Concatena("O usuário ", NomUsu, " atingiu o limite de conexões do processo RVPE", GerAMotCan);
fim;
fim;
Variáveis Disponibilizadas:
Nome | Tipo | Observações | Retorna Valor |
---|---|---|---|
GerASigPro | ALFA | Sigla do processo da tela que está sendo aberta | N |
GerAAbrTel | ALFA | Indicativo se deve ou não abrir a ela (S - Sim, N - Não) | S |
GerAMotCan | ALFA | Texto opcional a ser exibido ao usuário caso não se deva abrir a tela | 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.