Histórico da Página
Informações Gerais
Especificação | |||||||
Produto | Logix | Módulo | WMS | ||||
Segmento Executor | Supply Chain - Logística | ||||||
Projeto1/Story | IRM1/Epic | ||||||
Requisito1 | Subtarefa1 | Chamado2 | |||||
País | ( X ) Brasil ( ) Argentina ( ) Mexico México ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia Colômbia ( ) 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
Tratar a utilização de etiquetas padrão GS1-128 nas rotinas complementares do WMS. Compreende-se por rotinas complementares para este desenvolvimento apenas a rotina as rotinas de contagem Contagem do inventário Inventário do WMS e a rotina de impressão Impressão de etiquetas Etiquetas ITEM/SKU.
Definição da Regra de Negócio
Contagem do
inventário via coletor WMS.Inventário Via Coletor WMS:
Esta
Essa
rotina possibilitará que sejam utilizados códigos GS1-128 (previamente parametrizados) durante a contagem do
inventárioInventário. A etiqueta GS1-128 poderá ter sua leitura realizada nos pontos do processos
ondenos quais é solicitada a etiqueta de código de barras do SKU. A partir da leitura deste tipo de etiqueta o sistema poderá resgatar as informações de Item, Código de barras do SKU, quantidade de itens por SKU, quantidade de SKUs e os valores dos dimensionais (lote, data de fabricação, número de série,
etcentre outros).
Para que a etiqueta GS1-128 seja aceita na entrada das informações é necessário que
existaexistam pelo menos as informações do código de barras do SKU ou o código do item depositante, para que sejam efetuadas as validações de item/SKU, da mesma forma
quecomo é
feitoefetuado atualmente por meio do código do SKU.
Se na etiqueta GS1 existir apenas a informação do item depositante, o sistema tentará localizar o SKU
,; se a informação da quantidade de itens existir na GS1,
essaesta informação será utilizada na busca do SKU, contudo, se o item possuir mais de um SKU cadastrado e não for possível localizar um único SKU com as informações lidas, será exibida uma mensagem de erro e
serásolicitada outra etiqueta.
Quando oSe no item
tiverhouver controle de dimensionais
e, todas as informações constarem na etiqueta GS1 e forem valores
válidosválidas, a tela de entrada de dimensionais não será aberta e o processamento assumirá automaticamente estas informações. Caso não sejam recuperadas as informações dos dimensionais ou esteja faltando alguma informação de dimensional, a tela de entrada continuará abrindo
trazendoapresentando as informações lidas, permitindo informar apenas o que não foi lido.
Impressão
etiquetaEtiqueta Item/SKU
.:
A rotina de impressão da etiqueta ITEM/SKU deverá permitir que as etiquetas no formato GS1-128 sejam impressas a partir de uma configuração
pré-definidapredefinida nos Modelos de Etiquetas.
Para viabilizar este processo será necessário a criação dos atributos relacionados a etiqueta GS1
que, os quais estarão disponíveis no cadastro de
modelosModelos de
etiquetasEtiquetas, etiqueta tipo 12
"ItemITEM/SKU
".
Quando um modelo de etiqueta possuir atributos GS1 relacionados, no momento da impressão da etiqueta será exibida uma tela
onde, na qual deverá ser
feitaefetuada a entrada dos dados correspondentes aos atributos do GS1 que não são mantidos no cadastro de Item/SKU do WMS (vide tabela no detalhamento da rotina).
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
WMS6770 - Atualização dos registros padrões | [Alteração] |
|
|
SUP2067 - Contagem Inventário | [Alteração] |
| - |
WMS6340 - Geração Etiquetas Item/SKU | [Alteração] |
| - |
WMS6082 - Modelos Etiquetas |
Contagem do
inventário via coletor WMS.Inventário Via Coletor de WMS
SUP2067 -
InventárioInventário
Na função sup2067_controle() deverá ser implementada a lógica para verificar se o depositante possui configuração de etiqueta GS1-128.
Para isso, deverá chamar a função wmsr130_deposit_utiliza_cod_barras_gs1_128(), que poderá retornar
trueTRUE ou
falseFALSE, setar o valor do retorno em variável modular que será testada posteriormente nas lógicas de entrada do GS1.
Pontos onde poderá haver interação com o GS1-128
.:
1) Criar nova função sup2067_retorna_cod_barras_sku(l_cod_barras_sku). Função responsável pelo controle de entrada de dados via GS1-128.
- Chamar as funções wms6730_set_null(),
- wms6730_set_empresa(mr_parametros.empresa),
- wms6730_set_depositante(m_depositante_plano),
- wms6730_set_rotina_origem('sup2067'),
- wms6730_set_leitura_teste(FALSE)
- wms6730_set_cod_barras_gs1_128(l_cod_barras_sku);
- Chamar a função wms6730_solicita_cod_barras_gs1_128() que efetuará a entrada da etiqueta.
2) Função sup2067_solicita_info_adicional()
Alterar o carregamento do array de tela (ma_dimensional) para que, quando estiver sendo utilizada a tela "A", seja validado se o depositante utiliza configuração GS1-128 e se o item controla algum dimensional, seja exibido o campo "COD.BAR GS1-128" antes dos dimensionais, conforme exemplo abaixo. Deverá atribuir ma_dimensional[].label_dimensional = "COD.BAR GS1-128" e ma_dimensional[].campo = "cod_gs1".
Bloco de código | ||
---|---|---|
| ||
INVENTARIO - SUP2067
Ativid.: Contagem
[118-P ]
[ ]
[118 PICKING ]
Sku:
[118-p/1 ]
Qtd:[ 1,000 ]
Info.Complementar:
[COD.BAR GS1-128 ]
[ ]
[LOTE ]
[ ]
.
.
[Qtd.Sku's ]
[ ]
F10 - Teclas |
3) Função sup2067_implanta_identificacao()
Bloco de código | ||||
---|---|---|---|---|
| ||||
INPUT BY NAME mr_impl_identif.etiq_palete,mr_impl_identif.etiq_estoque,
mr_impl_identif.cod_barras,
mr_impl_identif.qtd_item,
mr_impl_identif.qtd_sku,
mr_impl_identif.tip_estoque WITHOUT DEFAULTS |
No AFTER FIELD cod_barras (do input acima) se l_encontrou for FALSE deverá verificar se o depositante possui parametrização GS1-128.
Caso possuaSe possuir, deverá seguir os passos
a seguirabaixo, senão mantém o processamento atual:
- Chamar a função sup2067_retorna_cod_barras_sku() passando como parâmetro mr_impl_identif.cod_barras.
- Após o retorno da função acima deverá:
Buscar o código de barras do SKU atribuindo a mr_impl_identif.cod_barras, item depositante a uma variável local
nova,
e quantidade de item SKU também a uma variável local nova, chamando as funções wmsr130 correspondentes.
Se os atributos de SKU e item retornarem nulos, não será possível continuar o processamento e deverá
ser exibida a msg de erro "Nao foi possivel identificar o SKU."
Se o atributo SKU retornado for nulo, mas o atributo Item for válido, deverá efetuar select abaixo para determinar o código de barras do SKU.
Tendo o código de barras do SKU deverá chamar a função wmst86_wms_item_sku_cod_barras_verifica_cod_barras() passando o código retornado. Caso não localize o SKU
, deve ser exibida a mensagem “Nao foi possivel identificar o SKU.”.
Bloco de código |
---|
SELECT wms_item_sku_cod_barras.cod_barras into mr_impl_identif.cod_barras FROM wms_item_sku_cod_barras, wms_item_complemento, wms_item_sku WHERE wms_item_sku_cod_barras.empresa = p_cod_empresa AND wms_item_sku_cod_barras.empresa = wms_item_complemento .empresa AND wms_item_sku_cod_barras.item= wms_item_complemento .item AND wms_item_sku.empresa = wms_item_complemento.empresa AND wms_item_sku.item = wms_item_complemento .item AND wms_item_sku.sku = wms_item_sku_cod_barras.sku AND wms_item_complemento .deposit = wms_item_sku_cod_barras.depositante AND wms_item_complemento .item_deposit = (item retornado da função wmsr130_get_item_depositante()) AND wms_item_sku.qtd_item = l_qtd_item (wmsr130_get_qtd_itens_sku() AND wms_item_sku.sit_sku = ‘A’ |
4) Alterar a função sup2067_verifica_sku()
Se l_encontrou for igual a FALSE, antes de exibir a mensagem de erro
,deverá verificar se a etiqueta informada é uma GS1-128 e buscar as informações do item ou SKU, seguindo os mesmos passos indicados no item 1, utilizando as funções wms6730/wmsr130.
Se conseguir identificar o SKU a partir da etiqueta GS1 deverá chamar novamente a função wmst86_wms_item_sku_cod_barras_verifica_cod_barras() passando o código retornado. Se não validar o SKU deve exibir mensagem de erro como na lógica atual.
5) Função sup2067_entrada_skus_endereco()
Bloco de código | ||||
---|---|---|---|---|
| ||||
INPUT BY NAME mr_dados_tela2b.des_endereco,
mr_dados_tela2b.cod_barras_sku WITHOUT DEFAULTS |
Toda validação do SKU é efetuada na função sup2067_verifica_sku().
6) Função sup2067_seleciona_sku()
Bloco de código | ||||
---|---|---|---|---|
| ||||
INPUT BY NAME mr_dados_tela_sku.cod_barras_sku WITHOUT DEFAULTS |
No AFTER FIELD cod_barras_sku se o teste de sql do select da tabela wms_item_sku_cod_barras for diferente de 0 (zero) deverá validar se a etiqueta
informainformada é uma GS1. Sendo,
e sendo,deverá resgatar o código de barras, o item e a quantidade de itens do
skuSKU.
Se o SKU for
validoválido deverá
utilizautilizá-lo para validar o item, com o mesmo select atual.
Se o código de barras do
skuSKU não vier na etiqueta GS1, deverá verificar se o item e a quantidade item veio informada
,; se vieram, deverá buscar o código de barras do SKU conforme item 1.
Função sup2067_entrada_dimensionais()
7) Função
sup2067_entrada_dimensionais()
INPUT ARRAY ma_dimensional WITHOUT DEFAULTS FROM sr_dimensional.*.
Se estiver fazendo o Input com o campo 'cod_gs1' deverá alterar a regra do
inpunt input para prever a leitura de uma etiqueta GS1-128.
Se for informado algum valor para este campo No after field deverá efetuar a decodificação do GS1-128 e tentar resgatar os valores dos dimensionais do item
. Se no campo .
Os valores resgatados deverão ser exibidos em tela e não poderão ser alterados. Apenas os valores não resgatados do GS1 poderão ser informados.
Se no array não existir o campo 'cod_gs1', antes da abertura da tela sup20673, deverá verificar se no input do código de barras do SKU foi informada um etiqueta GS1-128. Caso tenha sido informada deverá
verificar quais resgatar os
dimensionais controlados para o item/sku em processamento, os dimensionais controlados pelo item estão armazenados no array ma_dimensional_aux[ind].campo (processado na função valores dos dimensionais informados.
- Se o Input estiver sendo efetuado com "qtd_saldo" (lógica no final da função (sup2067_solicita_info_adicional
()).Deverá ser efetuado um controle na função para verificar se todos os dimensionais requisitadas obtiveram retornos válidos. Se - ), se todos os retornos forem válidos
, deverá - deverá posicionar no campo quantidade; caso contrário, deve ser efetuado o processamento das informações sem a abertura da tela de entrada de dimensionais, seguindo as validações que
já constam - Constam na sup2067_valida_dimensional() controlando para que
não sejam executados os displays de tela.- não sejam executados os displays de tela.
Se faltou alguma informação de dimensional, deverá ser feita a abertura da tela e o input array, porém trazendo preenchido os valores retornados da leitura da etiqueta GS1. Neste caso, poderão ser informados apenas os valores não validados na etiqueta, devendo ser efetuado um controle no input para que as informações resgatadas não sejam alteradas.
Para cada dimensional identificado deverá realizar a função wmr130_get conforme tabela abaixo:
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 |
Branco " "
_numero_serie() | Branco " " |
Informações | ||
---|---|---|
| ||
Como forma de padronizar as rotinas que envolvem a utilização de etiquetas GS1-128, foi adicionado atalho para executar o teste de leitura de etiquetas. Nas telas nas quais é efetuada a entrada da etiqueta será habilitada a tecla Ctrl-J Teste GS1. |
Impressão Etiqueta
Impressão etiquetaItem/SKU
WMS6770 - Atualização dos
registros padrõesRegistros Padrões
Alterar a rotina de processamento dos registros
padrõespadrão da etiqueta
tipo 12 "ITEMtipo 12 Item/SKU
" para, para que sejam gravados os atributos correspondentes da etiqueta padrão GS1-128. Atributos assinalados como Novo na tabela abaixo.
Observação:
Obs:Os atributos
padrõespadrão de geração de etiquetas são gravados na tabela wms_atributo_tip_etiq
;. Não foi utilizada a mesma nomenclatura do cadastro de configurações do GS1-128 devido
oao nome do atributo ser restrito a 10 caracteres na tabela wms_atributo_tip_etiq
;.
O tamanho dos atributos abaixo são baseados no Encarte GS1-128.
Atributo | Descrição | Tipo1 | Tamanho | Atual | Novo |
---|---|---|---|---|---|
CNPJ_DEPOS | CNPJ DO DEPOSITANTE | C | 19 | X | |
CODBARRA1 | CODIGO DE BARRAS 1 | C | 128 | X | |
CODBARRA2 | CODIGO DE BARRAS 2 | C | 128 | X | |
CODBARRA3 | CODIGO DE BARRAS 3 | C | 128 | X | |
DEPOSITCOD | CODIGO DO DEPOSITANTE | C | 15 | X | |
DEPOSITDES | DESCRICAO DO DEPOSITANTE | C | 50 | X | |
IE_DEPOS |
INSCRICAO ESTADUAL DO DEPOSITANTE | C | 16 | X | ||
ITDESREDZ | DESCRICAO REDUZIDA DO ITEM | C | 18 | X | |
ITEMCOD | CODIGO DO ITEM | C | 15 | X | |
ITEMDEPOS | CODIGO DO ITEM DEPOSITANTE | C | 25 | X | |
ITEMDES | DESCRICAO DO ITEM | C | 76 | X | |
PAISORIGIT | PAIS ORIGEM DO ITEM | C | 60 | X | |
PESOUNIT | PESO UNITARIO | N | 15 | X | |
SKUCOD | CODIGO DO SKU | C | 25 | X | |
SKUDES | DESCRICAO DO SKU | C | 76 | X | |
SKUDESREDZ | DESCRICAO REDUZIDA DO SKU | C | 18 | X | |
QTDITEMSKU | QUANTIDADE ITENS SKU | N | 8 | X | |
QTDSKU | QUANTIDADE SKUS | N | 8 | X | |
TIPESTOQ | TIPO ESTOQUE | C | 6 | X | |
RESTESTOQ | RESTRICAO ESTOQUE | C | 6 | X | |
LOTEITEM | LOTE DO ITEM | C | 15 | X | |
DTPRODUCAO | DATA DE PRODUCAO DO ITEM | D | 6 | X | |
DTVALIDADE | DATA DE VALIDADE DO ITEM | D | 6 | X | |
VOLUME | VOLUME DO ITEM | N | 6 | X | |
COMPRIMENT | COMPRIMENTO DO ITEM | N | 6 | X | |
LARGURA | LARGURA DO ITEM | N | 6 | X | |
DIAMETRO | DIAMETRO DO ITEM | N | 6 | X | |
NUMPECA | NUMERO PECA DO ITEM | C | 20 | X | |
NUMSERIE | NUMERO SERIE DO ITEM | C | 20 | X | |
LIVRE_01 | CAMPO TEXTO LIVRE | C | 30 | X | |
LIVRE_02 | CAMPO TEXTO LIVRE | C | 30 | X | |
LIVRE_03 | CAMPO TEXTO LIVRE | C | 30 | X | |
LIVRE_04 | CAMPO TEXTO LIVRE | C | 30 | X | |
LIVRE_05 | CAMPO TEXTO LIVRE | C | 30 | X | |
LIVRE_06 | CAMPO NUMERICO LIVRE | N | 18 | X | |
LIVRE_07 | CAMPO NUMERICO LIVRE | N | 18 | X | |
LIVRE_08 | CAMPO NUMERICO LIVRE | N | 18 | X | |
LIVRE_09 | CAMPO NUMERICO LIVRE | N | 18 | X | |
LIVRE_10 | CAMPO NUMERICO LIVRE | N | 18 | X |
Legenda: C - Char; D - Date; N - Numérico
WMS6082 - Modelos Etiquetas
Exemplo de cadastro de modelo Modelo de etiqueta Etiqueta para o tipo de impressora Intermec EasyCoder Padrão IPL com protocolo <STX><ETX>.
Bloco de código | ||||
---|---|---|---|---|
| ||||
<STX><ESC>c1<ETX> <STX><ESC>k<ETX> <STX><SI>L709<ETX> <STX><SI>S50<ETX> <STX><SI>d0<ETX> <STX><SI>h0,0;<ETX> <STX><SI>l8<ETX> <STX><SI>I10<ETX> <STX><SI>F20<ETX> <STX><SI>D0<ETX> <STX><SI>T1<ETX> <STX><SI>t0<ETX> <STX><SI>g1,567<ETX> <STX><SI>J0,0,0<ETX> <STX><ESC>P<ETX> <STX>E*;F*;<ETX> <STX>L1;<ETX> <STX>D0;<ETX> <STX>H0;o3226,89;f3;c25;h23;w25;d3,Depositante:;<ETX> <STX>D1;<ETX> <STX>H1;o3225,486;f3;c25;h23;w25;d3,[DEPOSITDES];<ETX> <STX>H2;o3146,94;f3;c25;h23;w25;d3,Item:;<ETX> <STX>H3;o3148,484;f3;c25;h23;w25;d3,[ITDESREDZ];<ETX> <STX>H4;o3071,92;f3;c25;h23;w25;d3,SKU:;<ETX> <STX>H5;o3074,486;f3;c25;h23;w25;d3,[SKUDESREDZ];<ETX> ### A linha abaixo corresponde a impressão do código de barras <STX>B6;o2916,344;f3;c6,0,0,3;h142;w2;r0;i0;d3,<SUB><SUB>101[ITEMDEPOS]<SUB><SUB>B10[LOTEITEM]<SUB><SUB>1<SUB><SUB>C11[DTPRODUCAO];<ETX> ### A linha abaixo corresponde a impressão da linha humano legível. <STX>H7;o2767,435;f3;c2;h1;w1;d3,(01)[ITEMDEPOS](10)[LOTEITEM](11)[DTPRODUCAO];<ETX> <STX>R<ETX> <STX><ESC>E*<CAN><ETX> <STX><RS>1<US>1<ETB><ETX> |
O cadastro de modelos de etiquetas GS1-128 seguirá o padrão atual, exceto quando houver algum atributo [LIVRE_] que deverá executar a lógica a seguir:
- Durante a inclusão ou modificação de comandos de impressão deverá verificar se o atributo utilizado é um dos atributos livres a serem utilizados na impressão de etiquetas GS1-128.
- Caso seja, deverá abrir a tela do protótipo
- Protótipo 1, onde
- na qual deverá ser feito
- efetuado o cadastro da descrição do atributo. Essa
- Esta descrição será utilizada para exibição no WMS6340, na entrada dos atributos complementares da etiqueta.
- A descrição do atributo será gravada na tabela wms_atrib_livre_desc, onde:
- empresa = p_cod_empresa
; - .
- modelo_etiq = modelo etiqueta informado na tela principal
;- .
- atributo = atributo informado na tela principal
;- .
- des_atributo = descrição do atributo informado na tela de descrição do atributo.
- Antes de incluir um novo registro deverá sempre fazer
- efetuar delete para que não fiquem
- permaneçam registros inconsistentes.
- Ao abrir a nova tela deverá fazer um select na tabela wms_atrib_livre_desc para exibir o valor anterior do atributo, caso esteja sendo efetuada uma alteração de registro.
- Efetuar o controle na exclusão do modelo para que os registros da tabela wms_atrib_livre_desc sejam excluídos.
WMS6340 - Geração
EtitquetasEtiqueta Item/SKU (manter apenas o WMS6340, retirar WMS6334 do menu)
Alterar a rotina de impressão de etiquetas para que sejam solicitados em tela os valores para os atributos correspondentes da configuração da etiqueta GS1-128.
EssasEstas informações serão solicitadas quando no cadastro do
modeloModelo de
etiquetaEtiqueta constar algum atributo correspondente.
Após a confirmação do processamento, deverá chamar a função wms6340_controle_informacoes_complementares(), onde:
- Deverá verificar se existem atributos complementares cadastrados para o modelo de etiqueta buscando das tabelas wms_atributo_tip_etiq, wms_modelo_etiq, e wms_comando_impressao_etiq.
- Se o atributo constar na tabela de novos atributos criados no item do WMS6770, deve abrir a tela de input. Nesta função deverá buscar o atributo e descrição do atributo ,
- ; se o atributo for um dos campos livre_ deve buscar a descrição da tabela wms_atrib_livre_desc.
- Abrir a tela do protótipo WMS6340, que deverá conter
- na qual deverão constar as ações Informar, Confirmar e Cancelar. Porém, na abertura da tela deverá vir com
- apresentar a opção informar
- Informar automaticamente.
- Os campos poderão receber valor nulo ou branco, porém, deverão respeitar o tamanho máximo indicado na tabela acima.
- Os campos numéricos, exceto QTDITEMSKU e QTDSKU, deverão ser formatados com zeros a esquerda.
- Os campos tipo data deverão buscar a máscara do cadastro do item, que pode variar em AAMMDD ou DDMMAA (por padrão GS1 o formato é AAMMDD)
- Ao confirmar ou cancelar a entrada dos atributos deve retornar para a tela principal e continuar a impressão.
A função wms6340_imprime_etiquetas() deverá ser alterada para fazer a chamada da função wmsr12_insert_tab_temp_tt_atributo_etiq(), passando os valores gravados no array de informações complementares.
Protótipos de
telasTelas
WMS6082 -
complementoComplemento
Somente o campo
"Descrição atributo
" poderápoderá ser manutenido.
Os demais campos deverão exibir os valores correspondentes da tela principal.
WMS6340
Fluxo do Processo
Inventário com contagem por SKU (endereço possui saldo do SKU) .
- Seleção da atividade via lista pública/particular => Informa endereço contagem => Informa EAN/SKU ou GS1-128 => Informa Quantidade SKU.
Inventário com contagem por SKU (SKU não possui estoque no endereço e tem controle de dimensionais).
Observação: Quando a forma de contagem configurada é por SKU e , se o SKU possui saldo no endereço sendo inventariado, não são solicitados os dimensionais.
- Seleção da atividade via lista pública/particular => Informa endereço contagem => Informa EAN/SKU ou GS1-128 => Informa Palete e Estoque => Informa Cód. Barras SKU ou GS1-128 => Informa Quantidade SKU.
Inventário com contagem por identificação de estoque (identificação que não existe no endereço).
- Seleção da atividade via lista pública/particular => Informa endereço contagem => Informa Etiqueta Estoque => Informa Palete e Estoque => Informa Cód. Barras SKU ou GS1-128 => Informa Quantidade SKU .
Inventário com contagem por identificação de estoque (identificação que existe no endereço para o sistema).
- Seleção da atividade via lista pública/particular => Informa endereço contagem => Informa Etiqueta Estoque => Informa Dimensionais => Informa Quantidade SKU.
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|