Identificador de Regra

GER-095FORAO01

Módulo: GER - Gerais.

Finalidade: Disponibilizar um ponto onde possam ser feitos processamentos específicos após operações realizadas sobre um registro de fornecedor (E095FOR). O identificador é chamado ao incluir, alterar ou excluir um fornecedor.

Características: Para a regra são passados todos os campos da tabela "E095FOR" com os dados antigos do fornecedor, 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 "SitFor" a variável se chama "VSSitFor"). 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;
c) "EXCLUINDO": indica que o registro está sendo excluído;

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

Nota

Este identificador pode ser utilizado para realização de consistências nas rotinas de inclusão e alteração de registros de clientes e fornecedores ligados entre si, ou seja, quando é inserido ou alterado um cadastro de cliente que está vinculado a um fornecedor, assim como quando é inserido ou alterado um cadastro de fornecedor vinculado a um cliente, o identificador será executado, pois a tabela Cadastros - Clientes (E085CLI) ou a tabela Cadastros - Fornecedores - Cadastros (E095FOR) está sendo alterada através do registro do cliente/fornecedor ou do fornecedor/cliente. A diferença é que este identificador recebe apenas os dados originais, antes da alteração dos respectivos cadastros. É necessário, então, a construção de um cursor para acessar os dados atualizados do cadastro, pois o identificador é executado após a gravação dos registros.

Tela: F095CAD, F085CAD, F073TRA, F073MOT

Transação: Não se aplica.

Regra:

Definir Alfa VSEstado;
Definir Numero VSCodFor;
Definir Alfa VSSitFor;
Definir Alfa VSNomFor;
Definir Alfa VSTipFor;
Definir Numero VSCepFor;

Definir Alfa ENTER;
CaracterParaAlfa(10, ENTER);

Definir Alfa vCodForStr;
Definir Alfa vMsg;
Definir Alfa vStrAux1;
Definir Alfa vStrAux2;
IntParaStr(VSCodFor, vCodForStr);

se (VSEstado = "INSERINDO")
vMsg = "Fornecedor " + vCodForStr + " criado!";
senao
se (VSEstado = "ALTERANDO")
vMsg = "Fornecedor " + vCodForStr + " alterado!";
senao
se (VSEstado = "EXCLUINDO")
vMsg = "Fornecedor " + vCodForStr + " excluído!";

se (VSEstado <> "EXCLUINDO") {
vMsg = vMsg + ENTER +
"Valores antigos X novos:" + ENTER;
Definir Cursor xCur095FOR;
xCur095FOR.SQL "SELECT SITFOR, NOMFOR, TIPFOR, CEPFOR
FROM E095FOR
WHERE
CODFOR = :VSCodFor";
xCur095FOR.AbrirCursor();
vMsg = vMsg + "SitFor: " + VSSitFor + " - " + xCur095FOR.SitFor + ENTER;
vMsg = vMsg + "NomFor: " + VSNomFor + " - " + xCur095FOR.NomFor + ENTER;
vMsg = vMsg + "TipFor: " + VSTipFor + " - " + xCur095FOR.TipFor + ENTER;
IntParaStr(VSCepFor, vStrAux1);
IntParaStr(xCur095FOR.CepFor, vStrAux2);
vMsg = vMsg + "CepFor: " + vStrAux1 + " - " + vStrAux2;
xCur095FOR.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
VSCodFor NÚMERO Código do fornecedor (chave do fornecedor) 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ê?