Páginas filhas
  • Cadastro Regra Geração de Lista de Separação - WMS6915


CONTEÚDO

01. VISÃO GERAL

Essa rotina permite cadastrar as instruções SQL ou as funções 4GL, as quais serão utilizadas para a geração de listas de separação, no momento da geração da onda.

Nessa rotina também existe uma funcionalidade que permite gerar as listas de separação seguindo as regras cadastradas que estejam com a situação igual a Ativo. Neste caso, 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.

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 a seguir:

{{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:

{quote}{{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 = '32'}}
{{ 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}}
{quote}

  • 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:

{quote}{{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 = '32'}}
{{ 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), caso exista alguma regra ativa e relacionada a qualquer depositante será questionado ao usuário se deseja visualizar o resultado do processamento.

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

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 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).

02. TELA CADASTRO REGRA DE GERAÇÃO DE LISTA DE SEPARAÇÃO

Outras Ações / Ações Relacionadas

As ações padrão do menu estão detalhadas na página Ambientação Logix.

AçãoDescrição
Validar

Permite efetuar a validação dos SQL gerados.

Relaciona

Permite relacionar as regras com os depositantes, as quais serão executadas na geração da onda.

Principais Campos e Parâmetros

CampoDescrição
Regra

Código da regra cadastrada.

O depositante pode ter uma ou mais regras para executar no processamento da onda.

Nome

Identificação da regra cadastrada.

Descrição

Descrição detalhada da regra.

Tipo

Tipo da regra:

  • Padrão
  • Específico
Formato

Formato da regra:

  • SQL
  • Função (4GL)
Situação

Situação da regra:

  • Ativo: a regra foi validada e pode ser utilizada pelo sistema.
  • Bloqueado: a regra ainda não foi validada, portanto, não pode ser utilizada.

03. TELA CADASTRO REGRA DE GERAÇÃO DE LISTA DE SEPARAÇÃO - ABA 1 - SQL

Visão Geral

Essa aba permite incluir ou manutenir os SQL que devem ser utilizados na geração das listas de separação, sendo que ela está estruturada da seguinte forma:.

  • SQL Criação tabela temporária
  • SQL Preparação dos dados
  • SQL Criação de listas

  Exemplo

Criação de lista de separação efetuando quebra por funcionalidade e coordenada 1 de endereço.

1 - Em uma onda separação com 50 endereços diferentes (movimentos), onde 10 endereços são de picking e 40 endereços de armazém

2 - 10 endereços de picking, onde tenho 5 movimentos para cada coordenada 1 (tabela.campo wms_endereco.coorden_1):
   - 5 movimentos RUA A
   - 5 movimentos RUA D

3 - 40 endereços de armazém, onde tenho 10 movimentos para cada coordenada 1 (tabela.campo wms_endereco.coorden_1):
   - 10 movimentos RUA F
   - 10 movimentos RUA G
   - 10 movimentos RUA H
   - 10 movimentos RUA K

4 - Neste exemplo a regra deverá quebra em 2 listas de funcionalidade picking e 4 listas para endereços de armazém, num total de 5 listas.

Para viabilizar este processo, deverão ser criadas duas regras no cadastro.

SQL para regra 1 (picking):

{quote}{{SELECT DENSE_RANK() OVER (ORDER BY wms_endereco.coorden_1),}}
{{ listas.processo_moviment,}}
{{ ender.coorden_1}}
{{ FROM tt_gera_lista_auto listas}}
{{ INNER JOIN wms_processo_moviment mov}}
{{ ON mov.empresa = listas.empresa}}
{{ AND mov.processo_moviment = listas.processo_moviment}}
{{ INNER JOIN wms_endereco ender}}
{{ ON ender.empresa = mov.empresa}}
{{ AND ender.endereco = mov.endereco_origem}}
{{ AND ender.funcao = 4}}
{quote}

SQL para regra 2 (armazém):

{quote}{{SELECT DENSE_RANK() OVER (ORDER BY wms_endereco.coorden_1),}}
{{ listas.processo_moviment,}}
{{ ender.coorden_1}}
{{ FROM tt_gera_lista_auto listas}}
{{ INNER JOIN wms_processo_moviment mov}}
{{ ON mov.empresa = listas.empresa}}
{{ AND mov.processo_moviment = listas.processo_moviment}}
{{ INNER JOIN wms_endereco ender}}
{{ ON ender.empresa = mov.empresa}}
{{ AND ender.endereco = mov.endereco_origem}}
{{ AND ender.funcao = 3}}
{quote}

Deve-se ainda, relacionar as duas regras ao depositante, o que deverá ser efetuado por meio da opção Relaciona.

  • SQL Finalização

04. TELA CADASTRO REGRA DE GERAÇÃO DE LISTA DE SEPARAÇÃO - ABA 2 - FUNÇÃO

Visão Geral

Essa aba permite incluir ou manutenir as funções (4GL) que devem ser utilizadas na geração das listas de separação.

05. TABELAS UTILIZADAS

Não se aplica.

06. ASSUNTOS RELACIONADOS