Esta versão do sistema foi descontinuada e não recebe atualizações e novas implementações. Acesse a documentação da versão 5.10.3 aqui

Identificador de Regra

GER-000SELEF01

Módulo: GER - Gerais.

Finalidade: Disponibilizar um ponto para execução de regras após a troca de empresa ou filial ativa.

Características: Este identificador é chamado em todos os momentos onde a empresa/filial ativa são trocadas, não somente pela tela "FSelEmp" ou "FSelFil". Após o logon de um usuário ocorre uma troca de empresa/filial.

Importante

Se este identificador estiver ativo somente numa empresa "X", ele só será executado quando:

  1. ativar a empresa "X" na troca de empresa;
  2. trocar de filial, se a empresa "X" for a ativa;

Para que ele seja executado na troca de qualquer empresa ou filial deve-se ativá-lo em todas as empresas.

É possível que os filtros aplicados via identificador não sejam aplicados quando é feita uma inclusão de um registro na tabela que foi filtrada. Esse recurso deve ser ativado através do retorno variável GerAValIns do tipo alfa, com o valor "N".

O comportamento normal do sistema é de não incluir registros nas tabelas que tenham um filtro aplicado e a informação do novo registro entra nesse filtro. Com esse novo recurso, os filtros são ignorados no momento de uma inclusão. Após a inclusão, quando o usuário navegar nos demais registros, o novo registro não ficará mais visível, pois os filtros são aplicados, mas no momento da inclusão, ele será permitido. Esse recurso se aplica para todas as tabelas onde se aplicam um filtro através deste identificador GER-000SELEF01 e da função de programador SetarFiltroSQL, não sendo possível definir o comportamento individualmente por tabela. Verificar também se é permitida a inclusão de registros que estão dentro do próprio filtro.

Quando esta função de programador for utilizada no identificador, somente será possível realizar uma troca de empresa/filial saindo do sistema e logando na empresa/filial desejada, pois os filtros indicados na função de programador não são limpos quando a troca de empresa/filial ocorre através do menu do ERP.

Tela: Troca de empresa/filial

Transação: Não se aplica.

Regra:

Definir Alfa alfAux;
Definir Alfa msgAux;

Definir Alfa ENTER;
CaracterParaAlfa(13, ENTER);

IntParaAlfa(CodUsu, alfAux);
msgAux = "Usuário: " + alfAux + " (" + NomUsu + ")" + ENTER;
IntParaAlfa(CodEmp, alfAux);
msgAux = msgAux + "Empresa: " + alfAux + " (" + Empresa + ")" + ENTER;
IntParaAlfa(CodFil, alfAux);
msgAux = msgAux + "Filial: " + alfAux + " (" + Filial + ")";

msgAux = msgAux + "[&OK]";
Mensagem(retorna, msgAux);


***********************************************************
Exemplo de Regra para utilização do SetarFiltroSql:

@ Para definir um filtro onde somente podem ser vistos clientes que tenham definição para a empresa ativa @
Definir Alfa vAlfCodEmp;
Definir Alfa vFiltro;
IntParaAlfa(CodEmp, vAlfCodEmp);
vFiltro = "SELECT CODCLI FROM E085HCL WHERE CODEMP = " + vAlfCodEmp;
SetarFiltroSql("E085CLI", "CodCli", vFiltro);

@ Para limpar o filtro da tabela de cliente, campo código @
SetarFiltroSql("E085CLI", "CodCli", "");

************************************************************

@ Para definir um filtro onde retorne somente derivações de produtos ativas@
SetarFiltroSql("E075DER","SITDER","'A'");

Importante

Caso exista a necessidade de realizar o tratamento de filtros de uma tabela, porém a tabela que está criando o registro é a outra, é preciso considerar as duas tabelas na regra.

Considerando o exemplo do cadastro do cliente, tela F085CAD e ­tabela E085CLI, onde a intenção é filtrar os dados baseado em informações das definições do cliente (tabela E085HCL), a regra deve tratar a busca dos dados em ambas as tabelas, conforme o exemplo de regra que segue abaixo, onde é filtrado os clientes que possuem um determinado representante vinculado.

VFILTRO = "SELECT CODCLI FROM E085HCL WHERE E085HCL.CODREP = 4 UNION SELECT CODCLI FROM E085CLI WHERE NOT EXISTS "+ "(SELECT 1 FROM E085HCL WHERE E085CLI.CODCLI = E085HCL.CODCLI )";

SETARFILTROSQL("E085CLI", "CODCLI", VFILTRO);

Variáveis Disponibilizadas:

Nome Tipo Observações Retorna Valor
GerAValIns ALFA Opcional, e quando usada com o valor "N", indica que os filtros usados na função de programador SetarFiltroSQL não serão aplicados quando é feita a inclusão de um registro na tabela que foi filtrada. 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ê?