Identificador de Regra

CHA-909MOAPD01

Módulo: CHA - Chão de Fábrica.

Finalidade:

Este identificador possui duas finalidades na tela F909MOA, quando a opção do movimento for com O.P.:

  1. Permitir que a descrição dos produtos seja personalizada para exibição na tela;
  2. Definir quais os códigos do produto e derivação relacionados ao código de barras lido.

A partir da versão 5.3.2.6 (25/05/2007) foi disponibilizada uma nova opção de movimento na tela F909MOA, chamada "Finalização de OPs por embalagem", sendo que esta opção só é habilitada para clientes que utilizam o identificador GER-000EMBOP01. Quando for utilizada essa opção de movimento, este identificador possui duas funções distintas:

  1. A partir do código de barras lido carregar os dados do cabeçalho da tela;
  2. Definir qual o código da embalagem relacionado ao código de barras que foi lido.

A partir da versão 5.5.1.9e (24/10/2008) é possível utilizar esta regra para carregar os dados do cabeçalho, mostrar e processar automaticamente o movimento utilizando a opção "Com O.P. Cód. Barras".

 

Características:

O comportamento padrão da tela quando a variável VSMostrar = "S" é mostrar os produtos da OP novamente a cada leitura, pois o usuário poderá ler duas vezes o mesmo código de barras por engano.

A variável ChaNNumOpGrade pode ser aplicada na seguinte situação: Quando se deseja acumular a quantidade lida do produto da OP para depois o usuário processar uma única vez, assim não seria necessário processar a cada leitura de código de barra.

Tela: Movimentos automáticos (F909MOA)

Transação: Não se aplica.

Regra:

Deve estar ligado a uma regra.

-> Exemplo de regra para ser utilizado com a opção de movimento "Com OP Cód. Barras" (apenas para ler os produtos após ter mostrado os dados):

Definir Alfa VSCodPro;
Definir Alfa VSCodDer;
Definir Alfa VSProLid;
Definir Alfa VSDerLid;

Definir Alfa VSDesPro;
Definir Alfa VSCodBar;
Definir Alfa VSTipExe;
Definir Cursor Cur_E075Der;

Se (VSTipExe = "D") @ buscar a descrição do produto e da derivação @
inicio
VSDesPro = "Produto: " + VSCodPro + " / Deriv.: " + VSCodDer;
fim;
Senao @ busca o código do produto e da derivação @
inicio
Cur_E075Der.Sql "SELECT * FROM E075DER WHERE CODBAR = :VSCodBar";
Cur_E075Der.AbrirCursor();
Se (Cur_E075Der.Achou)
inicio
VSProLid = Cur_E075Der.CodPro;
VSDerLid = Cur_E075Der.CodDer;
fim;
Senao
GeraLog("Código de barras inválido!");
fim;

-> Exemplo de regra para ser utilizado com a opção de movimento "Com OP Cód. Barras" (ler o código de barras, mostrar e processar os dados automaticamente):

Definir Alfa VSTipExe;
Definir Alfa VSCodBar;
Definir Alfa VSProLid;
Definir Alfa VSDerLid;
Definir Alfa VSMostrar;
Definir Alfa VSProcessar;
Definir Alfa VSCodOri;
Definir Numero VNNumOrp;
Definir Numero VNCodEtg;
Definir Numero VNSeqRot;
Definir Numero VNNumCad;
Definir Numero VNTurTrb;
Definir Alfa VSTipMov;


Definir Alfa VSUsaCom;
Definir Alfa VSPosBar;

Se (VSTipExe = "C")
inicio
VSUsaCom = "N";
VSPosBar = "S"; @ Posicionar automaticamente no código de barras ao entrar na tela @
fim;
Senao
Se (VSTipExe = "B")
inicio
VSMostrar = "S"; @ mostrar os dados na tela @
VSProcessar = "S"; @ processar os dados @
VSProLid = "2101";
VSDerLid = "1";
VSCodOri = "20";
VNNumOrp = 733;
VNCodEtg = 211;
VNSeqRot = 10;
VNNumCad = 11;
VNQtdRe1 = 2;
VNQtdRe2 = 1;
VNQtdRfg = 9;
fim;


-> Exemplo de regra para ser utilizado com a opção de movimento "Finaliz. OP por Embalagem":

Definir Alfa VSTipExe;
Definir Alfa VSUsaCom;

Definir Alfa VSCodBar;
Definir Alfa VSTipLei;
Definir Alfa VSCodOri;
Definir Numero VNNumOrp;
Definir Numero VNCodEtg;
Definir Numero VNSeqRot;
Definir Numero VNNumCad;
Definir Alfa VSCodCre;
Definir Alfa VSCodEqp;
Definir Alfa VSMostrar;
Definir Alfa VSEmbLid;

Definir Cursor Cur_E120Emb;
Definir Cursor Cur_E725Cre;

Se (VSTipExe = "C") @ p/ definir se usa leitor na porta COM @
VSUsaCom = "N";


Se (VSTipExe = "B") @ leitura de um código de barras @
inicio
@Verifica se o código lido é de um centro de recursos @
Cur_E725Cre.SQL "SELECT CODEMP FROM E725CRE WHERE CODEMP = 1 AND CODCRE = :VSCodBar";
Cur_E725Cre.AbrirCursor();
Se (Cur_E725Cre.Achou) @ é um centro de recursos @
inicio
VSTipLei = "OP";
VSCodOri = "";
VNNumOrp = 0;
VNCodEtg = 0;
VNSeqRot = 0;
VNNumCad = 0;
VSCodCre = VSCodBar;
VSCodEqp = "E02";
fim;
Senao
inicio
@ checa se o código lido é de uma embalagem @
Cur_E120Emb.SQL "SELECT * FROM E120EMB WHERE CODEMP = 1 AND NUMEMB = :VSCodBar";
Cur_E120Emb.AbrirCursor();
Se (Cur_E120Emb.Achou)
inicio
@ é o código de uma embalagem @
VSTipLei = "EMB";
VSEmbLid = VSCodBar;
fim;
Senao
inicio
@ se não é código de um C.R. nem de uma embalagem, é o código com os dados da OP @
VSTipLei = "OP"; @ indica pro ERP que foi lido um código com os dados da OP @
VSCodOri = "ORI";
VNNumOrp = 999;
VNCodEtg = 90;
VNSeqRot = 10;
VNNumCad = 1;
VSCodCre = ""; @ limpa esta variável para não sobreescrever o que está na tela @
VSMostrar = "S"; @ p/ mostrar os dados automaticamente @
fim;
fim;
fim;

Variáveis Disponibilizadas:

Nome Tipo Observações Retorna Valor
VSTipExe ALFA Tipo de execução ("D" - Buscar descrição / "B" - Interpretar código de barras / "C" - Consultar Se usa leitor serial ou teclado / "E" - Executar leitura de cartões (F900Dlc) / "M" - Executar refresh no clique de Mostrar) N
VSCodPro ALFA Código do produto/serviço que está sendo adicionado na grade da tela (quando VSTipExe = D) N
VSCodDer ALFA Código da derivação que está sendo adicionada na grade da tela (quando VSTipExe = D) N
VSCodBar ALFA Código de barras lido (quando VSTipExe = B) N
VSUsaCom ALFA Indicativo se usa porta de comunicação ou não (Sim = "S" / Não = "N" => casos que a leitora de barras é pelo teclado) N
VSLotCmp ALFA Lote do Componente N
VNUsuRev NÚMERO Código do Revisor N
VSCodTns ALFA Código de Transação de Saída N
VSCodTne ALFA Código de Transação de Entrada N
VSCodEqp ALFA Código do Equipamento (VSTipExe = B e empresa configurada para utilizar parada de equipamento, ou seja, E070EQP.IndPre = 'S') N
VSDesPro ALFA Descrição personalizada do produto/serviço e derivação que está sendo adicionado na grade da tela (quando VSTipExe = D) S
VSProLid ALFA Produto/Serviço relacionado ao código de barras lido (quando VSTipExe = B) S
VSDerLid ALFA Derivação relacionada ao código de barras lido (quando VSTipExe = B) S
VSTipLei ALFA Indica se o código de barras lido é relativo ao cabeçalho da tela ("OP") ou a uma embalagem ("EMB") - VSTipExe = B e opção movimento = "Finaliz. OP por embalagem". S
VSCodOri ALFA Código da origem (VSTipExe = B) S
VNNumOrp NÚMERO Número da OP (VSTipExe = B) S
VNCodEtg NÚMERO Estágio do movimento (VSTipExe = B) S
VNSeqRot NÚMERO Seqüência do roteiro (VSTipExe = B) S
VNNumCad NÚMERO Código do operador (VSTipExe = B) S
VSCodCre ALFA Centro de recurso (VSTipExe = B) S
VSMostrar ALFA Indica se deve mostrar automaticamente ou não (VSTipExe = B). O comportamento da tela quando a variável VSMostrar = "S" é mostrar os produtos da OP a cada leitura de código de barra, sobrepondo os dados existentes na tela. S
VSEmbLid ALFA Código da embalagem lida (VSTipExe = B e opção movimento = "Finaliz. OP por embalagem") S
VSProcessar ALFA Indica se deve processar automaticamente (VSTipExe = B e opção movimento = "Com O.P. Cód Barras") S
VNTurTrb NÚMERO Código do turno de trabalho (VSTipExe = B) S
VSTipMov ALFA Tipo do movimento ("I": Iníco; "F": Fim) (VSTipExe = "B" e opção movimento = "Com O.P./O.S. Cód. Barras") S
VNQtdRe1 NÚMERO Quantidade de 1ª para o movimento (VSTipExe = B). Caso informado quantidade igual a zero, o sistema assumirá a quantidade como 1. S
VNQtdRe2 NÚMERO Quantidade de 2ª para o movimento (VSTipExe = B) S
VNQtdRe3 NÚMERO Quantidade de 3ª para o movimento (VSTipExe = B) S
VNQtdRfg NÚMERO Quantidade de refugo para o movimento (VSTipExe = B) S
VSPosBar ALFA Indicar se o cursor deverá ser posicionado automaticamente no campo do código de barras (S - Sim / N - Não) (VSTipExe = C) S
VSDefLot ALFA Executar tela F909Dlc, definição de lotes/leitura de cartões (VSTipExe = E) S
VSMosAut ALFA Atualizar a rotina do botão mostrar, refresh. (VSTipExe = M) S
VSProQtd ALFA Indica se deve marcar/desmarcar a opção "Propor Qtde 1ª Qual" do cabeçalho da tela, onde vazio (ou variável não declarada) indica não alterar a marcação, 'S' indica marcar e 'N' indica desmarcar (quando VSTipExe = 'B' e VSMostrar = 'S'). S
ChaNNumOpGrade NÚMERO Número da OP apresentado na grade e que já foi lido no código de barras 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ê?