Páginas filhas
  • ER_LOGWMS01-33_Tratar_GS1-128_na_Separacao

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

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

  

Informações Gerais

 

Especificação

Produto

WMS

Módulo

Logix

Segmento Executor

Supply Chain - Inovação

Projeto1

LOGWMS01

IRM1/Epic

LOGWMS01-30

Requisito1/Story

LOGWMS01-33

Subtarefa1

 

Chamado2

 

País

( X ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Outros

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

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

Objetivo

Permitir a leitura e decodificação de etiquetas padrão GS1-128 durante a separação.

 

Definição da Regra de Negócio

Será possível efetuar a leitura de etiquetas padrão GS1-128 no processo de separação nas seguintes condições:

  1. Quando o parâmetro Modo solicitação SKU separação do contrato (Expedição - Separação/Conferência) estiver informado "Obriga leitura SKU" o programa de separação via coletor deverá estar preparado para receber uma etiqueta padrão GS1-128 no lugar da etiqueta EAN/SKU carregando as informações de SKU/ITEM (caso existam) e efetuando as validações já existentes após a leitura do EAN/SKU. Este processo ocorre tanto em separação em endereço armazém, quanto de picking. Se o parâmetro Informar dimensionais no picking estiver marcado e o item possuir controle de algum dimensional, durante a separação em endereço de picking, serão carregadas automaticamente as informações, caso tenham sido lidas a partir do GS1 informado no lugar do EAN/SKU. Caso o operador não tenha lido o código de barras contendo as informações dos dimensionais ou não tenha efetuado a leitura de um código padrão GS1-128 anteriormente, ainda poderá faze-lo por meio da tecla função F11/Ctrl-R, ao final da separação ou quando efetuar uma coleta parcial. A tela que atualmente efetua a entrada dos dimensionais manualmente deverá possibilitar a leitura de uma etiqueta GS1-128.
  2. Quando o parâmetro Modo solicitação SKU separação estiver informado "Obriga informar quantidade" ou "Somente pede confirmação" o programa de separação via coletor deverá estar preparado para receber uma etiqueta padrão GS1-128 somente quando a separação ocorrer em endereços de pícking e quando o parâmetro Informar dimensionais no picking estiver marcado. Isso porque nessas modalidades de separação, somente nestes casos a leitura de uma etiqueta GS1-128 seria necessária. Quando ocorrer esta situação, no momento da entrada dos dimensionais, o programa deverá estar preparado para receber as informações por meio de uma etiqueta GS1-128.
  3. E no descarregamento, quando poderá ser informada uma etiqueta GS1-128 no lugar de uma etiqueta de SKU ou ITEM para ser efetuada a validação dos movimentos relacionados.

 

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

WMS6214

[Alteração]

 

Programa Coletor

WMSR41

[Alteração]

 

RNL

WMS6730

[Alteração]

 

Programa Coletor

WMS6730[Criação] Tela

 

Alteração WMS6214

  1. Função wms6214_coleta_mercadorias() deverá ser alterada para verificar se o depositante do processo utiliza codificação GS1-128.
    1. No início da função deverá ser atribuído true ou false a uma nova variável modular chamada m_config_gs1_128 de acordo com o retorno da função wmsr130_deposit_utiliza_cod_barras_gs1_128(), os parâmetros empresa e depositante deverão ser passados anteriormente via função  wmsr130_set_empresa() e wmsr130_set_deposit.().
  2. A função wms6214_coleta_etiqueta_sku_item() deverá ser alterada no ponto de input da etiqueta EAN/SKU sendo preparada para o recebimento de uma etiqueta GS1-128.
    1. Se o depositante não possuir configuração válida (m_config_gs1_128 = 0) o Input não deve ser alterado.
    2. No AfterField do campo etiq_entrada, após a chamada da função wms6214_verifica_movimento(), quando o l_qtd_item_sku for igual a Zero e m_config_gs1_128 > 0 deverá verificar se foi informada uma etiqueta GS1-128, seguindo os seguintes passos:
      1. Chamar as funções a segui na seqüência: wmsr130_set_null(), wmsr130_set_modo_exibicao(0), wmsr130_set_empresa(p_cod_empresa), wmsr130_set_cod_config_gs1_128(m_config_gs1_128 ), wmsr130_set_depositante(mr_movimento.deposit),wmsr130_add_cod_barras_gs1_128(ma_cod_barras[l_ind+1]);
      2. Chamar a função wmsr130_decodifica_gs1_128() que irá retornar TRUE/FALSE e Mensagem de processamento. 
      3. Se retornar FALSE deverá exibir a mensagem de erro retornada seguindo padrões de mensagens de erro de coletor e chamar a função WMS6214_input_gs1_128() que deverá retornar l_status. Se l_status for FALSE deverá interromper o movimento.
      4. Se o retorno for TRUE, então deverá buscar os atributos de SKU e/ou Item lidos chamando a função wmsr130_get_cod_barras_sku() e/ou wmsr130_get_item_depositante().
      5. Se tanto código de barras quanto item depositante retornarem nulo deverá ser chamada a função WMS6214_input_gs1_128()

  3. Função wms6214_coleta_quantidade_sku_item
    1. Para esta modalidade de separação não serão necessárias alterações, pois todas as regras de entrada do GS1-128 constarão na função WMSR41_entrada_dimensionais.
  4. Função WMS6214_input_gs1_128(), função para gerenciamento da entrada de etiquetas GS1-128.
    1. Deverão ser chamadas as funções wms6730_set_null(), wms6730_set_empresa(p_cod_empresa), wms6730_set_cod_config_gs1_128(m_config_gs1_128 ), wms6730_set_depositante(mr_movimento.deposit), wms6730_set_rotina_origem('wms6214'), wms6730_set_modo_exibicao() nesta ordem para carregar os parâmetros de processamento. 
    2. Chamar a função wms6730_solicita_cod_barras_gs1_128().
    3. Após a execução da função de entrada do código GS1-128 deverão ser resgatados o código de barras do SKU por meio da função wmsr130_get_cod_barras_sku() e atribuír a variável ma_cod_barras[l_ind+1].  Ou, se wmsr130_get_cod_barras_sku() retornar em branco, deverá chamar a função wmsr130_get_item_depositante() e atribuir o item depositante a uma variável modular, que será utilizada na validação do item do processo de movimentação.
    4. Se ambos os retornos forem em branco deverá exibir a mensagem de erro "Etiqueta nao confere." e retornar FALSE.
    5. Para validação do código de barras do SKU deverá ser chamada a função wms6214_valida_etiqueta_sku_item(ma_cod_barras[l_ind+1])
      1. Se o retorno de l_qtd_item_sku for igual a zero (0) deverá emitir a mesma mensagem que é exibida atualmente quando a etiqueta lida é uma SKU/EAN.
      2. Dentro do IF mr_movimento.funcao = 4 THEN e se m_info_dimens_pick = 'S' deverá ser chamada a função WMSR41_entrada_dimensionais passando tipo_separacao 2 (separação lendo etiqueta SKU/EAU com GS1-128).
      3. Se o retorno for FALSO deverá voltar para o campo etiq_entrada.

Alteração WMSR41

  1. A função WMSR41_entrada_dimensionais deverá ser alterada para que a entrada dos dimensionais possa ser feita a partir da leitura da etiqueta GS1-128 informada no Input do campo etiq_entrada na função wms6214_coleta_etiqueta_sku_item ou através do acionamento da tecla de função F11/Ctrl-R.
    1. Antes de abrir a tela de entrada dos dimensionais deverá verificar se o tipo de separação recebido é 2, neste caso efetuar o processo a seguir:

      1. Para verificar se as informações de dimensionais foram coletadas no início da separação (ao informar a etiqueta EAN/SKU) deverá ser chamara a função wmsr41_carrega_dimensionais_gs1_128(), a qual irá verificar quais dimensionais o item controla e carregar o array de dimensionais com os valores retornados pelas funções WMSR130 correspondente.

      2. Se a função retornar FALSE deverá continuar o processo abrindo a tela para que seja efetuada a entrada manual dos dimensionais. Neste caso, se algum dimensional foi preenchido pela função wmsr41_carrega_dimensionais_gs1_128(), o valor deverá ser apresentado na tela e o operador não poderá alterá-lo.

      3. Se a função retornar TRUE, indica que todos os dimensionais controlados foram informados na etiqueta e então deve efetuar a validação dos dimensionais chamando a função wmr41_valida_dimensionais(), se o retorno for FALSE, deverá retornar FALSE deste ponto. Se o retorno for TRUE e l_qtd_a_reservar for maior que zero, deverá efetuar o processamento de reservas como já é feito na rotina atual e efetuar o mesmo tratamento de retorno.

  2. Nova função wmsr41_carrega_dimensionais_gs1_128()

    1. Deverá ser criada uma variável para controlar o número de dimensionais que o item mantém e se o valor retornado da função WMSR130. Ao final desta função deverá ser possível identificar se para todos os dimensionais controlados pelo item foram retornados valores válidos. Se a quantidade de dimensionais for diferente da quantidade de valores válidos retornados, o retorno da função deverá ser FALSE, senão retorna TRUE.
    2. Criar um for do array de dimensionais.
    3. Para cada item do array deverá verificar se o dimensional é válido e testar de que atributo se trata.
      1. Chamar a função GET da tabela abaixo e armazenar o valor na variável val_dimensional do array.
      2. Verificar se o valor retornado é valido conforme cada atributo do dimensional.
      3. Os dimensionais coletados deverão ser armazenados nas variáveis modulares mr_dimensionais correspondente.
      4. Os dimensionais lidos e validados deverão ser armazenados na tabela temporária de dimensionais, para que posteriormente seja efetuada a movimentação de estoque e remanejamento de reservas.
      5. O processamento das reservar deverá ocorrer quando for acionada a tecla Control-P (coleta parcial) ou quando a quantidade separada atender a quantidade solicitada no WMS6214.
    4. Quando o modo de separação for 1 (um) indica que o modo de separação é obrigando informar a quantidade e neste caso não é informado o EAN/SKU. Neste caso deve, se o depositante do processo de movimentação possui configuração de código de barras GS1-128, então na entrada dos dados dos dimensionais deverá ser prevista a entrada de uma etiqueta GS1-128 ao invés da entrada manual dos dimensionais.
      1. Chamar a função wms6730_solicita_cod_barras_gs1_128() (deve chamar as funções SET como na função WMS6214).
      2. Verificar se o código do item depositante ou SKU foram lidos na etiqueta e se foram deve ser validado com o movimento de separação.
      3. Efetuar a validação dos dimensionais e verificar se os dimensionais que o item controla foram informados.

 

DimensionalFunção GETRetorno inválido
Lotewmsr130_get_lote()Branco " "
Volumewmsr130_get_volume()0
Data de produçãowmsr130_get_data_producao()'1900/01/01'
Data de validadewmsr130_get_data_validade()'1900/01/01'
Comprimentowmsr130_get_comprimento()0
Largurawmsr130_get_largura()0
Diâmetrowmsr130_get_diametro()0
Número peçawmsr130_get_numero_peca()Branco " "
Número sériewmsr130_get_numero_serie()Branco " "

 

Protótipo de Tela

 Protótipo 01


 

Fluxo do Processo

 



Modo de Separação: informando quantidade, ocorrerá somente em separação em endereços de Picking quando estiver configurado para informar os dimensionais do item;

Funcionalidade endereço: somente Picking

Informar dimensionais na separação picking: Sim.


 

Modo de Separação: informando SKU/EAN;

 

Funcionalidade endereço: Armazém ou Picking (informa etiqueta SKU/EAN)

 Separação com leitura da etiqueta EAN/SKU, o GS1-128 pode ser informado do lugar da etiqueta SKU/EAN. Ocorrerá tanto em endereços de armazém quanto picking.

Image Removed

Separação por SKU em endereços de picking informando os dimensionais. Se na etiqueta do SKU leu dimensionais, mas não tem todos que o item controla, deverá abrir a tela de dimensionais, caso contrário assume o que veio na GS1-1.

Image RemovedImage Removed

Image Added


Informar dimensionais na separação picking: Sim (entrada dimensionais).

 

  • Se no momento que foi informada o campo SKU/EAN foi lida uma etiqueta GS1-128 e foram resgatadas as informações dos dimensionais, a validação dos mesmos será feita sem abrir a tela de entrada dos dimensionais, caso as informações estejam incompletas, então abre a tela de entrada de dimensionais.


Image AddedImage AddedImage Added


Descarga

Pode ser informado Equipamento, SKU, Item ou ainda Volume. Se a etiqueta informada não for nenhum desses tipos e estiver parametrizado que o depositante utiliza GS1-128, então tenta validar a etiqueta GS1.Descarga

<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>. 


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