Identificador de Regra
GER-075CPRAO01
Módulo: GER - Gerais.
Finalidade: Disponibilizar um ponto onde possam ser feitos processamentos específicos após operações realizadas sobre um registro de característica de produto (E075CPR).
Chamado ao incluir, alterar ou excluir uma característica de produto nas telas em que foi implementado.
Características: Para a regra são passados todos os campos da tabela "E075CPR" com os dados antigos da característica, 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 através de variáveis que seguem a nomenclatura "VS" +
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 de característica está sendo inserido;
b) "ALTERANDO": indica que o registro de característica está sendo alterado;
c) "EXCLUINDO": indica que o registro de característica está sendo excluído;
Este identificador é chamado após a operação, porém antes da efetivação das operações no base de dados, logo qualquer erro que ocorra na regra cancelará a operação.
Tela: F075CPR, F075LCA, F075GCP, F075DPO, F075DPE
Transação: Não se aplica.
Regra:
Definir Alfa VSEstado;
Definir Numero VSCodEmp;
Definir Alfa VSCodPro;
Definir Alfa VSCodCte;
Definir Numero VSSeqCcp;
Definir Alfa VSDesLiv;
Definir Alfa VSObsLiv;
Definir Alfa ENTER;
CaracterParaAlfa(10, ENTER);
Definir Alfa vCodEmp;
Definir Alfa vSeqCcp;
Definir Alfa vMsg;
Definir Alfa VStrAux1;
Definir Alfa VStrAux2;
IntParaAlfa(VSCodEmp, vCodEmp);
IntParaAlfa(VSSeqCcp, vSeqCcp);
se (VSEstado = "INSERINDO")
vMsg = "Produto '" + VSCodPro + "', característica '" + VSCodCte + "', seqüência " + vSeqCcp + " criada para a empresa " + vCodEmp + "!";
senao
se (VSEstado = "ALTERANDO")
vMsg = "Produto '" + VSCodPro + "', característica '" + VSCodCte + "', seqüência " + vSeqCcp + " alterada na empresa " + vCodEmp + "!";
senao
se (VSEstado = "EXCLUINDO")
vMsg = "Produto '" + VSCodPro + "', característica '" + VSCodCte + "', seqüência " + vSeqCcp + " excluída da empresa " + vCodEmp + "!";
se (VSEstado <> "EXCLUINDO") {
vMsg = vMsg + ENTER +
"Valores antigos X novos:" + ENTER;
Definir Cursor xCur075Cpr;
xCur075Cpr.SQL "SELECT DESLIV, OBSLIV
FROM E075CPR
WHERE
CODEMP = :VSCodEmp AND
CODPRO = :VSCodPro AND
CODCTE = :VSCodCte AND
SEQCCP = :VSSeqCcp";
xCur075Cpr.AbrirCursor();
vMsg = vMsg + "DesLiv: " + VSDesLiv + " - " + xCur075Cpr.DesLiv + ENTER;
vMsg = vMsg + "ObsLiv: " + VSObsLiv + " - " + xCur075Cpr.ObsLiv;
xCur075Cpr.FecharCursor();
}
Mensagem(Retorna, vMsg);
Variáveis Disponibilizadas:
Nome | Tipo | Observações | Retorna Valor |
---|---|---|---|
VSEstado | ALFA | Indicativo da operação sendo realizada sobre a característica ("INSERINDO", "ALTERANDO" ou "EXCLUINDO") | N |
VSCodEmp | NÚMERO | Código da empresa (chave da característica) | N |
VSCodPro | ALFA | Código do produto (chave da característica) | N |
VSCodCte | ALFA | Código da característica (chave da característica) | N |
VSSeqCcp | NÚMERO | Número da sequência da característica (chave da característica) | 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.