Identificador de Regra

GER-000ICPGR01

Módulo: GER - Gerais.

Finalidade: Informar qual é o código para a nova proporcionalidade, além de uma descrição da mesma. Ambas as informações são então gravadas no cadastro de proporcionalidade, automaticamente pelo sistema. Executado quando o sistema recebeu um item de pedido em grade cujas quantidades não se encaixam em nenhuma proporcionalidade existente, e assim precisa gerar uma nova proporcionalidade.

Características: Após ser executada a regra são feitas as seguintes consistências com os retornos das variáveis:

  1. Tamanho do código (não pode ser maior que 5);
  2. Se o código informado já não existe;
  3. Se foi definida a descrição;
  4. Se a descrição ultrapassa 40 posições.

A rotina de geração automática de grades ainda verifica se o somatório da quantidades das proporcionalidades a serem cadastradas não é maior que o máximo da faixa e se esse valor é múltiplo da quantidade máxima da faixa. O sistema ainda repassa para a regra se a faixa é sólida (ou seja, existe só quantidade para uma derivação na grade). A variável "VSLstDer" informa a lista de quantidades na grade para as derivações, no formato "quantidade1 quantidade2 quantidade3...".

Tela: F120GRA

Transação: Não se aplica.

Regra:

/*
Exemplo de utilização do identificador "GER", "000ICPGR01".
Este exemplo utiliza a tabela de sistema de últimos números para montar o código de proporcionalidade, sendo que cada faixa possui sua numeração individual de proporcionalidades
*/

Definir Alfa VSCodPgr;
Definir Alfa VSDesPgr;
Definir Alfa VSCodFxa;
Definir Alfa VSCamBas;
Definir Numero VSTotPgr;
Definir Alfa VSIndSol;
Definir Alfa VSLstDer;
Definir Numero VSCodEmp;

Definir Numero VUltNum;
Definir Alfa VTotPgr;
Definir Cursor Cur_E078Ult;
Definir Alfa VIniChr;

inicio

VIniChr = "F";
VSCamBas = "CODFXA";
se (VSCodFxa = "FAIXA DE ESPAÇO 00")
inicio
VSCamBas = "CODFX1";
VIniChr = "E1";
fim;

se (VSCodFxa = "FAIXA DE ESPAÇO 01")
inicio
VSCamBas = "CODFX2";
VIniChr = "E2";
fim;

Cur_E078ULT.Sql "Select UltNum from E078Ult where CodEmp = :VSCodEmp and CodFil = 0 and CamBas = :VSCamBas";

Cur_E078ULT.AbrirCursor();

Se(Cur_E078ULT.Achou)
Inicio
VUltNum = Cur_E078Ult.UltNum + 1;
Fim;

Cur_E078ULT.FecharCursor();

IntParaAlfa(VUltNum, VSCodPgr);
IntParaAlfa(VSTotPgr, VTotPgr);

VSCodPgr = VIniChr + VSCodPgr;
VSDesPgr = "Aut: " + VSLstDer + " - " + VSIndSol + "- " + VTotPgr;

ExecSql "Update E078ULT set UltNum = :VUltNum where CodEmp = :VSCodEmp and CodFil = 0 and CamBas = :VSCamBas";

fim;

Variáveis Disponibilizadas:

Nome Tipo Observações Retorna Valor
VSCodEmp NÚMERO Código da empresa do item do pedido N
VSCodPro ALFA Código do produto do item do pedido N
VSCodFxa ALFA Código da faixa de grade do item do pedido N
VSIndSol ALFA Indicativo se é grade sólida (só uma derivação com quantidade informada) N
VSTotPgr NÚMERO Total (soma) da proporcionalidade da grade N
VSDesPgr ALFA Descrição da proporcionalidade S
VSCodPgr ALFA Código da proporcionalidade S
VSLstDer ALFA

Lista de derivações no formato "quantidade1 quantidade2 quantidade3"

N
VSDerQtd ALFA

Lista de derivações no formato "derivação1 = quantidade1, derivação2 = quantidade2, derivação3 = quantidade3"

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