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ão criadas 2 novas opções para filtrar e ordenar os movimentos:

1 - F11/ CTRL-D - Ordenação padrão: Ao acionar essa funcionalidade, o operador poderá escolher a ordem de exibição dos movimentos de forma ascendente ou decrescente.

2 - F9/ CTRL-T - Ordenação por posicionamento: Durante o processo de separação o usuário terá a opção de bipar o código de barras do endereço em que ele se encontra, para então filtrar os movimentos de separação associados ao endereço bipado.

Configuração do novo Parametro:

Um novo parâmetro foi criado no log0086 onde deve ser informado as coordenadas que devem ser utilizadas para efetuar filtros e ordenação nos movimentos de separação no wms6214. Nesse novo parâmetro o usuário poderá informar os seguintes valores:

  • "1" - Coordenada 1
  • "2" - Coordenada 2
  • "3" - Coordenada 3
  • "1;2" - Coordenada 1 e 2
  • "1;2;3" - Coordenada 1, 2 e 3
  • "1;3" - Coordenada 1 e 3
  • "2;3" - Coordenada 3

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 quais as coordenadas deve utilizar para filtro e ordenação para então identificar onde o operador se encontra.
  4. Digamos que o novo parâmetro está marcado com a coordenada 2 para filtrar e ordenar.
  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 coordenada do filtro ser a coordenada "2", deverá montar 2 Selects na tabela wms_endereco filtrando pelas coordenadas desse endereço bipado para saber a localização do operador nos endereços, ou seja no where_clause do select, adicionar a condição coord_2 = “A”.
  7. O primeiro select deve buscar o código de barras do endereço Máximo com esses filtros, sendo que deve pegar a próxima coordenada depois do parâmetro, então no exemplo o select deve ficar assim: Select Max (coodernada_3) from wms_endereco where empresa = "empresa" and coordenada_2= 'A', com o resultado comparar com a coordenada 3 para saber se é a mesma coordenada, caso for a mesma o operador está no último endereço dessas coordenadas, então no order by dos movimentos, incluir o "DESC" para trazer os endereços por ordem decrescente a partir da coordenada  3 que é a próxima depois da coordenada parametrizada (wms_maior_coord_filt_sep). 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 e o filtro.
  11. No exemplo acima, está marcado coordenada 2, então no where_clause deve incluir a coordenada 2 e no order by, a coordenada 3, (no order by sempre uma a mais da parametrizada para trazer corretamente os endereços), 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.
  13. Após efetuar todas as regras, deverá ser criado um filtro de acordo com o endereço bipado que indica a posição em que o operador se encontra, e através do parâmetro wms_maior_coord_filt_sep, verificar até qual coordenada deverá ser aplicada o filtro, de acordo com as coordenadas do endereço bipado.
  14. Caso o usuário queira fazer uma ordenação diferente das regras selecionadas acima, então ele deve acionar a nova opção F11 – Ordenação dos movimentos.
  15. Nessa nova tela ele pode informar qual a ordenação que ele quer usar, assim irá ignorar a regra de MAX/MIN.
  16. Então acionando a função F11, ele pode marcar que quer ordenar sempre, coorden_1 Asc, coorden_2 Asc, Coorden_3 Des, coorden_4 Asc.
  17. 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.
  18. Assim deverá ler novamente os movimentos à serem separados aplicando os filtros e o order by.
  19. 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.

 

Alterações nos programas:

Wms6214:

       Na função wms6214_exibe_array_movimentos disponibilizar novas opções: F9/Ctrl-T - Posicionar, F11/Ctrl-D - Ordenar e CTRL - F Filtrar

  • Função F9/Ctrl-T Posicionar:

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 F11/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 2.

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(p_cod_empresa,'des_coorden_1')
RETURNING l_des_coorden_1, l_status 

b - CALL log2250_busca_parametro(p_cod_empresa,'des_coorden_2')
RETURNING l_des_coorden_2, l_status 

c - CALL log2250_busca_parametro(p_cod_empresa,'des_coorden_3')
RETURNING l_des_coorden_3, l_status 

d - CALL log2250_busca_parametro(p_cod_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 =’coorden_1’ or parâmetro=’coorden_2’ or parâmetro=’coorden_3’ or parâmetro = ‘coorden_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.

 

CTRL-F - Filtrar

1 - Chamar a função wmsr78_filtro_generico('WMS6214', 'Separacao') RETURNING l_status, m_where_filtro_generico. Sendo que a variável where retornada deve ser utilizada na query cq_lista_movtos.

 

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. 

 

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_ord_sep
    • Descrição: "Maior coordenada para filtro de Coordenadas para filtrar e ordenar os 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 quais as coordenadas que devem ser utilizadas para filtrar e ordenar os movimentos para separação.

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

wms6214

[Alteração]

  

 

Protótipo de Tela

Protótipo 1

 Protótipo 2

 

 

 

 

 

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