Identificador de Regra

GER-095ORMAO01

Módulo: GER - Gerais.

Finalidade: Disponibilizar um ponto onde possam ser feitos processamentos específicos após operações realizadas sobre um registro de endereço de origem das mercadorias de fornecedor (E095ORM). Chamado ao incluir, alterar ou excluir um fornecedor nas telas em que foi implementado.

Características: Para a regra são passados todos os campos da tabela "E095ORM" com os dados antigos do endereço de origem das mercadorias, 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" + (Ex.: para o campo "SitOrm" a variável se chama "VSSitOrm"). 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 antes da gravação das operações no base de dados, logo qualquer erro que ocorra na regra cancelará a operação.

Tela: F095ORM

Transação: Não se aplica.

Regra:

Definir Alfa VSEstado;
Definir Numero VSCodFor;
Definir Numero VSSeqOrm;
Definir Alfa VSSitOrm;
Definir Alfa VSEndOrm;
Definir Alfa VSCidOrm;
Definir Numero VSCepOrm;

Definir Alfa ENTER;
CaracterParaAlfa(10, ENTER);

Definir Alfa vCodForStr;
Definir Alfa vSeqOrmStr;
Definir Alfa vMsg;
Definir Alfa vStrAux1;
Definir Alfa vStrAux2;
IntParaAlfa(VSCodFor, vCodForStr);
IntParaAlfa(VSSeqOrm, vSeqOrmStr);

se (VSEstado = "INSERINDO")
vMsg = "Endereço de origem da mercadoria " + vSeqOrmStr + " criado para o fornecedor " + vCodForStr + "!";
senao
se (VSEstado = "ALTERANDO")
vMsg = "Endereço de origem da mercadoria " + vSeqOrmStr + " alterado no fornecedor " + vCodForStr + "!";
senao
se (VSEstado = "EXCLUINDO")
vMsg = "Endereço de origem da mercadoria " + vSeqOrmStr + " excluído do fornecedor " + vCodForStr + "!";

se (VSEstado <> "EXCLUINDO") {
vMsg = vMsg + ENTER +
"Valores antigos X novos:" + ENTER;
Definir Cursor xCur095ORM;
xCur095ORM.SQL "SELECT SITORM, ENDORM, CIDORM, CEPORM \
FROM E095ORM \
WHERE \
CODFOR = :VSCodFor AND \
SEQORM = :VSSeqOrm";
xCur095ORM.AbrirCursor();
vMsg = vMsg + "SitOrm: " + VSSitOrm + " - " + xCur095ORM.SitOrm + ENTER;
vMsg = vMsg + "EndOrm: " + VSEndOrm + " - " + xCur095ORM.EndOrm + ENTER;
vMsg = vMsg + "CidOrm: " + VSCidOrm + " - " + xCur095ORM.CidOrm + ENTER;
IntParaStr(VSCepOrm, vStrAux1);
IntParaStr(xCur095ORM.CepOrm, vStrAux2);
vMsg = vMsg + "CepOrm: " + vStrAux1 + " - " + vStrAux2;
xCur095ORM.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 endereço) N
VSSeqOrm NÚMERO Sequência do endereço (chave do endereç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ê?