Páginas filhas
  • ER_PCREQ-6068_Permitir_Filtrar_e_Ordenar_Movimentos_de_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.                                                             

  

Permitir filtrar e ordenar movimentos de separação

Informações Gerais

 

Especificação

Produto

Logix

Módulo

Wms

Segmento Executor

Distribuição e Logistica

Projeto1

IRM1

Requisito1

Subtarefa1

PDRDL-7733

Chamado2

 

Release de Entrega Planejada

12.1.11

Réplica

Sim

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 ao operador filtrar e ordenar os movimentos de separação, proporcionando maior agilidade na operação.

 

 Será criada uma opção para filtrar os movimentos, onde estarão disponíveis para filtro os campos: Código de barras do endereço, coordenada 1, coordenada2, coordenada3, coordenada4. 

Durante o processo de separação o usuário terá a opção de indicar o endereço mais próximo em que ele se encontra, para então filtrar os movimentos de separação associados a uma das coordenadas escolhidas (Bloco, Rua, Coluna, Andar, etc) através de uma nova função "Filtrar"

Além disso, o usuário, também terá a opção "Ordenar" para escolher a ordem de exibição dos movimentos, utilizando informações como Coordenadas do endereço, código de barras do endereço e código do produto podendo efetuar a ordenação de forma ascendente ou descendente.

Regra 1 – Funcionamento padrão:

  1. Ao selecionar a lista de separação o usuário deverá ter uma opção para filtrar os endereços. Opção F9
  2. Ao acionar a nova funcionalidade, o usuário deverá bipar o endereço onde ele se encontra fisicamente.
  3. O programa irá verificar o novo parâmetro wms_maior_coord_filt_sep, para saber a partir de qual coordenada deve verificar onde o operador se encontra.
  4. Digamos que o novo parâmetro está marcado com a coordenada 2 para a maior coordenada a filtrar.
  5. Primeiro o operador deverá bipar o endereço onde ele se encontra.
  6. Então o operador bipou o endereço 32, cujas coordenadas são coord_1 = “1” coord_2 = “A” coord_3 = “8” coord_4 = 1, então como está parametrizado para maior coordenada do filtro ser a 2, deverá montar 2 Selects na tabela wms_endereco filtrando pelas coordenadas desse endereço bipado, ou seja no filtro do select ficaria assim: where coord_1 = “1” and coord_2 = “A”.
  7. O primeiro select deve buscar o código de barras do endereço Máximo com esses filtros, e comparar para saber se o endereço encontrado no select é o mesmo bipado, se for igual, quer dizer que ele está no final, então a ordenação dos movimentos da lista deverá ocorrer de forma decrescente para que ele possa voltar. Gravar uma variável informando que é o endereço máximo.
  8. Caso não seja o Maximo, montar um select similar porém buscando o endereço Minimo.
  9. Caso seja o mínimo quer dizer que está no começo, então deverá ordenar de forma ascendente. Gravar uma variável também.
  10. No order by do select dos movimentos de separação deverá ver qual das duas variáveis está preenchida e verificar o parâmetro wms_maior_coord_filt_sep,  para saber onde aplicar o order by.
  11. No exemplo acima, está marcado coordenada 2, então no order by, na coordenada 2, deverá incluir ASC ou DESC de acordo com os selects de máximo ou mínimo.
  12. Caso não seja nenhum dos dois, manter o order by padrão do programa: coorden_1, coorden_2, coorden_3, coorden_4, e não aplicar nenhum tipo de filtro.
  13. Após criar a regra de ordenação, deverá verificar se no wms6499 foi marcado algum filtro. As coordenadas marcadas no wms6499 deverão ser aplicadas no select e gravadas em uma variável modular. Para fazer isso, buscar na tabela wms_filtro_coletor_atributo onde wms_filtro_coletor_atributo.rotina = ‘wms6214’ AND wms_filtro_coletor_atributo.mostra_filtro = 'S'. E Montar um where_clause das coordenadas marcadas, de acordo com as coordenadas do endereço bipado.
  14. Caso no wms6499 esteja parametrizado que deve filtrar pela coordenada 1 e coordenada 2. Então deverá montar um  where_clause encima da coordenada 1 e 2 do endereço bipado, assim como é feito o filtro dos select max e min.
  15. Caso o usuário queira fazer uma ordenação diferente das regras selecionadas acima, então ele deve acionar a nova opção F6F11 – Ordenação dos movimentos.
  16. Nessa nova tela ele pode informar qual a ordenação que ele quer usar, assim irá ignorar a regra de MAX/MIN.
  17. Então acionando a função F6F11, ele pode marcar que quer ordenar sempre, coorden_1 Asc, coorden_2 Asc, Coorden_3 Des, coorden_4 Asc.
  18. Ao informar essa nova ordenação, esses parâmetros deverão ser gravados na tabela wms_parametro_usuario, assim irá sempre ordenar dessa forma. A partir do momento que acionou essa nova função, não deverá mais fazer as validações de MAX/MIN e sempre respeitar essa ordenação informada.
  19. Assim deverá ler novamente os movimentos à serem separados aplicando os filtros e o order by.
  20. Ao terminar de separar os movimentos filtrados, deverá novamente ler a lista de separação, zerando a variável que guarda o where_clause do wms6499

 

Regra 2

  1. Caso o operador chame a função do filtro, e não informe nenhum endereço e confirme.
  2. Verificar a tabela wms_parametro_usuario se ele tem alguma ordenação e aplica-la no select, sem filtros.

 

Regra 3 – Nenhum filtro informado no wms6499:

Caso não haja nenhum filtro informado e marcado no wms6499 para o programa wms6214, ao acionar a opção F9, deverá gerar a seguinte mensagem: “Não há filtros parametrizados, favor verificar o programa wms6499”.

 

Alterações nos programas:

Wms6214:

       Na função wms6214_exibe_array_movimentos disponibilizar duas novas opções F9/Ctrl-F - Filtrar e F6F11/Ctrl-D - Ordenar.

  • Função F9/Ctrl-F Filtrar:

1 – Abrir uma nova tela conforme protótipo 1, onde o operador deverá ler o código de barras do endereço.

2 – Essa nova tela deverá ter duas opções: “Enter/Esc – Confirmar, Ctrl-c Cancelar”

3 - Após confirmar, deverá verificar se foi informado algum endereço, e alimentar a variável m_endereco_filtro.

4 – Chamar a nova função wms6214_monta_filtros_movimentos para montar um where_clause_filtro.

A nova função deverá funcionar da seguinte maneira:

a)     Verificar se a variável m_endereco_filtro foi informada, caso não foi informada, limpar a variável m_where_clause_end e chamar wms6214_exibe_array_movimentos.

b)    Caso a variável m_endereco_filtro estiver preenchida, buscar na tabela wms_endereco as coordenadas do endereço pelo código de barras informado.

c)     Verificar novo parametro " wms_maior_coord_filt_sep", até qual coordenada deverá fazer o filtro, digamos que no parâmetro está até a coordenada 2, então alimentar variável m_where_clause_end e incluir coord 1 e coord 2. Exemplo: Vamos dizer que o operador bipou um código de barras '1234', com esse código você deverá ler a tabela WMS_ENDERECO onde o código de barras (e não o código do endereço) seja "1234" vamos dizer que você encontrou o endereço de código "9988", que tem as coordenadas 1='A' e coodernada 2= '1' e está parametrizado para filtrar até a coordenada 2.

d)    Então deve chamar novamente a função wms6214_exibe_array_movimentos para atualizar a lista de movimentos.

e)     Então deve chamar novamente a função wms6214_exibe_array_movimentos para atualizar a lista de movimentos.

 

Caso acione a tela de filtro, e não bipe um endereço, então terá que trazer todos os endereços, sem buscar max, min,

  • Função F6F11/Ctrl-D Ordenar

1 - Abrir o nova tela wms62148.per onde o usuário poderá selecionar a ordem em que os movimentos serão apresentados. Esta tela deverá conter uma grid com 3 campos, conforme protótipo 1.

Na grid os três campos são: 1-Código 2-Descrição 3-Forma ordenação. Somente o primeiro e o terceiro campo estarão disponíveis para edição.

 O campo código, deverá conter um zoom com as opções das coordenadas 1 a coordenada 4 e de Item. Para buscar as coordenadas do zoom, criar nova função wms6214_busca_desc_coordenadas_zoom(). Dentro da função utilizar:

a - CALL log2250_busca_parametro(mr_wms_tela.empresa,'des_coorden_1')
RETURNING l_des_coorden_1, l_status 

b - CALL log2250_busca_parametro(mr_wms_tela.empresa,'des_coorden_2')
RETURNING l_des_coorden_2, l_status 

c - CALL log2250_busca_parametro(mr_wms_tela.empresa,'des_coorden_3')
RETURNING l_des_coorden_3, l_status 

d - CALL log2250_busca_parametro(mr_wms_tela.empresa,'des_coorden_4')
RETURNING l_des_coorden_4, l_status 

2 - O Campo Forma ordenação deverá conter duas opções: 1-Ascendente 2-Descendente.

3 - Não deverá permitir duplicar os campos.

4 - A sequência de ordenação será conforme a ordem selecionada na grid.

5 – Buscar na tabela wms_parametro_usuario, filtrando pela empresa =p_cod_empresa, usuário =p_user e (parâmetro =’coordenada_1’ or parâmetro=’coordenada_2’ or parâmetro=’coordenada_3’ or parâmetro = ‘coordenada_4’). Caso encontre algum registro ordenar os campos na grid conforme o campo sequencia_parametro, e a forma de ordenação conforme o campo val_parametro. Caso não encontre registros, trazer como padrão a ordenação coorde_1, coorde_2, coorde_3, coorde_4, todos com a forma de ordenação “A”.

6 - Esse novo programa deverá alimentar variáveis modulares que serão lidas dentro do wms6214 no cursor CQ_LISTA_MOVTOS antes de fazer o PREPARE para poder ordenar conforme informado.

7 - Os parâmetros de ordenação devem ser gravados na tabela wms_parametro_usuario, sendo que deverão ser gravados 4 registros. Os campos empresa, usuário e rotina deverão receber as variáveis p_cod_empresa, p_user, ‘6214’ para todos os 4 registros. Já o campo parâmetro devera receber, coordenada_1, coordenada_2, coordenada_3, coordenada_4. O campo sequencia_parametro deverá receber a sequência de ordenação e o campo val_parametro, a forma de ordenação sendo “A” ou “D”.

8 - Após sair da tela de filtros deve chamar novamente a função wms6214_exibe_array_movimentos para atualizar a lista de movimentos.

 

Alteração na função wms6214_carrega_movimentos_lista.

Dentro da função wms6214_carrega_movimentos_lista, no cursor cq_lista_movtos verificar as variáveis  m_where_clause, e  m_where_clause_end, caso estejam preenchidas, incluir no where do cursor.

Também deve ser verificada as variáveis modulares de ordenação, e incluir no order by do cursor CQ_LISTA_MOVTOS caso estejam preenchidas. Caso contrário, deixar o order by como está.

Ao confirmar e voltar pra tela de movimentos, deverá atualizar a lista, ordenando conforme parametrizado. 

 

Wms6499 - Filtros genéricos

Na função wms6499_verifica_atributos antes do END FUNCTION, incluir INSERT para novos atributos conforme abaixo:

INSERT INTO wms_filtro_coletor_atributo (rotina, atributo, mostra_filtro, tabela_atributo, tip_dado, tamanho, descricao_exibicao, legenda, obrigatorio, val_inicial, considera_parcial, validacao)
VALUES ('WMS6214','COORDEN_1','N','WMS_ENDERECO','C','4','Coorden 1',null,'N',null,'N',null)

INSERT INTO wms_filtro_coletor_atributo (rotina, atributo, mostra_filtro, tabela_atributo, tip_dado, tamanho, descricao_exibicao, legenda, obrigatorio, val_inicial, considera_parcial, validacao)
VALUES ('WMS6214','COORDEN_2','N','WMS_ENDERECO','C','4','Coorden 2',null,'N',null,'N',null)

INSERT INTO wms_filtro_coletor_atributo (rotina, atributo, mostra_filtro, tabela_atributo, tip_dado, tamanho, descricao_exibicao, legenda, obrigatorio, val_inicial, considera_parcial, validacao)
VALUES ('WMS6214','COORDEN_3','N','WMS_ENDERECO','N','5','Coorden 3',null,'N',null,'N',null)

INSERT INTO wms_filtro_coletor_atributo (rotina, atributo, mostra_filtro, tabela_atributo, tip_dado, tamanho, descricao_exibicao, legenda, obrigatorio, val_inicial, considera_parcial, validacao)VALUES ('WMS6214','COORDEN_4','N','WMS_ENDERECO','N','5','Coorden 4',null,'N',null,'N',null)

LOG00086 - Parâmetros

  • Criar novo parâmetro no sistema:
    • Conversor: wms00524.cnv (fazer checkin deste conversor no projeto/tarefa):
  • Parâmetro:
    • Códigowms_maior_coord_filt_sep
    • Descrição: "Maior coordenada para filtro de movimentos para separação"
    • Área: 9 - LOGIX WMS
    • Sistema: 407 - LOGIX WMS
    • Rotina: 292
    • Tipo conteúdo: N - Numérico
    • Permitir nulo?: S
    • Case sensitive: NULL
      • Auto-incremento: N
      • Situação: A – Ativo
      • Efetuar replicação: N
      • Replicação opcional: N
      • Cliente: 105 – TOTVS
      • Valor padrão: 2
      • Comentário rodapé: NULL
      • Help: Após acionar o Filtrar na separação(wms6214), o programa irá verificar o novo parâmetro para saber a maior coordenada que deve utilizar para o filtro dos movimentos para separação.

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

wms6214

[Alteração]

  

wms6499

[Alteração]

 

 

 

Protótipo de Tela

 Protótipo 1

 

 

 

 

 

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