Páginas filhas
  • ER LOGWMS01-710 ME 3.1 Separação Direta Para o Veículo BRA

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

  

Informações Gerais

 

Especificação

Produto

Logix

Módulo

WMS

Segmento Executor

Supply Chain - Inovação

Projeto1

LOGWMS01

IRM1

LOGWMS01-545

Requisito1

LOGWMS01-710

Subtarefa1

LOGWMS01-775

Chamado2

 

País

( x ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador (  ) USA  (  ) Colombia   (  ) Outro _____________.

   Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos). 

 

Objetivo

Possibilitar que o separador descarregue a mercadoria coletada diretamente no veículo eliminando, desta forma, a execução da conferência, pesagem e embarque da expedição.

 

Definição da Regra de Negócio

Na sequência será exibida a imagem do Mapa Mental utilizado como base para a definição deste processo:



 

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

WMSR132 - RNL para a separação direta para o veículo

[Criação]

-

 

-

WMS6214 - Separação via coletor de dados

[Alteração]

-

-

WMS6255 - Planejamento de embarque

[Alteração]

-

-

WMS6325 - Solicitação de carga

[Alteração]

-

-

WMS6302 - Emissão da lista de separação[Alteração]--
WMS60216 - Separação de SKU via papel[Alteração]--


Para atingir o resultado detalhado acima, as seguintes alterações de funções e programas serão necessárias:

WMSR132 - RNL Para a Separação Direta Para o Veículo

Função wmsr132_processa_conferencia_automatico()

  • Função responsável pelo o processamento automático da conferência de expedição.
  • Receberá: empresa, usuário, indicador descarga total, tipo de descarga, endereço do equipamento, código de barras do volume, processo de movimento, solicitação de carga e modo de exibição.
  • Retornará: status (TRUE ou FALSE).
  • Ao iniciar o processamento desta função, o sistema deverá executar o seguinte procedimento:
    1. Se a variável indicador descarga total for igual a TRUE:
      1. Se a variável tipo de descarga for igual a 1:
        1. Criar um novo cursor, que pesquise todas as solicitações de carga que estão localizados no endereço de equipamento.
        2. Dentro deste cursor, o sistema deverá finalizar o volumes criados para está solicitação de carga, da mesma forma como é efetuado na função wms6218_finaliza.
      2. Se a variável tipo de descarga for igual a 2:
        1. Criar um novo cursor, que pesquise todos os processos de movimento e solicitações de carga que estão localizados no endereço de equipamento.
        2. Dentro deste cursor, o sistema deverá verificar se a conferência deste depositante é com montagem de volumes manual. Se for, o sistema deverá criar um volume para cada solicitação de carga encontrada, da mesma forma como é efetuado na função wms6218_processa_quantidade_conferida. Caso a conferência seja com montagem de volumes automático, o sistema deverá efetuar a criação dos volumes conforme a parametrização do depositante, se basear na função wms6259_finaliza.
        3. Após efetuar a criação dos volumes, o sistema deverá finalizar as atividades de conferência, concluído os volumes gerados.
    2. Se a variável indicador descarga total for igual a FALSE:
      1. Se a variável tipo de descarga for igual a 1:
        1. O sistema deverá finalizar o volume que foi descarregado no veículo, utilizando como base a função wms6218_finaliza.
      2. Se a variável tipo de descarga for igual a 2:
        1. O sistema deverá verificar se a conferência deste depositante é com montagem de volumes manual. Se for, o sistema deverá criar um volume para cada solicitação de carga encontrada, da mesma forma como é efetuado na função wms6218_processa_quantidade_conferida. Caso a conferência seja com montagem de volumes automático, o sistema deverá efetuar a criação dos volumes conforme a parametrização do depositante, se basear na função wms6259_finaliza.

Função wmsr132_processa_pesagem_automatico()

  • Função responsável pelo processamento automático da pesagem da mercadoria.
  • Receberá: empresa, usuário, indicador descarga total, endereço do equipamento, código de barras do volume, processo de movimento, solicitação de carga e modo de exibição.
  • Retornará: status (TRUE ou FALSE).
  • Ao iniciar o processamento desta função, o sistema deverá executar o seguinte procedimento:
    1. Se a variável indicador descarga total for igual a TRUE:
      1. Criar um novo cursor, que pesquise todas as solicitações de carga e seus volumes, que estão localizados no endereço de equipamento.
      2. Dentro do cursor, a rotina deverá verificar se o depositante da solicitação de carga possui a etapa de pesagem:
        1. Se tiver, o sistema deverá calcular automaticamente o peso dos volumes, atualizando os valores nas tabelas, conforme a função: wms6222_processa_atualizacoes.
        2. Se não tiver pesagem, o sistema deverá dar continuidade no processamento do cursor.
    2. Se a variável indicador descarga total for igual a FALSE:
      1. O sistema deverá pesquisar qual a solicitação de carga do volume que será descarregada.
      2. Pela solicitação de carga, o sistema deverá verificar se o depositante possui a etapa de pesagem:
        1. Se tiver, o sistema deverá calcular automaticamente o peso do volume, atualizando os valores nas tabelas, conforme a função: wms6222_processa_atualizacoes.
        2. Se não tiver pesagem, o sistema deverá dar continuidade no processamento do cursor.
    3. Caso todas as mercadorias tenham sido conferidas para esta solicitação de carga, o sistema deverá finalizar as atividades de conferência da expedição.

Função wmsr132_processa_embarque_automatico()

  • Função responsável pelo o processamento automático do embarque da mercadoria.
  • Receberá: empresa, usuário, endereço destino, solicitação de carga e modo de exibição.
  • Retornará: status (TRUE ou FALSE).
  • Ao iniciar o processamento desta função, o sistema deverá executar o seguinte procedimento:
    1. Pelo endereço destino, o sistema deverá pesquisar qual o CESV e planejamento de embarque onde está sendo descarregada a mercadoria.
    2. Utilizando o número do planejamento de embarque, o sistema deverá realizar o embarque dos volumes que foram conferidos e pesados, da mesma forma como é efetuado na função wms6370_verifica_finaliza_embarque.
    3. Caso todas as mercadorias tenham sido embarcadas para este planejamento, o sistema deverá finalizar todas as suas atividades, permitindo que o usuário conclua a atividade de expedição do CESV.

Função wmsr132_processa_separacao_direta_veiculo()

  • Função responsável pelo processamento automático da separação direta para o veículo.
  • Receberá: empresa, usuário, indicador descarrega total (TRUE ou FALSE), tipo de descarga (1 - Volume ou 2 - Movimento), endereço destino, endereço do equipamento, código de barras do volume, processo de movimento, solicitação de carga e modo de exibição.
  • Retornará: status (TRUE ou FALSE).
  • Ao iniciar o processamento desta função, o sistema deverá executar o seguinte procedimento:
    1. Verificar se o endereço destino é um veículo. 
      1. Se não for um veículo, o sistema deverá retornar para a função origem, sem apresentar erros.
      2. Se for um veículo, o sistema deverá continuar o processamento.
    2. Realizar a chamada da função wmsr132_processa_conferencia_automatico, passando os seguintes parâmetros: empresa, usuário, indicador descarga total, tipo de descarga, endereço do equipamento, código de barras do volume, processo de movimento, solicitação de carga e modo de exibição. Caso o retorno seja falso, o sistema deverá exibir a mensagem e retornar à função origem.
    3. Realizar a chamada da função wmsr132_processa_pesagem_automatico, passando os seguintes parâmetros: empresa, usuário, indicador descarga total, endereço do equipamento, código de barras do volume, processo de movimento, solicitação de carga e modo de exibição. Caso o retorno seja falso, o sistema deverá exibir a mensagem e retornar à função origem.
    4. Realizar a chamada da função wmsr132_processa_embarque_automatico, passando os seguintes parâmetros: empresa, usuário, endereço destino, solicitação de carga e modo de exibição. Caso o retorno seja falso, o sistema deverá exibir a mensagem e retornar à função origem.
    5. Realizar a chamada da função wmsr44_exclui_processos_tipo_309, passando os seguintes parâmetros: empresa, solicitação de carga e modo de exibição. Caso o retorno seja falso, o sistema deverá exibir uma mensagem de alerta e retornar à função de origem.
    6. Após concluir todos os processamentos automáticos, o sistema deverá verificar para cada solicitação de carga, se todos os seus produtos foram separados. Caso esta etapa já tenha sido finalizada, o sistema deverá alterar a sua situação para Embarque finalizado.
    7. Atualizar o campo wms_solicitacao_carga_mestre.separacao_direta_veiculo com o valor S (Sim), para cada solicitação de carga processada.

Função wmsr132_valida_solicitacao_separacao_direta_veiculo()

  • Função responsável pela validação da solicitação de carga no processo de separação direta para o veículo.
  • Receberá: empresa, CESV, planejamento de embarque, solicitação de carga e modo de exibição.
  • Ao iniciar o processamento desta função, o sistema deverá executar o seguinte procedimento:
    1. Verificar se o parâmetro criado no LOG00086 está ativo:
      1. Se estiver ativo, obrigar que a solicitação de carga esteja relacionada ao planejamento de embarque informado.
      2. Se não estiver ativo, criar o relacionamento entre a solicitação de carga e o planejamento de embarque de forma automática. Verificar a rotina WMS6255.
    2. Verificar se a solicitação de carga já não teve inicio pelo o processo padrão do Logix WMS.
  • Caso alguma das validações seja falsa, o sistema deverá retornar falso, não permitindo separar a mercadoria direto para o veículo.

Função wmsr132_valida_placa_cracha_veiculo()

  • Função responsável pela validação da placa/crachá do veículo/CESV.
  • Receberá: empresa, endereço destino, endereço do equipamento, solicitação de carga e modo de exibição.
  • Retornará: status (TRUE ou FALSE) e endereço do veículo.
  • Criar um novo parâmetro no LOG00086, da seguinte forma:
    1. Descrição: Obrigar planejamento de embarque na separação direta para o veículo?

    2. Informação do parâmetro: Indica se será obrigatório possuir o relacionamento entre o planejamento de embarque e a solicitação de carga, na etapa de separação direta para o veículo.

    3. Valor padrão: N (Não).

    4. Valores: S (Sim) ou N (Não).

  • Ao iniciar o processamento desta função, o sistema deverá executar o seguinte procedimento:
    1. Verificar se o campo wms_solicitacao_carga_mestre.separacao_direta_veiculo (Campo novo), está igual a S (Sim):
      1. Se estiver, o sistema não deve permitir que o usuário informe o endereço destino planejado para a descarga.
      2. Se o campo estiver igual a N (Não), caso o endereço informado seja igual ao endereço destino planejado para a descarga, deverá ser efetuado o retorno para a função de origem.
    2. Verificar se existe algum crachá dentro do armazém, com o mesmo código do endereço destino. Utilizar a função wms6370_valida_cracha como base.
      1. Se o sistema encontrar um crachá deverá pesquisar qual o CESV deste motorista e executar o item 5.
      2. Caso o sistema não encontre um crachá, deverá ser executado o item 3.
    3. Verificar se existe alguma placa dentro do armazém, com o mesmo código do endereço destino. Utilizar a função wms6370_valida_placa_veiculo como base.
      1. Se o sistema encontrar uma placa de veículo deverá pesquisar qual o CESV desta placa e executar o item 5.
      2. Caso o sistema não encontre uma placa de veículo, deverá ser executado o item 4.
    4. Verificar se existe algum CESV dentro do armazém, com o mesmo código de endereço destino informado. 
      1. Se o sistema encontrar um CESV, deverá executar o passo 5.
      2. Caso o sistema não encontre um CESV, deverá retornar para a função origem (FALSE e NULL).
    5. Pelo CESV encontrado, o sistema deverá realizar as seguintes validações:
      1. Verificar se o CESV é de expedição.
      2. Verificar se o CESV já está dentro do armazém.
      3. Verificar se o CESV já possui planejamento de embarque.
      4. Verificar se o planejamento de embarque está com a situação Aguardando Embarque.
    6. Caso algumas destas validações seja falsa, o sistema deverá retornar à função de origem (FALSE e NULL), informando o motivo do bloqueio. Se todas as validações forem efetuadas com sucesso, o sistema deverá executar o item 6.
    7. Se o endereço do equipamento for diferente de branco e nulo, deverá ser efetuada as seguintes validações:
      1. Criar um cursor que pesquise todas as solicitações de carga, que tenham estoque relacionados ao equipamento.
      2. Dentro deste cursor, o sistema deverá chamar a função wmsr132_valida_solicitacao_separacao_direta_veiculo. Se o retorno da função for igual a TRUE, o sistema continuará a execução do cursor. Caso o retorno seja FALSE, o sistema deverá retornar à função origem (FALSE e NULL).
    8. Se a solicitação de carga for diferente de branco e nulo, deverão ser efetuadas as seguintes validações:
      1. Chamar a função wmsr132_valida_solicitacao_separacao_direta_veiculo. Se o retorno da função for igual a TRUE, o sistema continuará a execução do cursor. Caso o retorno seja FALSE, o sistema deverá retornar à função origem (FALSE e NULL).
    9. Após realizar todas as validações, o sistema deverá retornar à função origem com os seguintes parâmetros: TRUE e endereço do veículo.

WMS6214 - Separação Via Coletor de Dados

Função wms6214_descarrega_todos_volumes()

  • Durante o processamento desta função, o sistema solicita que o usuário informe o endereço destino, onde será descarregada a mercadoria. Antes de validar o endereço destino, o sistema deverá chamar a função wmsr132_valida_placa_cracha_veiculo, passando os seguintes parâmetros: empresa, endereço destino, endereço do equipamento, NULL, 1.
  • Esta função retornará duas variáveis: status (TRUE ou FALSE) e endereço destino (Endereço do veículo). 
  • Se a variável status for igual a TRUE:
    • O sistema deverá alimentar a variável l_endereco_descarga com o endereço criado para o veículo informado.
  • Se a variável status for igual a FALSE:
    • O sistema deverá exibir a mensagem batch e dar continuidade no processamento, executando a regra de negócio do endereço drop-point que já existe atualmente.

Função wms6214_valida_endereco_descarga()

  • Esta função tem como objetivo validar o endereço destino, informado pelo usuário anteriormente. Antes de validar o endereço destino, o sistema deverá chamar a função wmsr132_valida_placa_cracha_veiculo, passando os seguintes parâmetros: empresa, endereço destino, endereço do equipamento, NULL, 1.
  • Esta função retornará duas variáveis: status (TRUE ou FALSE) e endereço destino (Endereço do veículo). 
  • Se a variável status for igual a TRUE:
    • O sistema deverá alimentar a variável l_endereco com o endereço criado para o veículo informado.
  • Se a variável status for igual a FALSE:
    • O sistema deverá  exibir a mensagem batch e dar continuidade no processamento, informando que o endereço não é válido.

Função wms6214_descarrega_um_volume()

  • Durante o processamento desta função, o sistema solicita que o usuário informe o endereço destino, onde será descarregada a mercadoria. Antes de validar o endereço destino, o sistema deverá chamar a função wmsr132_valida_placa_cracha_veiculo,  passando os seguintes parâmetros: empresa, endereço destino, NULL, solicitação de carga, 1.
  • Esta função retornará duas variáveis: status (TRUE ou FALSE) e endereço destino (Endereço do veículo). 
  • Se a variável status for igual a TRUE:
    • O sistema deverá alimentar a variável l_endereco_drop_point com o endereço criado para o veículo informado.
  • Se a variável status for igual a FALSE:
    • O sistema deverá  exibir a mensagem batch e dar continuidade no processamento, executando a regra de negócio do endereço drop-point que já existe atualmente.

Função wms6214_descarrega_um_movto()

  • Alterar a chamada desta função, para que além de retornar a variável status, o sistema retorne um novo valor para a variável l_endereco_destino.
  • Durante o processamento desta função, o sistema solicita que o usuário informe o endereço destino, onde será descarregada a mercadoria. Antes de validar o endereço destino, o sistema deverá chamar a função wmsr132_valida_placa_cracha_veiculo, passando os seguintes parâmetros: empresa, endereço destino, NULL, solicitação de carga, 1.
  • Esta função retornará duas variáveis: status (TRUE ou FALSE) e endereço destino (Endereço do veículo). 
  • Se a variável status for igual a TRUE:
    • O sistema deverá alimentar a variável l_endereco_destino com o endereço criado para o veículo informado.
  • Se a variável status for igual a FALSE:
    • O sistema deverá  exibir a mensagem batch e dar continuidade no processamento, informando que o endereço destino não pertence ao endereço planejado.
  • Alterar os retornos desta função, para que além de retornar o status, o sistema retorne a variável l_endereco_destino.

Função wms6214_controle_descarga()

  • Após executar o cursor cq_moviment_descarga_volume, o sistema deverá chamar a função wmsr132_processa_separacao_direta_veiculo, passando os seguintes valores: empresa, usuário, TRUE, 1, endereço destino, endereço do equipamento, NULL, NULL, NULL e 1. Caso o retorno seja falso, o sistema deverá exibir a mensagem batch e não permitir a descarga.
  • Após executar o cursor cq_moviment_descarga, o sistema deverá chamar a função wmsr132_processa_separacao_direta_veiculo, passando os seguintes valores: empresa, usuário, TRUE, 2, endereço destino, endereço do equipamento, NULL, NULL, NULL e 1. Caso o retorno seja falso, o sistema deverá exibir a mensagem batch e não permitir a descarga.
  • Após executar a função wms6214_efetiva_descarga_volume, o sistema deverá chamar a função wmsr132_processa_separacao_direta_veiculo, passando os seguintes valores: empresa, usuário, FALSE, 1, endereço destino, NULL, código de barras do volume, NULL, solicitação de carga e 1. Caso o retorno seja falso, o sistema deverá exibir a mensagem batch e não permitir a descarga.
  • Após executar a função wms6214_efetiva_descarga_movimento, o sistema deverá chamar a função wmsr132_processa_separacao_direta_veiculo, passando os seguintes valores: empresa, usuário, FALSE, 2, endereço destino, NULL, NULL, processo de movimento, solicitação de carga e modo de exibição.

Função wms6214_pode_separar_lista()

  • Incluir uma nova validação no final desta função, que verifique se o veículo está na doca aguardando o embarque.
  • Criar um cursor que pesquise todas as solicitações de carga, relacionadas a lista de separação. Após encontrar as solicitações de carga, o sistema deverá executar as seguintes validações:
    1. Verificar se a solicitação de carga possui planejamento de embarque ativo. 
      1. Se possuir um planejamento de embarque, deverá ser verificado se a solicitação de carga será descarregada diretamente no veículo.
        1. Se for separação direta para o veículo, o sistema deverá verificar se o planejamento possui a situação igual a Aguardando embarque e o CESV possui a situação igual a Aguardando veículo na doca.
          1. Se o veículo estiver aguardando o embarque, deverá permitir o inicio da separação dos produtos.
          2. Se o veículo não estiver na doca, não deverá permitir o inicio da separação dos produtos.
        2. Se não for separação direta para o veículo, deverá pesquisar a próxima solicitação de carga.
      2. Se não possuir um planejamento de embarque, deverá pesquisar a próxima solicitação de carga.

WMS6255 - Planejamento de embarque

  • Deverá ser criado um novo campo check-box na grid de documentos, com a seguinte descrição: Separação direta para o veículo?.
  • Este novo campo será armazenado na tabela wms_solicitacao_carga_mestre.separacao_direta_veiculo, e o seu valor padrão será N (Não).

Função wms6255_valida_processo_movimento_compartilhado()

  • Criar uma nova função, que realize a validação dos documentos que possuem processos de movimentos compartilhados.
  • Ao iniciar o processamento desta função, o sistema deverá pesquisar todos os documentos relacionados ao planejamento de embarque.
  • Para cada documento, o sistema deverá verificar se este possui processo de movimento compartilhado:

    Movimento compartilhado
    SELECT DISTINCT wms_solicitacao_carga_mestre.trans_solicitacao_carga_mestre
          ,wms_solicitacao_carga_mestre.separacao_direta_veiculo
      FROM wms_item_onda_plano
          ,wms_solicitacao_carga_mestre
          ,wms_solic_carga_item_reserva 
     WHERE wms_item_onda_plano.empresa = <empresa>
       AND wms_item_onda_plano.processo_moviment IN(SELECT wms_item_onda_plano.processo_moviment
                                                      FROM wms_solic_carga_item_reserva
                                                          ,wms_item_onda_plano
                                                     WHERE wms_solic_carga_item_reserva.empresa = <empresa>
                                                       AND wms_solic_carga_item_reserva.trans_solicitacao_carga_mestre = <solicitação de carga>
                                                       AND wms_item_onda_plano.empresa = wms_solic_carga_item_reserva.empresa
                                                       AND wms_item_onda_plano.reserva = wms_solic_carga_item_reserva.reserva)
       AND wms_solicitacao_carga_mestre.empresa = wms_solic_carga_item_reserva.empresa
       AND wms_solicitacao_carga_mestre.trans_solicitacao_carga_mestre = wms_solic_carga_item_reserva.trans_solicitacao_carga_mestre
       AND wms_solic_carga_item_reserva.empresa = wms_item_onda_plano.empresa
       AND wms_solic_carga_item_reserva.trans_solicitacao_carga_mestre <> <solicitação de carga>
       AND wms_solic_carga_item_reserva.reserva = wms_item_onda_plano.reserva
  • A cada registro encontrado, o sistema deverá verificar se o campo separacao_direta_veiculo possui valor diferente do que a solicitação de carga em validação:
    1. Se possuir, o sistema deverá apresentar a seguinte mensagem, abortando a operação:
      "Solicitação de carga <solicitação em validação>, possui processos de movimentos compartilhados com a solicitação de carga <solicitação encontrada>. Favor modificar o parâmetro de separação direta para o veículo, para que utilizem o mesmo conceito."
    2. Se não possuir, o sistema deverá pesquisar o próximo registro.
  • Caso o sistema não encontre nenhuma inconsistência deverá retornar à função origem.

Função wms6255_valida_impressao_lista_separacao_papel()

  • Criar uma nova função que realize a validação dos documentos que possuem separação em papel. 
  • Ao iniciar o processamento desta função, o sistema deverá pesquisar todos os documentos relacionados ao planejamento de embarque.
  • Para cada documento, o sistema deverá verificar se este possui separação em papel:

    Separação papel
    SELECT DISTINCT wms_solicitacao_carga_mestre.trans_solicitacao_carga_mestre
          ,wms_solicitacao_carga_mestre.separacao_direta_veiculo
      FROM wms_solicitacao_carga_mestre
          ,wms_solic_carga_item_reserva 
          ,wms_item_onda_plano
          ,wms_processo_moviment
          ,wms_ordem_servico 
          ,wms_ordem_servico_ativ
          ,wms_ativ
     WHERE wms_solicitacao_carga_mestre.empresa = <empresa>
       AND wms_solicitacao_carga_mestre.trans_solicitacao_carga_mestre = <solicitação de carga>
       AND wms_solic_carga_item_reserva.empresa = wms_solicitacao_carga_mestre.empresa
       AND wms_solic_carga_item_reserva.trans_solicitacao_carga_mestre = wms_solicitacao_carga_mestre.trans_solicitacao_carga_mestre
       AND wms_item_onda_plano.empresa = wms_solic_carga_item_reserva.empresa
       AND wms_item_onda_plano.reserva = wms_solic_carga_item_reserva.reserva
       AND wms_processo_moviment.empresa = wms_item_onda_plano.empresa
       AND wms_processo_moviment.processo_moviment = wms_item_onda_plano.processo_moviment
       AND wms_processo_moviment.tip_processo_moviment = 'C'
       AND wms_ordem_servico.empresa = wms_processo_moviment.empresa
       AND wms_ordem_servico.ordem_servico = wms_processo_moviment.ordem_servico
       AND wms_ordem_servico_ativ.empresa = wms_ordem_servico.empresa
       AND wms_ordem_servico_ativ.ordem_servico = wms_ordem_servico.ordem_servico
       AND wms_ativ.empresa = wms_ordem_servico_ativ.empresa
       AND wms_ativ.ativ = wms_ordem_servico_ativ.ativ
       AND wms_ativ.tip_processo = 303
  • A cada registro encontrado, o sistema deverá executar as seguintes validações:
    1. Se for um novo documento no planejamento de embarque:
      1. Se o campo separacao_direta_veiculo estiver assinalado, o sistema deverá apresentar a seguinte mensagem:  
        "Solicitação de carga <solicitação> possui separação em papel e execução direta para o veículo. Favor imprimir a lista de separação atualizada."
      2. Se o campo separacao_direta_veiculo não estiver assinalado, o sistema deverá continuar o processamento da função.
    2. Se não for um novo documento no planejamento de embarque:
      1. Verificar se o campo separacao_direta_veiculo foi alterado:
        1. Se foi, o sistema deverá apresentar a seguinte mensagem:  "Solicitação de carga <solicitação> possui separação em papel e execução direta para o veículo. Favor imprimir a lista de separação atualizada."
        2. Se não foi, o sistema deverá continuar o processamento da função.

Função wms6255_valida_conferencia_por_plano()

  • Criar uma nova função, que realize a validação dos documentos que possuem conferência por plano de separação.
  • Ao iniciar o processamento desta função, o sistema deverá pesquisar todos os documentos relacionados ao planejamento de embarque.
  • Se o documento relacionado estiver com o campo separacao_direta_veiculo selecionado, o sistema deverá verificar se este possui conferência por plano de separação:

    Conferência por plano
    SELECT DISTINCT 1
      FROM wms_solicitacao_carga_mestre
          ,wms_conferencia_separacao 
     WHERE wms_solicitacao_carga_mestre.empresa = <empresa>
       AND wms_solicitacao_carga_mestre.trans_solicitacao_carga_mestre = <solicitação de carga>
       AND wms_conferencia_separacao.empresa = wms_solicitacao_carga_mestre.empresa
       AND wms_conferencia_separacao.trans_solicitacao_carga_mestre = wms_solicitacao_carga_mestre.trans_solicitacao_carga_mestre
       AND wms_conferencia_separacao.conferencia_plano = 'S'
  • Se a pesquisa acima encontrar um registro, o sistema deverá apresentar a seguinte pergunta:
    "Solicitação de carga <solicitação>, possui conferência por plano e separação direta para o veículo. Deseja relacionar os outros documentos do plano, neste planejamento de embarque?".
    1. Sim: Pesquisar todos os documentos do plano de separação, relacionando-os com o planejamento de embarque. Ao carregar estas informações na grid, selecionar automaticamente o campo separacao_direta_veiculo e desassociar estas solicitações de carga, assim como é efetuado na rotina WMS6357.
    2. Não: Relacionar somente o documento informado pelo usuário, realizando a sua desassociação do plano, conforme a rotina WMS6357.
  • Caso o sistema não encontre nenhuma inconsistência, deverá retornar à função origem.

Função wms6255_confirm_documento()

  • Esta função deverá ser alterada para que o sistema execute a função wms6255_valida_processo_movimento_compartilhado. Caso o seu retorno seja igual a FALSE, deverá cancelar o processamento do usuário.
  • Esta função deverá ser alterada para que o sistema execute a função wms6255_valida_impressao_lista_separacao_papel. Caso o seu retorno seja igual a FALSE, deverá cancelar o processamento do usuário.
  • Esta função deverá ser alterada para que o sistema execute a função wms6255_valida_conferencia_por_plano. Caso o seu retorno seja igual a FALSE, deverá cancelar o processamento do usuário.

Função wms6255_validate_inclusao_documento()

  • Esta função deverá ser alterada para que ao incluir um novo documento no planejamento de embarque, o sistema armazene o novo campo na tabela: wms_solicitacao_carga_mestre.separacao_direta_veiculo.

Função wms6255_prepara_modificacao_documento()

  • Esta função deverá ser alterada para que ao modificar um documento, o sistema não permita modificar o campo Separação direta para o veículo, quando alguma mercadoria desta solicitação de carga tiver sido separada/descarregada.

Função wms6255_validate_modificacao_documento()

  • Esta função deverá ser alterada para que ao modificar um documento no planejamento de embarque, o sistema atualize o novo campo na tabela: wms_solicitacao_carga_mestre.separacao_direta_veiculo.

Função wms6255_change_event_separacao_direta_veiculo()

  • Durante o processamento desta função, o sistema deverá realizar uma nova validação, no momento em que o usuário estiver selecionando o parâmetro de separação direta para o veículo para S (Sim).
  • Verificar se a solicitação de carga possui o parâmetro troca_propriedade assinalado:
    1. Se estiver assinalado, o sistema deverá apresentar a seguinte mensagem: "Solicitação de carga possui o controle de troca de propriedade, não é possível utilizar o conceito de separação direta para o veículo."
    2. Se não estiver assinalado, permitir que o usuário selecione o parâmetro de separação direta para o veículo.

WMS6325 - Solicitação de Carga

  • Deverá ser criado um novo campo check-box, que exibirá o valor cadastrado na tabela wms_solicitacao_carga_mestre.separacao_direta_veiculo, para a solicitação de carga filtrada: na pasta Dados complementares, após o campo Cross-docking.

WMS6302 - Emissão da Lista de Separação

Função wms6302_etiquetas_movimentos()

  • Durante o processamento desta função, o sistema carrega todos os processos de movimentos pelo cursor cq_movimento. Ao encontrar um registro, o sistema deverá verificar se o campo separacao_direta_veiculo da solicitação de carga está igual a S (Sim):
    1. Se estiver, deverá ser pesquisado qual o endereço do veículo, onde a mercadoria será carregada. Este valor deverá ser atualizado na varíavel l_destino.
    2. Se for igual a nulo ou N (Não) deverá continuar com o processamento padrão.

Função wms6302_carrega_dados_mvto()

  • Durante o processamento desta função, o sistema carrega todos os processos de movimentos pelo cursor cq_mvtos_lista. Ao encontrar um registro, o sistema deverá verificar se o campo separacao_direta_veiculo da solicitação de carga está igual a S (Sim):
    1. Se estiver, deverá ser pesquisado qual o endereço do veículo, onde a mercadoria será carregada. Este valor deverá ser atualizado nas variáveis: l_bloco_origem, l_rua_origem, l_coluna_origem, l_nivel_origem, l_coluna_colmeia, l_nivel_colmeia e l_des_end_destino.
    2. Se for igual a nulo ou N (Não), deverá continuar com o processamento padrão.

WMS60216 - Separação de SKU Via Papel

Função wms60216_carrega_array()

  • Durante o processamento desta função, o sistema carrega todos os processos de movimentos pelo cursor cq_array. Ao encontrar um registro, o sistema deverá verificar se o campo separacao_direta_veiculo da solicitação de carga está igual a S (Sim):
    1. Se estiver, deverá ser pesquisado qual o endereço do veículo, onde a mercadoria será carregada. Utilizando este valor, deverá ser encontrada a descrição do endereço, atualizado na varíavel lr_processo_moviment.des_endereco_destino.
    2. Se for igual a nulo ou N (Não), deverá continuar com o processamento padrão.

Função wms60216_finaliza_separacao_processamento()

  • Durante o processamento desta função, o sistema carrega todos os processos de movimentos pelo cursor cq_processo_moviment. Ao encontrar um registro, o sistema deverá verificar se o campo separacao_direta_veiculo da solicitação de carga está igual a S (Sim)::
    1. Se estiver, deverá ser pesquisado qual o endereço do veículo, onde a mercadoria será carregada. Este valor deverá ser atualizado na variável: lr_processo_moviment.endereco_destino.
    2. Se for igual a nulo ou N (Não), deverá continuar com o processamento padrão.
  • Antes de concluir a separação do processo de movimento no cursor cq_processo_moviment, o sistema deverá chamar a função wmsr132_processa_separacao_direta_veiculo, verificando a variável mr_wms_lista_executor.tip_separacao
    1. Se for uma separação por etiqueta, o sistema deverá efetuar o descarregamento de todos os volumes do processo de movimento.
    2. Se não for uma separação por etiqueta, o sistema deverá realizar uma descarga por processo de movimento.

Função wms60216_atualiza_sit_volume()

  • Durante o processamento desta função, o sistema atualiza a situação de todos os volumes gerados para a lista de separação. 
  • Este processamento poderá ser executado somente para as solicitações de carga onde o parâmetro de separação direta para o veículo não foi selecionado.

Tabelas Utilizadas

  • wms_solicitacao_carga_mestre
  • wms_conferencia_separacao

  • wms_conferencia_separacao_item

  • wms_volume_exped
  • wms_volume_item_exped
  • wms_pesagem

  • wms_pesagem_item
  • wms_planejto_embarq
  • wms_plnjt_embq_solic_carga

 

Protótipo de Tela

Protótipo 01

Esta tela permite que o usuário informe o endereço do equipamento ou o produto que deverá ser descarregado.

Protótipo 02

Esta tela permite que o usuário informe o endereço onde deseja descarregar as mercadorias. Nesta tela, o usuário poderá informar também o crachá ou a placa do veículo.

Protótipo 03

Tela de cadastro do planejamento de embarque, que permitirá que o usuário informe se o documento será com separação direta para o veículo ou não.


Protótipo 04

Tela de cadastro da solicitação de carga, que exibirá se o documento teve separação direta para o veículo ou não.

 

 

Dicionário de Dados


 

 

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