Identificador de Regra

VEN-120NUMEM01

Módulo: VEN - Vendas.

Finalidade: É executado ao gravar a linha na grade de embalagens. São passados ao mesmo os dados do pedido (empresa, filial e número) e deve ser retornado um valor alfanumérico, conforme alguma lógica implementada para gerar uma numeração. O valor retornado não deve passar de 30 caracteres, pois é o tamanho máximo do campo de número da embalagem. Caso seja retornado um valor com mais de 30 caracteres, será gerada uma mensagem de erro. Não é obrigatório retornar algum dado, sendo que dessa forma o número da embalagem não será alterado e também o identificador só será executado se não for digitado um valor no número da embalagem, na grade.

Características: É executado somente se não estiverem sendo utilizados ou o identificador VEN-120CTEMB01 ou o parâmetro "Analisa/gera embalagens no fechamento do pedido" dos parâmetros de filiais para vendas.

Tela: PedidosFormação de Embalagens

Transação: Não se aplica.

Regra:

Definir Numero VSCodEmp;
Definir Numero VSCodFil;
Definir Numero VSNumPed;
Definir Alfa VSNumEmb;

Definir Alfa VAuxNumEmb;
Definir Alfa VCamBasEmb;
Definir Numero VUltNumEmb;
Definir Numero VSNaoAchou;

VCamBasEmb = "NUMEMBPED";

Definir Cursor Cur_E078Ult;
Cur_E078ULT.Sql "Select UltNum from E078Ult where CodEmp = :VSCodEmp and CodFil = :VSCodFil and CamBas = :VCamBasEmb";
Cur_E078ULT.AbrirCursor();

Se(Cur_E078ULT.Achou)
Inicio
VUltNumEmb = Cur_E078Ult.UltNum + 1;
VSNaoAchou = 0;
Fim
Senao
Inicio
VUltNumEmb = 1;
VSNaoAchou = 1;
Fim;

Cur_E078ULT.FecharCursor();

VSNumEmb = "";
IntParaAlfa(VSCodEmp, VAuxNumEmb);
VSNumEmb = VSNumEmb + VAuxNumEmb;
IntParaAlfa(VSCodFil, VAuxNumEmb);
VSNumEmb = VSNumEmb + VAuxNumEmb;
IntParaAlfa(VSNumPed, VAuxNumEmb);
VSNumEmb = VSNumEmb + VAuxNumEmb;
IntParaAlfa(VUltNumEmb, VAuxNumEmb);
VSNumEmb = VSNumEmb + VAuxNumEmb;

se (VSNaoAchou = 0)
inicio
ExecSql "update E078ULT set UltNum = :VUltNumEmb where CodEmp = :VSCodEmp and CodFil = :VSCodFil and CamBas = :VCamBasEmb";
fim;
senao
inicio
ExecSql "insert into E078ULT (CodEmp,CodFil,CamBas,UltNum) values (:VSCodEmp,:VSCodFil,:VCamBasEmb,:VUltNumEmb)";
fim;

Variáveis Disponibilizadas:

Nome Tipo Observações Retorna Valor
VSCODEMP NÚMERO Código da empresa do pedido N
VSCODFIL NÚMERO Código da filial do pedido N
VSNUMPED NÚMERO Número do pedido onde estão sendo formadas as embalagens N
VSNUMEMB ALFA Número da embalagem a ser atribuído à embalagem (máximo 30 caracteres) S

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