Identificador de Regra

GER-085HCLAO01

Módulo: GER - Gerais.

Finalidade: Disponibilizar um ponto onde possam ser feitos processamentos específicos após operações realizadas sobre um registro de definições/histórico de clientes (tabela Cadastros - Clientes - Históricos (E085HCL)). É chamado ao incluir, alterar ou excluir definições/histórico de cliente.

Características: Para a regra são passados todos os campos da tabela "E085HCL" com os dados antigos das definições/histórico de cliente, ou seja, dados de antes da realização da operação. Tais dados servem, principalmente, para verificar as mudanças ocorridas. Nota-se que em uma inserção não existem dados antigos do registro, logo estes campos possuem valor nulo.
Estes dados são passados por meio de variáveis que seguem a nomenclatura "VS" + (Ex.: para o campo "VlrLim" a variável se chama "VSVlrLim"). A tipagem das variáveis é análoga a dos campos na tabela. Assim, para se ter acesso aos novos dados do registro deve-se criar um cursor que busque tais dados já gravados no banco de dados. Nota-se que em uma exclusão não existem dados novos do registro, sendo que a busca por estes dados via cursor é ilógica e inviável, já que registro foi excluído.

É disponibilizada a variável "VSEstado" que indica a operação sendo realizada e pode assumir os seguintes valores:
a) "INSERINDO": indica que o registro está sendo inserido;
b) "ALTERANDO": indica que o registro está sendo alterado;
c) "EXCLUINDO": indica que o registro está sendo excluído;

Este identificador é chamado, para algumas telas rotinas, antes da comitação das operações no base de dados, logo qualquer erro que ocorra na regra cancelará a operação.

Telas:

Observação

Nas telas F301TCR, F301BMA, F085CAD e F085HCL a variável VSTela recebe o nome da respectiva tela que chamou o identificador, podendo dessa forma ser realizada uma condição, conforme exemplo abaixo.

Transação: Não se aplica.

Regra:

Definir Alfa VSEstado;
Definir Numero VSCodCli;
Definir Numero VSCodEmp;
Definir Numero VSCodFil;
Definir Numero VSVlrLim;
Definir Alfa VSCodCpg;

Definir Alfa ENTER;
CaracterParaAlfa(10, ENTER);

Definir Alfa vCodCliStr;
Definir Alfa vCodEmpStr;
Definir Alfa vCodFilStr;
Definir Alfa vMsg;
Definir Alfa vStrAux1;
Definir Alfa vStrAux2;
IntParaStr(VSCodCli, vCodCliStr);
IntParaStr(VSCodEmp, vCodEmpStr);
IntParaStr(VSCodFil, vCodFilStr);

se (VSEstado = "INSERINDO")
vMsg = "Definição de cliente " + vCodCliStr + ", empresa " + vCodEmpStr + ", filial " + vCodFilStr + ", criada!";
senao
se (VSEstado = "ALTERANDO")
vMsg = "Definição de cliente " + vCodCliStr + ", empresa " + vCodEmpStr + ", filial " + vCodFilStr + ", alterada!";
senao
se (VSEstado = "EXCLUINDO")
vMsg = "Definição de cliente " + vCodCliStr + ", empresa " + vCodEmpStr + ", filial " + vCodFilStr + ", excluída!";

se (VSEstado <> "EXCLUINDO") {
vMsg = vMsg + ENTER +
"Valores antigos X novos:" + ENTER;
Definir Cursor xCur085HCL;
xCur085HCL.SQL "SELECT VLRLIM, CODCPG
FROM E085HCL
WHERE
CODCLI = :VSCodCli AND
CODEMP = :VSCodEmp AND
CODFIL = :VSCodFil";
xCur085HCL.AbrirCursor();
IntParaStr(VSVlrLim, vStrAux1);
IntParaStr(xCur085HCL.VlrLim, vStrAux2);
vMsg = vMsg + "VlrLim: " + vStrAux1 + " - " + vStrAux2 + ENTER;
vMsg = vMsg + "CodCpg: " + VSCodCpg + " - " + xCur085HCL.CodCpg;
xCur085HCL.FecharCursor();
}

Mensagem(Retorna, vMsg);

Variáveis Disponibilizadas:

Nome Tipo Observações Retorna Valor
VSEstado ALFA Indicativo da operação sendo realizada ("INSERINDO", "ALTERANDO" ou "EXCLUINDO") N
VSCodCli NÚMERO Código do cliente (chave das definições/histórico de cliente) N
VSCodEmp NÚMERO Código da empresa (chave das definições/histórico de cliente) N
VSCodFil NÚMERO Código da filial (chave das definições/histórico de cliente) N

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ê?