Identificador de Regra

SGQ-900INPOP01

Módulo: SGQ - Sistema de Gestão da Qualidade.

Finalidade: Retorna se o movimento da ordem de produção deve ser mostrado na tela F900CIP - Consulta de movimentos de O.P. com Inspeção pendente, para ser inspecionado.
O padrão é inspecionar, mas pela variável de retorno pode indicar que não deve mostrar o movimento para inspecionar. A dificuldade de saber quando deve mostrar o movimento para inspeção em determinados cenários, é porque cada empresa tem seu processo de inspeção, que pode ocorrer inclusive após o fechamento da OP, assim, através do identificador de regra, o usuário poderá analisar se deve mostrar os movimentos para inspeção.

Características: O identificador de regra é executado ao realizar a consulta dos movimentos da ordem de produção pendentes de inspeção na tela F900CIP.

Esta consulta seleciona os registros com base na tabela E900EOQ, filtrando os movimentos:

Na regra é passado as variáveis para acessar os dados da tabela de movimentos da ordem de produção (E900EOQ), quando o campo E900eoq.NumEpi for igual a zero, indica que o movimento ainda não teve a inspeção iniciada.

Tabelas para auxílio na montagem da regra:

Cenário: Por exemplo, quando a ordem de produção está finalizada e já teve movimento com inspeção realizada (E900EOQ.NumEpi > 0) em uma sequência de roteiro, e após isso, na ligação Plano de Inspeção com o Roteiro de Produção, houver a troca desta sequência por outra sequência do roteiro, o movimento desta nova sequência ligada ao plano será mostrado como pendente de inspeção na tela F900CIP (pois o campo E900EOQ.NumEpi está igual a 0).

Através de uma regra, o usuário pode indicar (SgqAInpMop = 'N') que esta nova sequência não deve ser mostrada como pendente de inspeção, pois a ordem de produção já teve uma inspeção realizada.

Tela: F900CIP - Consulta de movimentos de O.P. com Inspeção pendente (SGQ).

Regra:

Definir numero SgqNCodEmp;
Definir alfa SgqACodOri;
Definir numero SgqNNumOrp;
Definir numero SgqNCodEtg;
Definir numero SgqNSeqEoq;
Definir alfa SgqAInpMop;

Definir Cursor Cur_E900EOQ;
Definir Cursor Cur_OPTemInspecao;

SgqAInpMop = 'S'; @ padrão é sempre inspecionar o movimento @

Cur_E900EOQ.Sql "SELECT E900EOQ.NUMEPI, E900COP.SITORP FROM E900EOQ,E900COP WHERE E900EOQ.CODEMP = :SgqNCodEmp AND E900EOQ.CODORI = :SgqACodOri \
AND E900EOQ.NUMORP = :SgqNNumOrp AND E900EOQ.CODETG = :SgqNCodEtg AND E900EOQ.SEQEOQ = :SgqNSeqEoq \
AND E900COP.CODEMP = E900EOQ.CODEMP AND E900COP.CODORI = E900EOQ.CODORI AND E900COP.NUMORP = E900EOQ.NUMORP";

Cur_OPTemInspecao.Sql "SELECT E900EOQ.NUMEPI FROM E900EOQ WHERE E900EOQ.CODEMP = :SgqNCodEmp AND E900EOQ.CODORI = :SgqACodOri AND E900EOQ.NUMORP = :SgqNNumOrp \
AND E900EOQ.NUMEPI > 0";

Cur_E900EOQ.AbrirCursor();


Se (Cur_E900EOQ.Achou)
Inicio
  @ OP finalizada e o movimento não tem inspeção iniciada (NumEpi = 0) @
  Se ((Cur_E900EOQ.SitOrp = 'F') e (Cur_E900EOQ.NumEpi = 0))
  Inicio
    Cur_OPTemInspecao.AbrirCursor();
    @ OP já teve alguma outra inspeção realizada @
    Se (Cur_OPTemInspecao.Achou)
      SgqAInpMop = 'N'; @ Não deve inspecionar o movimento se a OP já está finalizada e se a OP já teve alguma outra inspeção realizada @
      Cur_OPTemInspecao.FecharCursor();
  Fim;
Fim;
Cur_E900EOQ.FecharCursor();

Variáveis Disponibilizadas:

Nome Tipo Observações Retorna Valor
SgqNCodEmp Número Código da empresa N
SgqACodOri Alfa Código da origem N
SgqNNumOrp Número Número da ordem de produção N
SgqNCodEtg Número Código do estágio N
SgqNSeqEoq Número Sequência da movimentação de produção N
SgqAInpMop Alfa Retorna se inspeciona o movimento da ordem de produção (S/N) S

Este artigo ajudou você?