Páginas filhas
  • ER LOGWMS01-716 ME 10 Separação Com Etiqueta BRA

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.                                                            

Informações Gerais

Especificação

Produto

LOGIX

Módulo

WMS

Segmento Executor

Supply Chain

Projeto1

LOGWMS01

IRM1

Jira
serverJIRA Produção
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyLOGWMS01-545

Requisito1

Jira
serverJIRA Produção
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyLOGWMS01-716

Subtarefa1

 

País

( X ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Outros

Não se Aplica

Objetivo

 Realizar ajustes nas rotinas de separação e conferência para permitir a utilização do palete.

Definição da Regra de Negócio

 Aqui mapa mental utilizado como base

 

Na tabela a seguir serão listadas as rotinas envolvidas, o tipo de operação, a opção de menu e se necessário uma breve descrição das regras de negócio relacionadas a rotina.

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

WMS60018

Alteração

Contrato / Expedição - Separação/Conferência

 

WMS60030AlteraçãoFunção de cópia de contrato 

WMS6214

Alteração

Separação coletor

Ajuste para gravar o palete informado

WMSR41AlteraçãoSeparação no pickingAjuste para gravar o palete informado

WMSRXX1

Inclusão

RNL para validar palete informado na separação

 

WMSRXX2InclusãoRNL para validar/realizar processo de conferencia por palete 

1 - Ajustes no contrato - WMS60013

1.1 - Inclusão de parâmetros no processo de separação e conferência - WMS60018

Serão criados três parâmetros: 

  • Informa palete destino(inf_palete_destino_separacao): Quando marcado esse parâmetro o palete deverá ser informado em todo movimento de separação. Antes de informar a etiqueta de origem da coleta (pode ser uma identificação de estoque ou uma etiqueta de endereço quando a separação ocorrer em endereço de picking) será obrigatório informar o palete. Ele será gravado diretamente na tabela wms_identif_estoque correspondendo ao palete de cada ID separada. Deverá atender as mesmas regras de uso de palete existentes em outros pontos do sistema.

  • Permite conferência de palete(permite_conf_palete): Quando marcado esse parâmetro, em todos os processos de conferência de expedição (304,305,308,310,311,312,313,314) poderá ser informado o palete diretamente na tela principal no campo EAN/SKU. O palete será validado e a conferência dos itens será realizada conforme o parâmetro "Modo conferência palete".

  • Modo conferência palete (modo_conf_palete): Esse parâmetro só poderá ser preenchido quando marcado o parâmetro "Permite conferência palete". Ele irá indicar qual a forma de conferência que poderá ser utilizada. As opções são:
    • Somente pede confirmação: após bipar o palete, envia mensagem para o usuário "Confirma a conferência do palete XXXXXXX como XX SKUs?" já com o campo de resposta como S. Em caso afirmativo, todos os itens do palete serão listados como conferidos. Caso contrário, volta para a tela principal do processo de conferência em questão.
    • Informa quantidade total de SKUapós bipar o palete, abre tela onde deverá ser informada a quantidade total de SKUs do palete independente do item. Não será permitida informar uma quantidade de caixas diferentes da que compõe o palete. Não será exibida a quantidade esperada em nenhuma tecla, caso seja necessário identificar essa informação deverá ser utilizado o WMS6170(desktop) ou WMS6181(coletor) pesquisando pelo palete. Se o palete possuir algum item que não controla SKU, automaticamente, caso essa opção esteja marcada, será utilizada a opção 3"Informa itens e quantidade".
    • Informa itens e quantidadeapós bipar o palete, abre uma tela para informar o código do item e na sequencia a quantidade total do mesmo no palete. A cada item será validado essa informação e não poderá ser informado novamente o mesmo código do item. Apenas quando todos os itens do palete forem conferidos é que o estoque do palete será conferido. Caso ocorra uma interrupção ou queda de sinal nesse processo, será necessário iniciar novamente a conferência do palete.

Os parâmetros serão gravados na seguinte estrutura:

TABELA: WMS_PARAMETRO_SEPARACAO
CampoDescriçãoTipo

Obrigatório

Campo novo?
EmpresaCódigo da empresaCHAR(02)
  •   
Não
DepositanteCódigo do depositanteCHAR(15)
  •   
Não
....    
informa_quantidade_conferenciaIndica como será realizada a conferência dos itensCHAR(01)
  •   
Não
permt_plnjt_endereco_nao_docaIndica se permite ou não planejar a conferência para endereços diferentes de doca/statgeCHAR(01)
  •   
Não
...    

inf_palete_destino_separacao

Informa o palete destino no processo de separaçãoCHAR(01)
  •   
Sim
permite_conf_paletePermite realizar a conferência informando o paleteCHAR(01)
  •   
Sim
modo_conf_paleteIndica o modo que será realizada a conferência do paleteCHAR(01)
  •   
Sim


 Na sequencia, será exibida a imagem demonstrando como ficará a tela de parametrização:

 

1.2 - Ajustes na cópia do contrato - WMS60030 

Alterar a função wms60030_copia_contrato para ler os novos campos criados relacionados ao contrato de origem da cópia e gravar os valores lidos para para o contrato destino da cópia.

2 - Ajustes na rotina de separação - WMS6214

No processo de separação, quando acessar a tela indicando a origem da separação, deverá solicitar o palete antes da etiqueta de estoque.

Na função wms6214_inicia_movimento existem duas telas que são chamadas:

  • WMS62143 - Etiqueta Origem - Controla SKU 
  • WMS6214k - Etiqueta Origem - Não Controla SKU. 

Criar duas novas telas com base nas atuais, onde serão excluídos os campos área e tipo de estoque que são exibidos atualmente para permitir a inclusão do campo palete destino, conforme imagem a seguir:


Para realizar a validação da utilização do palete informado, criar duas funções dentro da nova RNL WMSRXX1:

  • WMSRXX1_valida_palete: será chamada após informar o palete(after field do campo). Valida apenas o palete informado, sem saber a relação dele com o estoque que será colocado sobre o mesmo. Deverá ser validado se o mesmo pode ser utilizado seguindo as mesmas regras do WMS6182, campo palete receptor. 

    Bloco de código
    titleExemplo da validação
    collapsetrue
    1) Remover enter no campo 
     
    Criar função idêntica a essa dentro da RNL 
    CALL wms6182_remove_enter(m_identif_palete) 
    RETURNING m_identif_palete   
     
    2) Verificar caracteres especiais 
    
    IF m_identif_palete MATCHES "*'*"
               OR m_identif_palete MATCHES "*""*"
               OR m_identif_palete MATCHES "*%*"
               OR m_identif_palete MATCHES "*(*"
               OR m_identif_palete MATCHES "*)*"
               OR m_identif_palete MATCHES "*=*"
               OR m_identif_palete MATCHES "*|*"
               OR m_identif_palete MATCHES "*<*"
               OR m_identif_palete MATCHES "*>*" THEN
                  LET m_titulo     = 'Divis/Fusao estoque'
                  LET m_sub_titulo = 'Palete receptor invalido.'
                  LET m_msg        = 'Nao e permitido informar caracteres especiais no palete receptor.'
                  CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                  CURRENT WINDOW IS w_WMS6182_principal
                  NEXT FIELD m_identif_palete
               END IF 
     
    3) Verificação de inventário no palete 
    #rotina para verificar se o palete esta em processo de inventario 
            IF wmsr51_f2_verifica_emp_palet(p_cod_empresa, m_identif_palete) THEN
               LET m_titulo     = 'Divis/Fusao estoque'
               LET m_sub_titulo = ''
               CALL wms6085_help(m_titulo, m_sub_titulo, 'Nao e possivel realizar divisao/fusao de estoque, pois o palete possui identificacoes de estoque que estao em processo de inventario.')
               CURRENT WINDOW IS w_WMS6182_principal
               NEXT FIELD m_identif_palete
            END IF 
     
    4) Verificar se o palete informado é curinga ou permite usar qualquer etiqueta (Cria curinga com o palete) 
    # Validar se o receptor é uma etiqueta curinga
               IF wmsm53_wms_etiq_curinga_leitura(p_cod_empresa,m_identif_palete,TRUE,1) THEN
                  # Se atender estas condições a etiqueta não pode ser utilizada
                  IF wmsm53_wms_etiq_curinga_get_dat_habil() IS NULL THEN
                     LET m_titulo     = 'Divis/Fusao estoque'
                     LET m_sub_titulo = 'Palete receptor invalido'
                     LET m_msg        = 'A etiqueta informada nao esta habilitada.'
                     CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                     CURRENT WINDOW IS w_WMS6182_principal
                     NEXT FIELD m_identif_palete
                  END IF
               ELSE
                  IF m_indica_aceita_etiq_nao_cadas = 'S' THEN
                     IF wmsm53_wms_etiq_curinga_leitura(p_cod_empresa,m_identif_cedente,TRUE,1) THEN
                        LET l_endereco         = wmsm53_wms_etiq_curinga_get_endereco()
                     END IF
                     IF wmsm133_wms_identif_estoque_leitura(p_cod_empresa,m_identif_cedente,TRUE,1) THEN
                        CALL wmsm53_wms_etiq_curinga_set_ctr_ent_sai_veic(wmsm133_wms_identif_estoque_get_ctr_ent_sai_veic_docum())
                        CALL wmsm53_wms_etiq_curinga_set_deposit(wmsm133_wms_identif_estoque_get_depositante())
                     END IF
                     CALL wmsm53_wms_etiq_curinga_set_dat_habil(TODAY)
                     CALL wmsm53_wms_etiq_curinga_set_empresa(p_cod_empresa)
                     CALL wmsm53_wms_etiq_curinga_set_endereco(l_endereco)
                     CALL wmsm53_wms_etiq_curinga_set_etiq_curinga(m_identif_palete)
                     CALL wmsm53_wms_etiq_curinga_set_etiq_pallet(m_identif_palete)
                     CALL wmsm53_wms_etiq_curinga_set_identif('P')
                     CALL wmsm53_wms_etiq_curinga_set_item(m_cod_item)
                     CALL wmsm53_wms_etiq_curinga_set_livre_1(NULL)
                     CALL wmsm53_wms_etiq_curinga_set_livre_2(NULL)
                     CALL wmsm53_wms_etiq_curinga_set_livre_3(NULL)
                     CALL wmsm53_wms_etiq_curinga_set_livre_4(NULL)
                     CALL wmsm53_wms_etiq_curinga_set_livre_5(NULL)
                     CALL wmsm53_wms_etiq_curinga_set_livre_6(NULL)
                     CALL wmsm53_wms_etiq_curinga_set_lote_geracao(1)
                     CALL wmsm53_wms_etiq_curinga_set_sku(l_sku)
                     CALL wmsm53_wms_etiq_curinga_set_utiliz('S')
                     #LET m_etiqueta_tem_estoque = FALSE
                     IF NOT wmst53_wms_etiq_curinga_inclui(TRUE,1) THEN
                        LET m_titulo     = 'Divis/Fusao estoque'
                        LET m_sub_titulo = 'Etiqueta curinga'
                        LET m_msg        = 'Problemas na inclusao da etiqueta curinga.'
                        CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                        CURRENT WINDOW IS w_WMS6182_principal
                        NEXT FIELD m_identif_palete
                     END IF
                  ELSE
                     LET m_titulo     = 'Divis/Fusao estoque'
                     LET m_sub_titulo = 'Etiqueta curinga'
                     LET m_msg        = 'Nova identificacao de estoque nao cadastrada como etiqueta curinga.'
                     CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                     CURRENT WINDOW IS w_WMS6182_principal
                     NEXT FIELD m_identif_palete
                  END IF
               END IF
            END IF
    
  • WMSRXX1_valida_palete_com_id: antes de executar o processamento, deverá ser validado novamente, se foi possível utilizar o palete para o processo em questão, similar ao que é realizado no WMS6182 após preencher todos os campos da tela. Nesse ponto, será validado o palete e a ID que o mesmo será atrelado, seja ela física ou virtual.

    Bloco de código
    titleExemplo da validação
    collapsetrue
    Fazer novamente todas as validações da função WMSRXX1_valida_palete   
     
    Utilizando já o palete e ID que será colocada no palete   
     
    1) Verificar se o Palete já está sendo usado como ID de estoque de outra ID que não a separada
    WHENEVER ERROR CONTINUE
               SELECT DISTINCT 1
                 FROM estoque_lote_ender
                WHERE estoque_lote_ender.cod_empresa = p_cod_empresa
                  AND estoque_lote_ender.identif_estoque = m_identif_palete
                  AND qtd_saldo > 0
               WHENEVER ERROR STOP
               IF sqlca.sqlcode = 0 THEN
                  LET m_titulo     = 'Divis/Fusao estoque'
                  LET m_sub_titulo = 'ID cedente'
                  LET m_msg        = 'Palete unico nao pode receber outra ID.'
                  CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                  CURRENT WINDOW IS w_WMS6182_principal
                  NEXT FIELD m_identif_palete
               END IF 
    
    2) Verificar depositante do palete 
    IF wmsm117_wms_palete_get_deposit() <> m_deposit THEN
                  LET m_titulo     = 'Divis/Fusao estoque'
                  LET m_sub_titulo = 'Palete receptor invalido.'
                  LET m_msg        = 'Palete receptor informado nao pertence ao mesmo depositante da identificacao cedente.'
                  CALL wms6085_help(m_titulo, m_sub_titulo, m_msg)
                  CURRENT WINDOW IS w_WMS6182_principal
                  NEXT FIELD m_identif_palete
               END IF
     

     

O palete informado nesse processo será gravado no campo palete da tabela wms_identif_estoque da identificação de estoque que está sendo separada no movimento.

Ajustar o programa para executar o processo utilizado GET e SET sem precisar passar mais parâmetros para as funções.

As funções wmsr27_gera_palete_com_identif_estoque e wmsr18_divisao_fusao_estoque deverão utilizar o palete informado em tela para a criação do palete.

É necessário alterar também a  wmsr41_separacao_picking que chama as funções wmsr27_gera_palete_com_identif_estoque e wmsr18_divisao_fusao_estoque.

Verificar parametrização que deve ser passada para a função: wmsr18_set_m_verifica_divisao_estoque

OBS: apenas lembrar que ao consultar o estoque no WMS6170 pelo equipamento ou palete o mesmo poderá ser visualizado conforme executado na separação.

3 - Ajustes na rotina de conferência - WMS6242

Em todos os programas de conferência, na tela de processamento, no campo EAN/SKU, será possível bipar um palete para realizar a conferência automática do mesmo.

3.1 - Validações no palete informado, antes de realizar a conferência

Para realizar a validação da utilização do palete informado, serão criadas algumas funções dentro da nova RNL WMSRXX2:

  • WMSRXX2_valida_palete_conf_doc: essa função será responsável por validar o palete informado nos processos de conferencia por documento, ou seja, 304 - Manual coletor, 305 - Manual PDV, 308 - Automática coletor, 310 - Automática PDV, 314 - Semi Auto coletor
    • Recebe o palete e a solicitação de carga
    • Valida se existe saldo no palete que está reservado para outra solicitação de carga, em caso afirmativo, envia mensagem: "Não é possível realizar a conferencia desse palete. Existe reserva para mais de um documento."

      Bloco de código
      languagecpp
      titleExemplo da validação
      collapsetrue
      -- Verifica se o palete possui alguma reserva para outra SC
      SELECT DISTINCT 1 
       FROM wms_palete
      INNER JOIN wms_identif_estoque
         ON wms_identif_estoque.empresa =  wms_palete.empresa
        AND wms_identif_estoque.palete =  wms_palete.palete
      INNER JOIN est_loc_reser_end
         ON est_loc_reser_end.cod_empresa = wms_identif_estoque.empresa
        AND est_loc_reser_end.identif_estoque = wms_identif_estoque.IDENTIF_ESTOQUE 
      WHERE wms_palete.empresa = '44' -- Empresa corrente
      AND wms_palete.palete  = '644161110093108381' --Palete em questão
      AND EXISTS (SELECT 1 
                    FROM wms_solic_carga_item_reserva
                   WHERE wms_solic_carga_item_reserva.empresa = est_loc_reser_end.cod_empresa
                     AND wms_solic_carga_item_reserva.reserva = est_loc_reser_end.num_reserva
                     AND wms_solic_carga_item_reserva.tip_reserva = 'E' -- Apenas reservas de estoque
                     AND wms_solic_carga_item_reserva.trans_solicitacao_carga_mestre <> 73247) -- Número da SC que está sendo conferida

       

  • WMSRXX2_valida_palete_conf_plano:essa função será responsável por validar o palete informado nos processos de conferencia por plano, ou seja, 311- Automática coletor, 312- Automática PDV, 313 - Automática coletor com volume embarque

    • Recebe o palete e o plano de separação
    • Valida se existe saldo no palete que está reservado para outro plano, em caso afirmativo, envia mensagem: "Não é possível realizar a conferencia desse palete. Existe reserva para mais de um plano."

      Bloco de código
      languagecpp
      titleExemplo da validação
      collapsetrue
      -- Verifica se o palete possui alguma reserva para outro plano 
       
      SELECT DISTINCT 1 FROM wms_palete 
       INNER JOIN wms_identif_estoque 
          ON wms_identif_estoque.empresa = wms_palete.empresa 
         AND wms_identif_estoque.palete = wms_palete.palete 
       INNER JOIN estoque_lote_ender 
          ON estoque_lote_ender.cod_empresa = wms_identif_estoque.empresa 
         AND estoque_lote_ender.identif_estoque = wms_identif_estoque.IDENTIF_ESTOQUE 
        LEFT JOIN est_loc_reser_end 
          ON est_loc_reser_end.cod_empresa = wms_identif_estoque.empresa 
         AND est_loc_reser_end.identif_estoque = wms_identif_estoque.IDENTIF_ESTOQUE 
        LEFT JOIN estoque_loc_reser 
          ON est_loc_reser_end.cod_empresa = estoque_loc_reser.cod_empresa 
         AND est_loc_reser_end.num_reserva = estoque_loc_reser.num_reserva 
       WHERE wms_palete.empresa = '44' -- Empresa corrente 
         AND wms_palete.palete = '644090828140540007' --Palete em questão 
       GROUP BY estoque_lote_ender.qtd_saldo 
      HAVING estoque_lote_ender.qtd_saldo <> sum(estoque_loc_reser.qtd_reservada) 
      


  • WMSRXX2_valida_palete_estoque_sem_reserva: Valida se existe saldo de estoque no palete que não está reservado, em caso afirmativo, envia mensagem: "Não é possível realizar a conferencia desse palete. Existe estoque sem reserva."

    Bloco de código
    languagecpp
    titleExemplo da validação
    collapsetrue
    -- Verifica se o palete possui alguma quantidade que não está reservada 
    SELECT DISTINCT 1 FROM wms_palete 
     INNER JOIN wms_identif_estoque 
        ON wms_identif_estoque.empresa = wms_palete.empresa 
       AND wms_identif_estoque.palete = wms_palete.palete 
     INNER JOIN estoque_lote_ender 
        ON estoque_lote_ender.cod_empresa = wms_identif_estoque.empresa 
       AND estoque_lote_ender.identif_estoque = wms_identif_estoque.IDENTIF_ESTOQUE 
      LEFT JOIN est_loc_reser_end 
        ON est_loc_reser_end.cod_empresa = wms_identif_estoque.empresa 
       AND est_loc_reser_end.identif_estoque = wms_identif_estoque.IDENTIF_ESTOQUE 
      LEFT JOIN estoque_loc_reser 
        ON est_loc_reser_end.cod_empresa = estoque_loc_reser.cod_empresa 
       AND est_loc_reser_end.num_reserva = estoque_loc_reser.num_reserva 
     WHERE wms_palete.empresa = '44' -- Empresa corrente 
       AND wms_palete.palete = '644090828140540007' --Palete em questão 
     GROUP BY estoque_lote_ender.qtd_saldo 
    HAVING estoque_lote_ender.qtd_saldo <> sum(estoque_loc_reser.qtd_reservada)
    

     

  • WMSRXX2_valida_estoque_palete_pendente_conferencia: Valida se o estoque do palete está pendente para realizar a conferência. Todos os itens do palete, incluindo os dimensionais, devem estar pendentes de conferência.
     

    Bloco de código
    languagecpp
    titleExemplo da validação
    collapsetrue
    - Cada processo de conferência terá sua validação diferenciada. 
    - Ideia é fazer um cursor com os itens/dimensionais do palete e validar se os mesmos podem ser conferidos utilizando a função padrão de cada tipo de conferencia   FAZER DESCRITIVO
  • WMSRXX2_valida_palete_ja_foi_conferido: Verifica se o palete está na listagem de paletes que já foi conferido, em caso afirmativo, envia mensagem: "Não é possível realizar a conferencia desse palete. Ele já foi conferido!."

3.2 - Realizando a conferência do palete

Deverá ser criada uma função WMSRXX2_confirma_conf_palete que será utilizada em todos os processos de conferência. Essa função irá abrir as telas necessárias para a realização da conferência do palete, sendo ele coletor ou desktop e levando em conta o modo de conferência de palete, configurado a nível de empresa e depositante, no parâmetro "Permite conferência palete" do contrato.

Quando realizada a conferência do palete, o mesmo deverá ser gravado nas novas tabelas para evitar que seja conferido mais vezes

Essa função deverá receber os seguintes parâmetros:

  • Empresa: empresa corrente
  • Depositante: depositante do processo de conferência
  • Tipo da conferência: Coletor ou desktop 
  • Programa chamador: Informação que será utilizada para montar o título das mensagens de coletor
  • Palete: Código do palete que está sendo conferido
  • Número da solicitação de carga: Informação enviada nos processos de conferência por documento
  • Plano de separação: Informação enviada quando o processo de conferência for por plano

Poderão ser configuradas 3 opções de conferência de palete:

3.2.1 - Somente pede confirmação: envia mensagem para o usuário solicitando a confirmação. Respondendo Sim, o sistema irá realizar o processamento da conferência do palete chamando a função WMSRXX2_processa_conf_palete. Respondendo não, volta para a tela inicial do processo de conferência em questão.

Bloco de código
languagecpp
titleExemplo da validação
collapsetrue
Para os programas utilizar a mensagem padrão:

Coletor: wms6085_tela_confirmacao(TITULO,SUBTITULO,MENSAGEM). O campo titulo deve ser preenchido com o nome de cada programa chamador

 
Desktop: utilizar mensagem em tela (log0040_confirm(6,10,MENSAGEM)), já com a opção SIM selecionada

Na sequencia, segue telas exemplificando o processo.

            

 


                                                    


3.2.2. - Informa quantidade total de SKU: antes de abrir essa tela, deve ser verificado se algum dos itens do palete não controla SKU. Se existir algum dos itens que não controla SKU, automaticamente, será aberta a tela para informar os itens e quantidade (opção descrita no item 3.2.3), ou seja, apenas quando todos os itens do palete controlarem SKU essa opção poderá ser utilizada.Essa opção envia mensagem para o usuário solicitando a quantidade de SKUs presentes no palete. O mesmo deverá responder a quantidade total e ela será validada em relação a quantidade esperada, criar a função WMSRXX2_valida_qtd_palete. Quando informada uma quantidade diferente da esperada será enviada uma mensagem informando "Quantidade de SKUs informada é diferente da quantidade esperada" e volta para o campo Qtd SKUs. Quando informada a quantidade esperada de SKUs o sistema irá realizar o processamento da conferência do palete chamando a função WMSRXX2_processa_conf_palete

 

Bloco de código
languagecpp
titleExemplo da validação
collapsetrue
--Verifica se algum dos itens do palete não controla SKU
SELECT DISTINCT 1
 FROM wms_palete, 
      wms_identif_estoque, 
      wms_item_complemento
WHERE wms_palete.empresa =  wms_identif_estoque.empresa
AND wms_palete.palete =  wms_identif_estoque.palete
AND wms_identif_estoque.empresa =   wms_item_complemento.empresa
AND wms_identif_estoque.item =   wms_item_complemento.item
AND wms_palete.empresa = '44' --empresa corrente
AND wms_palete.palete =  '644090828140540007' --palete em questão
AND controla_sku = 'N' --indicativo de controle de SKU

--Verifica a quantidade de SKUs do palete
SELECT sum(wms_identif_estoque.QTD_ORIGEM /wms_item_sku.qtd_item) 
 FROM wms_palete, 
      wms_identif_estoque,
      wms_item_sku
WHERE wms_palete.empresa =  wms_identif_estoque.empresa
AND wms_palete.palete =  wms_identif_estoque.palete
AND wms_identif_estoque.empresa =   wms_item_sku.empresa
AND wms_identif_estoque.item =   wms_item_sku.item
AND wms_identif_estoque.sku =   wms_item_sku.sku
AND wms_palete.empresa = '44' --empresa corrente
AND wms_palete.palete =  '644090828140540007' -- palete em questão
 
__________________________________
Para os programas utilizar a mensagem padrão:

Coletor: wms6085_help(TITULO,SUBTITULO,MENSAGEM). O campo titulo deve ser preenchido com o nome de cada programa chamador

Desktop: log0030_processa_mensagem

 

Na sequencia, segue telas exemplificando o processo.

                                                             


3.2.3 - Informa itens e quantidade: com essa opção parametrizada, o sistema deverá abrir uma nova tela, onde deverão ser informados os itens e suas respectivas quantidades conferidas.  Ao informar um item, será validado se o mesmo pertence ao palete, e em caso afirmativo, será 


envia mensagem envia mensagem para o usuário solicitando a confirmação. Respondendo Sim, o sistema irá realizar o processamento da conferência do palete chamando a função WMSRXX2_processa_conf_palete. Respondendo não, volta para a tela inicial do processo de conferência em questão.



 

 

 

 3.3 - Realizando a conferência do palete - Função de conferência

A função WMSRXX2_processa_conf_palete deve ser criada para realizar efetivamente a conferencia de todos os itens do palete. Ela poderá ser chamada por qualquer um dos processos de conferência e irá retornar apenas


 

SELECT * FROM wms_solic_carga_parametro

 

SELECT * FROM wms_parametro_complementar
WHERE plano_separacao

Travar reiniciar a conferencia de itens

Travar retirar itens de volumes caso seja necessário utilizar a quantidade de itens do palete

Ao reiniciar a conferencia geral, deve também excluir os paletes conferidos


 

 

 

Opcional

Protótipo de Tela

 

<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.

 

Protótipo 01

 

 

 

 

 

 

 

 

 

Opcional

Fluxo do Processo

 

<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>. 

Opcional

Dicionário de Dados

 

Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/

  

Índice

Chave

01

<FI9_FILIAL+FI9_IDDARF+FI9_STATUS>

02

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF>

03

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO>

Campo

<AAA_PERESP>

Tipo

<N>

Tamanho

<6>

Valor Inicial

<Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. 

Mandatório

Sim (  ) Não (  )

Descrição

<Referência Mínima para Cálculo>

Título

<Ref.Calc.>

Picture

<@E999.99>

Help de Campo

<Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação>

 

(Opcional)

Grupo de Perguntas

 

<Informações utilizadas na linha Protheus>.

 

Nome: FINSRF2

X1_ORDEM

01

X1_PERGUNT

Emissão De

X1_TIPO

D

X1_TAMANHO

8

X1_GSC

G

X1_VAR01

MV_PAR01

X1_DEF01

Comum

X1_CNT01

'01/01/08'

X1_HELP

Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório 

 

(Opcional)

Consulta Padrão

<Informações utilizadas na linha Protheus>

 

Consulta: AMB

Descrição

Configurações de Planejamento

Tipo

Consulta Padrão

Tabela

“AMB”

Índice

“Código”

Campo

“Código”; ”Descrição”

Retorno

AMB->AMB_CODIGO

 
TABELA CRIADA: WMS_CONFERENCIA_PALETE
NOME
DESCRIÇÃO
TIPOOBRIGATÓRIO
empresaEmpresaCHAR(02)
  •   
paleteCódigo do palete conferidoCHAR(18)
  •   
situacao_paleteSituação da conferência do palete. Opções A(andamento) F(finalizada)  

trans_solicitacao_carga_mestre

Número da Solicitação de carga, quando a conferência é por documentoInteger
  •   
plano_separacaoNúmero do plano de separação, quando conferência é por planoInteger
  •  


TABELA CRIADA: WMS_CONFERENCIA_PALETE_ITEM
NOME
DESCRIÇÃO
TIPOOBRIGATÓRIO
empresaEmpresaCHAR(02)
  •   
paleteCódigo do palete conferidoCHAR(18)
  •   

item

Código do item ERP 
  •   

(Opcional)

Estrutura de Menu

 

<Informações utilizadas na linha Datasul>.

 

Procedimentos

 

Procedimento

 

 

 

Descrição

(Max 40 posições)

(Max 40 posições)

(Max 40 posições)

Módulo

 

 

 

Programa base

 

 

 

Nome Menu

(Max 32 posições)

(Max 32 posições)

(Max 32 posições)

Interface

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

Registro padrão

Sim

Sim

Sim

Visualiza Menu

Sim/Não

Sim/Não

Sim/Não

Release de Liberação

 

 

 

 

 

 

Programas

 

Programa

 

 

 

Descrição

(Max 40 posições)

(Max 40 posições)

(Max 40 posições)

Nome Externo

 

 

 

Nome Menu/Programa

(Max 32 posições)

(Max 32 posições)

(Max 32 posições)

Nome Verbalizado[1]

(Max 254 posições)

(Max 254 posições)

(Max 254 posições)

Procedimento

 

 

 

Template

(Verificar lista de opções no man01211)

(Verificar lista de opções no man01211)

(Verificar lista de opções no man01211)

Tipo[2]

Consulta/Manutenção/ Relatório/Tarefas

Consulta/Manutenção/ Relatório/Tarefas

Consulta/Manutenção/ Relatório/Tarefas

Interface

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

Categoria[3]

 

 

 

Executa via RPC

Sim/Não

Sim/Não

Sim/Não

Registro padrão

Sim

Sim

Sim

Outro Produto

Não

Não

Não

Visualiza Menu

Sim/Não

Sim/Não

Sim/Não

Query on-line

Sim/Não

Sim/Não

Sim/Não

Log Exec.

Sim/Não

Sim/Não

Sim/Não

Rotina (EMS)

 

 

 

Sub-Rotina (EMS)

 

 

 

Localização dentro da Sub Rotina (EMS)

 

 

 

Compact[4]

Sim/Não

Sim/Não

Sim/Não

Home[5]

Sim/Não

Sim/Não

Sim/Não

Posição do Portlet[6]

0 – Top Left

1 – Top Right

2 – Bottom Left

3 – Bottom Right

0 – Top Left

1 – Top Right

2 – Bottom Left

3 – Bottom Right

0 – Top Left

1 – Top Right

2 – Bottom Left

3 – Bottom Right

Informar os papeis com os quais o programa deve ser vinculado

 

 

 

 

Cadastro de Papéis

<O cadastro de papéis é obrigatório para os projetos de desenvolvimento FLEX a partir do Datasul 10>.

<Lembrete: o nome dos papeis em inglês descrito neste ponto do documento, devem ser homologados pela equipe de tradução>.

 

Código Papel

(máx 3 posições)

Descrição em Português*

 

Descrição em Inglês*

 

[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.

[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante

[3] Categorias são obrigatórias para os programas FLEX.

[4] Obrigatório quando o projeto for FLEX

[5] Obrigatório quando o projeto for FLEX

[6] Obrigatório quando o projeto for FLEX


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