Páginas filhas
  • DT Implementações Para a Quebra de Listas de Separação

IMPLEMENTAÇÕES PARA A QUEBRA DE LISTAS DE SEPARAÇÃO

Características do Requisito

Linha de Produto:

Logix

Segmento:

Supply Chain - Logística

Módulo:

WMS - Operador Logístico

Rotina:

Rotina

Nome Técnico

WMS60013 / WMS60017

Contrato - Expedição Plano / Onda

WMS6770Atualização de Registros Padrão do WMS
WMS6915

Cadastro de Regras Para Geração de Listas de Separação

Requisito/Story/Issue (informe o requisito relacionado):

DLOGWMSOL-1716 - Quebra de Listas de Separação

País(es):

Brasil

Banco(s) de Dados:

Oracle / SQL Server / Informix

Sistema(s) Operacional(is):

Windows / Linux


Implementações Realizadas

WMS60013 - Contrato / WMS60017 - Expedição - Plano / Onda

Efetuada a implementação do novo parâmetro Gera ondas / listas de separação em processo único, o qual permite configurar as seguintes opções:

    • Quando este parâmetro não for assinalado, a onda será gerada normalmente caso ocorra alguma inconsistência durante a geração das listas de separação.
    • Quando este parâmetro for assinalado, a onda não será  gerada se ocorrer alguma inconsistência durante a geração das listas de separação.

Este parâmetro se aplica apenas se houver regras cadastradas no WMS6915 (Cadastro de Regras para Geração de Listas de Separação), para algum depositante do plano para o qual está sendo gerada a onda de separação.

WMS6770 - Atualização de Registros Padrão WMS

Nesse programa foram implementadas duas novas opções na tela de Atualização de Registros Padrão do WMS:

    • Comandos de geração de listas de separação;
    • Funções de geração de listas de separação.

Ao atualizar os registros padrão com estas opções assinaladas serão geradas regras padrão de quebras de listas, sendo que estas poderão ser utilizadas no novo programa WMS6915 (Cadastro de Regras para Geração de Listas de Separação).

WMS6915 - Cadastro de Regras Para Geração de Listas de Separação

Desenvolvido o novo cadastro de regras para geração de listas de separação, no qual é possível registrar ou manutenir as instruções SQL ou a função 4GL, sendo que estas serão utilizadas para a geração de listas de separação no momento da geração da onda.

Além disso, ao clicar no botão Relaciona será possível relacionar as regras com os depositantes, as quais serão executadas na geração da onda.

Foi implementada também uma funcionalidade para gerar as listas de separação seguindo as regras cadastradas nesse programa, desde que a situação destas seja igual a Ativo.

Serão geradas listas automáticas para as movimentações de depositantes que tenham estas regras associadas, o que deverá ser efetuado por meio da opção Relaciona.

Se o depositante possuir mais de uma regra associada, a aplicação das mesmas ocorrerá conforme a sequência de execução indicada neste cadastro. Lembrando que caso o depositante tenha mais de uma regra cadastrada, a regra seguinte efetuará o geração de listas apenas de movimentos no qual a regra anterior não gerou.

Para obter informações dos processos de movimentação gerados na onda de separação deve-se utilizar a tabela temporária TT_GERA_LISTA_AUTO, que terá disponível os seguintes campos:

    • empresa: Código da empresa do processo de movimentação
    • processo_moviment: Número do processo de movimentação
    • plano_separacao: Número do plano de separação ao qual o movimento está relacionado
    • onda_separacao: Número da onda de separação ao qual o movimento está relacionado

Quando a regra for no formato SQL, o comando informado para a geração de listas deve resultar nas informações conforme padrão abaixo:

SELECT [agrupador],

       [processo movimentação],

        [<contador 1>],

        [<limitador 1>],

        [<contador 2>],

        [<limitador 2>],

        [<contador 3>]

        [<limitador 3>

   FROM ...

Onde:

    • O [agrupador] e o [processo movimentação] são informações obrigatórias.
    • Os contadores / limitadores são opcionais, porém, se informado um contador deve ser indicado também seu respectivo limitador.
    • Os limitadores podem ser utilizados para gerar uma quebra de lista dentro de um agrupador.
    • Por exemplo, podemos ter um agrupador diferente para cada funcionalidade do endereço de origem (armazém, picking, entre outros) e, além disso, quebrar as listas a cada 3 (três) movimentos. O SQL para estas condições permaneceria assim:

SELECT DENSE_RANK() OVER (ORDER BY wms_endereco.funcao),

           tt_gera_lista_auto.processo_moviment,

           1,

           3

  FROM tt_gera_lista_auto, 

            wms_processo_moviment, 

            wms_endereco

 WHERE tt_gera_lista_auto.empresa = <<empresa>>

       AND wms_processo_moviment.empresa = tt_gera_lista_auto.empresa

       AND wms_processo_moviment.processo_moviment = tt_gera_lista_auto.processo_moviment

      AND wms_endereco.empresa = wms_processo_moviment.empresa

      AND wms_endereco.endereco = wms_processo_moviment.endereco_origem

 ORDER BY wms_endereco.funcao

    • Outro exemplo, um agrupador diferente para cada coordenada 3 diferente do endereço de origem e, além disso, quebrar as listas a cada 1.5 metros cúbicos:

SELECT DENSE_RANK() OVER (ORDER BY wms_endereco.coorden_3),

       tt_gera_lista_auto.processo_moviment,

       (wms_processo_moviment.qtd_solicitada * wms_item_sku.volume_m3),

       1.5

  FROM tt_gera_lista_auto, 

       wms_processo_moviment, 

       wms_endereco,

       wms_item_sku

 WHERE tt_gera_lista_auto.empresa = <<empresa>>

    AND wms_processo_moviment.empresa = tt_gera_lista_auto.empresa

    AND wms_processo_moviment.processo_moviment = tt_gera_lista_auto.processo_moviment

    AND wms_endereco.empresa = wms_processo_moviment.empresa

    AND wms_endereco.endereco = wms_processo_moviment.endereco_origem

    AND wms_item_sku.empresa = wms_processo_moviment.empresa

    AND wms_item_sku.item = wms_processo_moviment.item

    AND wms_item_sku.sku = wms_processo_moviment.sku

 ORDER BY wms_endereco.coorden_3

{quote}

Quando utilizado um limitador, a somatória dos movimentos de uma lista não ultrapassará o limite estipulado, com exceção quando um único movimento já ultrapassar este limite. Neste caso, este movimento será único na lista gerada.

Estão disponíveis para uso quatro variáveis que podem ser referenciadas nos comandos SQL (com exceção do SQL de criação de tabela temporária):

    • [USUARIO]: Será substituído pelo código do usuário ativo que estiver realizando o processamento da onda de separação.
    • [DATA]: Data atual (formato DATE)
    • [HORA]: Hora atual
    • [DATA-HORA]: Data e hora atual (formato DATETIME)

Quando a regra for no formato Função, esta terá dois valores de retorno:

    • Status do processamento (TRUE ou FALSE);
    • String com o SQL para leitura dos movimentos e geração das listas.

Ao final do processamento da onda pela rotina WMS60001 (Preparação da Separação), se existir alguma regra ativa e relacionada a qualquer depositante será questionado se deve ser visualizado o resultado do processamento, conforme abaixo:

Caso afirmativo será exibido o resumo do processamento, no qual são apresentadas as listas de separação geradas com seus respectivos movimentos, bem como, os movimentos que não foram relacionados a uma lista, por não atenderem às condições indicadas nas regras.

Listas Geradas:

Movimentos Não Associados às Listas Geradas:

Quando a onda de separação for gerada automaticamente na inclusão da solicitação de carga (via importação de EDI/XML ou digitação) também serão geradas as listas de separação, se existirem regras cadastradas para o depositante.

Importante!

Se houver alguma regra ativa relacionada a qualquer depositante serão desconsiderados os parâmetros para a geração de lista automática configurados por empresa (LOG00087, parâmetro gera_lista_auto) ou por usuário (WMS60001, opção Parâmetros).


Procedimento para Implantação

Seguir o procedimento padrão de atualização do sistema pelo pacote de liberação da release 12.1.21.