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:
- Tamanho do código (não pode ser maior que 5);
- Se o código informado já não existe;
- Se foi definida a descrição;
- 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" Exemplo:
VSLstDer: 0 0 0 6 2 |
N |
VSDerQtd | ALFA |
Lista de derivações no formato "derivação1 = quantidade1, derivação2 = quantidade2, derivação3 = quantidade3" Exemplo:
VSDerQtd: P = 0, M = 0, G = 0, GG = 6, XG = 2 |
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.