Páginas filhas
  • ER DLOGWMSOL-300 Empilhamento Tratar FEFO BRA

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

 

 

 

 

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                             

  

Informações Gerais

 

<Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>

Especificação

Produto

LOGIXLogix

Módulo

WMS

Segmento Executor

Supply Chain

Projeto1

LOGWMS01

IRM1 

LOGWMS01-545 - WMS - ELLECE - FASE 2 - WMS para Operador Logístico

Requisito1

DLOGWMS-300 - Configuração - Empilhamento tratar FEFO

LOGWMS01-1002-709 - [WMS] - ME 2 - Empilhamento tratar FEFO

Subtarefa1

 

Chamado2

LOGWMS01-1002 - Gerar Especificação - ME 2 

País

(X ) Brasil  (  ) Argentina  (  ) Mexico  México  (  ) Chile  (  ) Paraguai  (  ) Equador (  ) USA  (  ) Colombia   Colômbia   (  ) Outro _____________.

Outros

.

   Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos). 

Objetivo

Objetivos

  • Permitir a troca de identificação de estoque automática para determinados tipos de Estrutura.
  • Efetuar a troca automática de identificações que utilizam empilhamento para a ultima última identificação da pilha.

 

Definição da Regra de Negócio


 Image Modified

       

 


Abaixo um fluxo do processo de separação:



Image Modified

 

 

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

WMS60018

Alteração

 

Contrato do Depositante - Opção Expedição-Separação/Conferência

WMS60030

Alteração

 

Função Cópia Contrato do Depositante

WMS60100

Alteração

 

Tipo de Estrutura

WMSM103

Alteração

 

DML - Tabela WMS_Tipo_estrutura

WMS6215

Alteração

 

RNL - Realizar troca de identificação na separação

WMS6214Alteração Programa de Separação
WMS6353Alteração Função de separação por endereço

 

 

  1. WMS60018 - Contrato do Depositante - Opção Expedição-Separação/Conferência

    Incluir o campo Verifica data Validadevalidade/ Produção produção por mês e ano troca identificação? abaixo do campo Permite quebra FIFO troca identificação.
    Este  Este campo deverá ficar permanecer inativo se o campo Permite quebra FIFO troca identificação for marcado. 

    Gravar o valor deste novo campo ("S" ou "N") na tabela WMS_PARAMETRO_SEPARACAO no novo campo criado   verif_vld_prd_mes_ano_troca_identifid.


  2. WMS60030 - Função copia informações relacionadas ao contrato

    Alterar a função wms60030_copia_contrato para ler o novo campo criado verif_vld_prd_mes_ano_troca_identifid referente ao contrato de origem da cópia e gravar o valor lido para para o contrato destino da cópia.


  3. WMS60100 - Tipo de Estrutura

    Incluir o campo Permitir troca automática de identificação na separação no cadastro Cadastro de estruturasEstruturas.
    Este campo deverá ficar permancecer abaixo do campo Utilizar drop point ressuprimento.
    Gravar o valor deste campo ("S", "N") na tabela WMS_TIPO_ESTRUTURA no ESTRUTURA, no novo campo criado permite_troca_auto_id. 

  4. WMSM103 - DML tabela wms_tipo_estrutura

    Alterar a função WMSM103 para considerar o novo campo criado permite_troca_auto_id

  5. WMS6215 - Realizar troca de identificação na separação
    4
    5.1. Criar uma nova função wms6215_verifica_endereco_movimento.
    Esta função deverá receber como parâmetro a empresa, processo de movimentação e endereço.
    Quando o endereço vier nulo no parâmetro, esta função deverá buscar o endereço de origem do processo de movimentação e o tipo de estrutura do endereço de origem.
    Quando o endereço vier preenchido buscar o tipo de estrutura do endereço recebido como parâmetro na função.
    Para o tipo de estrutura encontrado deverá fazer efetuar a leitura da tabela wms_tipo_estrutura através da pela função wmsm103_wms_tipo_estrutura_leitura, recuperando a informação do novo campo permite_troca_auto_id. Se o campo estiver informado como "S" retornar TRUEse ; se estiver informado como "N" retornar falseFALSE.
    4
    5.2.Criar uma nova função wms6215_valida_efetua_troca_identif, esta .
    Esta função deverá receber como parâmetro empresa, identificação de estoque origem, nova, processo de movimento referente a ID de origem.
    Por meio do processo de movimento deverá buscar a identificação de estoque nova,  processo de movimentoorigem.
    Nesta função deverá deverão ser feito efetuadas todas as validações já existentes na função wms6215_valida_troca_identif e também as validações da função wms6215_informa_identif_troca, após .
    Após efetuar a validação deverá ser efetuado efetuada uma chamada para a função já existente wms6215_processa_troca_identif, para efetuar a troca da reserva da identificação de estoque. Esta função deverá retornar TRUE ou FALSE.
    4
    5.3. Criar uma nova função wms6215_busca_empilhamento_troca que deverá ser executada através do pelo WMS6214, quando for selecionado o movimento. 
    Este Esta nova função deverá receber como parâmetro a empresa e o processo de movimento.
    Esta função deverá fazer efetuar a validação se o endereço de origem do processo de movimentação está marcado para efetuar troca de identificação.  Para fazer
    Para realizar esta verificação utilizar a nova função criada  wms6215wms6215_verifica_endereco_movimento.
    Quando a função  wms6215_verifica_endereco_movimento retornar true TRUE indicando que o campo Permitir troca automática de identificação na separação está informado com "S" fazer , realizar a seguinte regra:
    •  Verificar se a identificação de estoque possui alguma identificação empilhada sobre ela. Para fazer efetuar esta busca fazer select com foreach na tabela wms_palete, buscando pelo palete da identificação de estoque do processo de movimentação e verificar se este palete está preenchido o campo palete_empilhamento, caso . Caso não encontre dados, retornar true TRUE para o programa chamador para que processo continue. Se encontrar registro pegar o campo palete do registro encontrado e o campo palete_empilhamento e alimentar em uma tabela temporária, alimentando um campo com um número sequencial das sequencias sequências da pilha encontrada, fazer . Utilizar a mesma regra até que não encontre o palete no campo palete_empilhamento. Quando o campo palete_empilhamento não estiver preenchido será o ultimo palete da pilha. 

    • Após, ler os dados da temporária alimentada acima em ordem decrescente dos dados pelo campo sequencia. Para cada palete encontrado fazer um FOREACH das identificações de estoque do palete na tabela wms_identif_estoque e para cada identificação encontrada executar a nova função criada  wms6215_valida_efetua_troca_identif, passando como parâmetro empresa, identificação de estoque origem (identificação do processo de movimento), identificação de estoque nova (identificação do ultimo palete da pilha),  processo de movimento . Se o retorno da função wms6215_valida_efetua_troca_identif for falseFALSE, buscar a próxima identificação de estoque e assim consecutivamente até que seja possível efetuar a troca de reserva ou o palete encontrado na pilha seja o  mesmo já reservado pelo processo de movimentação. 

    • Esta função deverá retornar true TRUE, conseguindo trocar ou mantendo o a mesma identificação já reservada. Somente retornará false FALSE quando ocorrer erro de select.

 

Abaixo figura com o exemplo da regra de busca dos dados da pilha:

 

Image Modified

5.4.3. Criar uma nova função wms6215_busca_identif_endereco_troca, esta .
Esta função será executada quando o modo de separação estiver por endereço.
Esta função deverá receber como parâmetro empresa, lista de separação, endereço, identificação de estoque. Esta função
Também deverá buscar todas as identificações de estoque reservada reservadas para a lista e endereço recebido no parâmetro.
Executar a chamada da nova função  wms6215_verifica_endereco_movimento para verificar se o tipo de estrutura do endereço de origem esta marcado para permitir troca automática de identificação de estoque. Caso Se não permitir deverá retornar TRUE para que o programa chamador da função continue executando normalmente. Caso
Se o campo Permitir troca automática de identificação na separação  estiver informado como "S" Sim, deverá ser chamado chamada a nova função criada wms6215_valida_efetua_troca_identif, passando como parâmetro a empresa,   identificação identificação de estoque origem (identificação encontrada no select), identificação de estoque nova (identificação recebida como parâmetro na função wms6215_busca_identif_endereco_troca) ,  processo processo de movimento encontrado no select, caso ; Caso a função chamada retorne TRUE, deverá finalizar o foreach retornando TRUE para o programa principal, ; caso contrário buscar as próximas identificações,
Caso não seja possível efetuar a troca por nenhuma das identificações deverá mostrar mensagem ao usuario usuário informando que "Não foi possível efetuar a troca automática da identificação" e retornar false. FALSE.

Bloco de código
languagesql
titleExemplo select para busca das identificações de estoque e processos de movimentação do endereço
collapsetrue
SELECT wms_processo_moviment.processo_moviment,
wms_processo_moviment.identif_estoque
FROM wms_onda_separacao_item,
wms_processo_moviment
WHERE wms_processo_moviment.empresa = wms_onda_separacao_item.empresa
AND wms_processo_moviment.processo_moviment = wms_onda_separacao_item.processo_moviment
AND wms_onda_separacao_item.empresa = '44'
AND wms_onda_separacao_item.num_lista_separacao = 2381
AND wms_processo_moviment.endereco_origem = 1
AND wms_processo_moviment.sit_processo_moviment NOT IN ('FI','CA', 'AT')
AND wms_processo_moviment.endereco_origem = '1'

 

54.5. Alterar a função wms6215função wms6215_carrega_parametros para inserir a leitura do novo parametro parâmetro criado no contrato do depositante "depositante Verifica data Validade/Produção por mês e ano troca identificação", .

 

Bloco de código
languagesql
titleExemplojs
collapsetrue
Exemplo:
WHENEVER ERROR CONTINUE
       SELECT verif_vld_prd_mes_ano_troca_identifid
         INTO m_ verif_vld_prd_mes_ano_troca_identifid
         FROM wms_parametro_separacao
        WHERE empresa     = l_empresa
          AND depositante = l_depositante
     WHENEVER ERROR STOP
     IF sqlca.sqlcode <> 0 THEN
        CALL log0030_processa_err_sql("SELECT", "wms_parametro_separacao", 1)
        CALL wms6215_help("Erro busca parametros", NULL)
        RETURN FALSE
     END IF
  IF m_ verif_vld_prd_mes_ano_troca_identifid IS NULL OR m_ verif_vld_prd_mes_ano_troca_identif id= ' ' THEN
     LET m_ verif_vld_prd_mes_ano_troca_identifid = 'N'
  END IF
 
 

 

45.6. Alterar a função wms6215função wms6215_valida_nova_identif na leitura dos dimensionais no select da tabela estoque_lote_ender para verificar se a variável mvariável m_permite_quebra_fifo está como "N" (Não).
Se estiver como N, indica que nao não permite a quebra     de FIFO dos dimensionais na troca da identificação, neste . Neste caso deverá ser validado também o novo parâmetro criado no contrato do depositante Verifica data Validadevalidade/ Produção produção por mês e ano troca identificação?, se .
Se estiver informado como "S", deverá ser alterado o SELECT que valida os dimensionais para validar no lugar a data completa de produção e validade somente o mês e ano. Neste caso, se existirem datas diferentes porém o més e ano é igual mês e ano são iguais, permite e troca. 

Bloco de código
languagejs
collapsetrue
Exemplo select para busca das identificações de estoque e processos de movimentação do endereço
SELECT wms_processo_moviment.processo_moviment,
wms_processo_moviment.identif_estoque
FROM wms_onda_separacao_item,
wms_processo_moviment
WHERE wms_processo_moviment.empresa = wms_onda_separacao_item.empresa
AND wms_processo_moviment.processo_moviment = wms_onda_separacao_item.processo_moviment
AND wms_onda_separacao_item.empresa = '44'
AND wms_onda_separacao_item.num_lista_separacao = 2381
AND wms_processo_moviment.endereco_origem = 1
AND wms_processo_moviment.sit_processo_moviment NOT IN ('FI','CA', 'AT')
AND wms_processo_moviment.endereco_origem = '1'

 

 

6. WMS6214 - Programa de Separação5. wms6214

Quando no contrato do depositante está selecionado o modo de separação "separação por movimentos" , quando for pressionado ENTER no movimento , deverá deverão ser efetuado efetuadas as seguintes alterações:

Alterar o programa wms6214 na função   wms6214_exibe_array_movimentos para que na tecla <return> <return> quando o usuário pressiona enter ENTER e o campo Status_movto está <> 'No equipamento"  antes de fazer efetuar a chamada da função wms6214_carrega_informacaoes_movimento inserir uma chamada para a nova função criada  wms6215_busca_empilhamento_troca, para buscar se o item possui empilhamento e efetuar a troca, se necessário, conforme detalhes da função wms6215_busca_empilhamento_troca. Após o retorno da função, caso retorne false FALSE, executar o exit display, ; caso contrário continua a execução do programa.

Alterar a função wms6214função wms6214_inicia_movimento, no input incluir no AFTER FIELD etiq_destino quando a variavel l_etiqueta_entrada <> m_etiqueta_origem uma rotina para verificar se o tipo de estrutura do endereço do processo de movimento permite efetuar troca automática de identificação .Para isto isso, deverá ser executado a nova função criada wms6215_verifica_endereco_movimento(), passando como parâmetro a empresa e processo de movimento , caso . Caso esta função retorne FALSE continuar o processamento normalmente. ; quando retornar TRUE deverá ser executado executada a nova função criada wms6215_valida_efetua_troca_identif, enviar como parâmetro parâmetro empresa, identificação de estoque origem, identificação de estoque nova,  processo de movimento. Caso a função retorne trueTRUE, devera ser alimentado alimentada a variável mvariável m_etiqueta_origem com o mesmo valor da etiqueta informada e continuar o processo de separação. Caso a função retorne false FALSE não altera os valores das variáveis e continuar o processo atual.

 

67. WMS6353 - Função de separação Separação por endereçoEndereço

Alterar a função wms6353função wms6353_informa_dados_etiq_end para efetuar a chamada da nova função criada wms6215_busca_identif_endereco_troca, antes da chamada da função wms6353função wms6353_valida_identificacao. quando Quando a nova função wms6215função wms6215_busca_identif_endereco_troca retornar FALSE, deverá mostrar a seguinte mensagem ao usuariousuário: "Não foi possivel possível efetuar a troca automatica automática da identificação." e deverá executar o comando NEXT FIELD identif_estoque. 

 

Opcional

Protótipo de Tela

 

Protótipo 01

Image Removed

Image Added 

 Prototipo

Protótipo 02 

Image Modified

 

 

Opcional

Dicionário de Dados

 

TABELA ALTERADA: WMS_PARAMETRO_SEPARACAO
NOME
DESCRIÇÃO
TIPOOBRIGATÓRIOCAMPO NOVO?
EMPRESAEmpresaCHAR(02)
  •   
NÃO
DEPOSITANTECódigo do depositanteCHAR(15)
  •   
NÃO
...    

PERMT_QUEB_FIFO_TROC_IDEN

Permite quebra FIFO troca identificaçãoCHAR(01)
  •   
NÃO
...    
 VERIFVERIF_VLD_PRD_MES_ANO_TROCA_IDENTIFID Verifica data Validade/Produção por mês e ano troca identificaçãoCHAR(01)
  •   
SIM
 
TABELA ALTERADA: WMS_TIPO_ESTRUTURA
NOME
DESCRIÇÃO
TIPOOBRIGATÓRIOCAMPO NOVO?
TIP_ESTRUTURATipo de estruturaSMALLINT
  •   
NÃO
...    

sit_estrutura

Situação EstruturaSMALLINT
  •   
NÃO
...    
PERMITE_TROCA_AUTO_IDPermite troca automática de identificação na separaçãoCHAR(01)
  •   
SIM   
     

 

 

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.