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.:
- Permitir que a descrição dos produtos seja personalizada para exibição na tela;
- 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:
- A partir do código de barras lido carregar os dados do cabeçalho da tela;
- 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:
- As variáveis a seguir são utilizadas apenas quando a opção de movimento na tela F909MOA for "Finalização de OPs por Embalagem": VSTipLei, VSCodOri, VNNumOrp, VNCodEtg, VNSeqRot, VNNumCad, VSCodCre, VSMostrar e VSEmbLid;
- As variáveis VSLotCmp, VNUsuRev, FCodTns e FCodTne está disponíveis à partir da versão 5.6.1.1;
- As variáveis VSDefLot e VSMossAut está disponíveis à partir da versão 5.6.2.1;
- A variável VSProQtd está disponível a partir da versão 5.6.3.10;
- Quando as variáveis VSCodOri, VNNumOrp, VNCodEtg, VNSeqRot, VNNumCad, VNTurTrb, VSLotCmp, VNUsuRev, VSCodTns e VSCodTne estiverem somente declaradas, não serão atribuídos os respectivos valores para os filtros da F909MOA.
- A variável ChaNNumOpGrade está disponível à partir da versão 5.8.7.50. Esta variável é utilizada para verificar se a O.P. que está sendo lida no código de barras já existe na grade.
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.
Ao ler o código de barra pela primeira vez, parametrizar a variável VSMostrar = "S" para mostrar todos os produtos da OP na tela.
Ao ler os próximos códigos de barra, se o número da OP lido for o mesmo da variável ChaNNumOpGrade, parametrizar a variável VSMostrar = "N", assim não irá mostrar novamente os dados da OP, iria apenas acumular a quantidade lida no respectivo produto.
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.