Histórico da Página
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Permitir
filtrarFiltrar e
ordenar movimentosOrdenar Movimentos de
separaçãoSeparaçã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 ParametroParâmetro:
Um novo parâmetro foi criado no log0086 "wms_coord_filt_ord_sep", 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:
- Ao selecionar a lista de separação o usuário deverá ter uma opção para filtrar os endereços. Opção F9
- Ao acionar a nova funcionalidade, o usuário deverá bipar o endereço onde ele se encontra fisicamente.
- O programa irá verificar o novo parâmetro wms_maior_coord_filt_ord_sep, para saber quais as coordenadas deve utilizar para filtro e ordenação para então identificar onde o operador se encontra.
- Digamos que o novo parâmetro está marcado com a coordenada 2 para filtrar e ordenar.
- Primeiro o operador deverá bipar o endereço onde ele se encontra.
- 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 um Select 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”.
- Usando a próxima coordenada depois do parâmetro(no caso seria coordenada 3), o select deve buscar a coordenada 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 (coordenada_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.
- Caso não seja o Maximo, quer dizer que está no começo então ordenar como já é feito hoje em dia de forma ascendente.
- 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_ord_sep, para saber onde aplicar o order by e o filtro.
- 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.
- Caso não seja nenhum dos dois, manter o order by padrão do programa: coorden_1, coorden_2, coorden_3, coorden_4.
- 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_ord_sep, verificar até qual coordenada deverá ser aplicada o filtro, de acordo com as coordenadas do endereço bipado.
- 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.
- Nessa nova tela ele pode informar qual a ordenação que ele quer usar, assim irá ignorar a regra de MAX/MIN.
- 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.
- 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.
- Assim deverá ler novamente os movimentos à serem separados aplicando os filtros e o order by.
- 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, e trazendo todos os movimentos pendentes.
Regra 2
- Caso o operador chame a função do filtro, e não informe nenhum endereço e confirme.
- 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 coordernada 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ódigo: wms_coord_filt_ord_sep
- Descrição: "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. |
---|