Histórico da Página
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 | IRM1/Epic | ||
Requisito1/Story | 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:
- 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.
- 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.
- 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
- Função wms6214_coleta_mercadorias() deverá ser alterada para verificar se o depositante do processo utiliza codificação GS1-128.
- 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.().
- 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.
- Se o depositante não possuir configuração válida (m_config_gs1_128 = 0) o Input não deve ser alterado.
- 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:
- 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]);
- Chamar a função wmsr130_decodifica_gs1_128() que irá retornar TRUE/FALSE e Mensagem de processamento.
- 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.
- 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().
- Se tanto código de barras quanto item depositante retornarem nulo deverá ser chamada a função WMS6214_input_gs1_128()
- Função wms6214_coleta_quantidade_sku_item
- 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.
- Função WMS6214_input_gs1_128(), função para gerenciamento da entrada de etiquetas GS1-128.
- 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.
- Chamar a função wms6730_solicita_cod_barras_gs1_128().
- 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.
- Se ambos os retornos forem em branco deverá exibir a mensagem de erro "Etiqueta nao confere." e retornar FALSE.
- 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])
- 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.
- 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).
- Se o retorno for FALSO deverá voltar para o campo etiq_entrada.
Alteração WMSR41
- 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.
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:
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.
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.
- 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.
Nova função wmsr41_carrega_dimensionais_gs1_128()
- 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.
- Criar um for do array de dimensionais.
- Para cada item do array deverá verificar se o dimensional é válido e testar de que atributo se trata.
- Chamar a função GET da tabela abaixo e armazenar o valor na variável val_dimensional do array.
- Verificar se o valor retornado é valido conforme cada atributo do dimensional.
- Os dimensionais coletados deverão ser armazenados nas variáveis modulares mr_dimensionais correspondente.
- 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.
- 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.
- 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.
- Chamar a função wms6730_solicita_cod_barras_gs1_128() (deve chamar as funções SET como na função WMS6214).
- 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.
- Efetuar a validação dos dimensionais e verificar se os dimensionais que o item controla foram informados.
Dimensional | Função GET | Retorno inválido |
---|---|---|
Lote | wmsr130_get_lote() | Branco " " |
Volume | wmsr130_get_volume() | 0 |
Data de produção | wmsr130_get_data_producao() | '1900/01/01' |
Data de validade | wmsr130_get_data_validade() | '1900/01/01' |
Comprimento | wmsr130_get_comprimento() | 0 |
Largura | wmsr130_get_largura() | 0 |
Diâmetro | wmsr130_get_diametro() | 0 |
Número peça | wmsr130_get_numero_peca() | Branco " " |
Número série | wmsr130_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.
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.
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.
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. |
---|