Identificador de Regra

GER-075PPCAO01

Módulo: GER - Gerais.

Finalidade: Disponibilizar um ponto onde possam ser feitos processamentos específicos após operações realizadas sobre um registro de ligação de produto/derivação com cliente (E075PPC).
O identificador é chamado ao incluir, alterar ou excluir uma ligação nas telas em que foi implementado.

Características: Para a regra são passados todos os campos da tabela "E075PPC" com os dados antigos da ligação, ou seja, dados de antes da realização da operação.
Tais dados servem, principalmente, para verificar as mudanças ocorridas.

Estes dados são passados através de variáveis que seguem a nomenclatura "VS" + (Ex.: para o campo "UniMed" a variável se chama "VSUniMed").
A tipagem das variáveis é análoga a dos campos na tabela.
Nota-se que em uma inserção não existem dados antigos do registro, logo estes campos possuem valor nulo.

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 ligação está sendo inserido;
b) "ALTERANDO": indica que o registro de ligação está sendo alterado;
c) "EXCLUINDO": indica que o registro de ligação está sendo excluído;

Este identificador é chamado após a realização das operações no base de dados, porém dentro de transação, logo qualquer erro que ocorra na regra cancelará a operação.

Tela: F075PPC, F075PCA, F075PGA

Transação: Não se aplica.

Regra:

Definir Alfa VSEstado;
Definir Numero VSCodEmp;
Definir Alfa VSCodPro;
Definir Alfa VSCodDer;
Definir Numero VSCodCli;
Definir Numero VSPerIpi;
Definir Alfa VSUniMed;
Definir Alfa VSTemIcm;

Definir Alfa ENTER;
CaracterParaAlfa(10, ENTER);

Definir Alfa vCodEmp;
Definir Alfa vCodCli;
Definir Alfa vMsg;
Definir Alfa VStrAux1;
Definir Alfa VStrAux2;

IntParaAlfa(VSCodEmp, vCodEmp);
IntParaAlfa(VSCodCli, vCodCli);
se (VSEstado = "INSERINDO")
vMsg = "Ligação do produto '" + VSCodPro + "', derivação '" + VSCodDer + "' com o cliente " + vCodCli + " criada para empresa " + vCodEmp + "!";
senao
se (VSEstado = "ALTERANDO")
vMsg = "Ligação do produto '" + VSCodPro + "', derivação '" + VSCodDer + "' com o cliente " + vCodCli + " alterada na empresa " + vCodEmp + "!";
senao
se (VSEstado = "EXCLUINDO")
vMsg = "Ligação do produto '" + VSCodPro + "', derivação '" + VSCodDer + "' com o cliente " + vCodCli + " excluída da empresa " + vCodEmp + "!";

se (VSEstado <> "EXCLUINDO") {
vMsg = vMsg + ENTER +
"Valores antigos X novos:" + ENTER;
Definir Cursor xCur075Ppc;
xCur075Ppc.SQL "SELECT PERIPI, UNIMED, TEMICM
FROM E075PPC
WHERE
CODEMP = :VSCodEmp AND
CODPRO = :VSCodPro AND
CODDER = :VSCodDer AND
CODCLI = :VSCodCli";
xCur075Ppc.AbrirCursor();
IntParaAlfa(VSPerIpi, vStrAux1);
IntParaAlfa(xCur075Ppc.PerIpi, vStrAux2);
vMsg = vMsg + "PerIpi: " + vStrAux1 + " - " + vStrAux2 + ENTER;
vMsg = vMsg + "UniMed: " + VSUniMed + " - " + xCur075Ppc.UniMed + ENTER;
vMsg = vMsg + "TemIcm: " + VSTemIcm + " - " + xCur075Ppc.TemIcm;
xCur075Ppc.FecharCursor();
}

Mensagem(Retorna, vMsg);

Variáveis Disponibilizadas:

Nome Tipo Observações Retorna Valor
VSEstado ALFA Indicativo da operação sendo realizada sobre a ligação ("INSERINDO", "ALTERANDO" ou "EXCLUINDO") N
VSCodEmp NÚMERO Código da empresa (chave da ligação) N
VSCodPro ALFA Código do produto (chave da ligação) N
VSCodDer ALFA Código da derivação (chave da ligação) N
VSCodCli NÚMERO Código do cliente (chave da ligação) 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ê?