Árvore de páginas


01. VISÃO GERAL

O seguinte manual apresenta as definições técnicas que garantem a integração entre o sistema de WMS da RMS e o sistema de separação via voz da Vocollect.

Tipo da Integração

A integração entre as plataformas foi desenvolvida no modelo TABELA X TABELA. Em suma, os processos de importação e exportação dos dados acontecem exclusivamente via banco de dados a partir da execução de JOBs tanto do lado do WMS quanto do Sistema de Voz.

Funcionamento Geral

A aplicação do Sistema de Voz está responsável apenas pela separação de picking. O processo de atendimento, formação de carga, conferência de expedição e faturamento, ainda acontecem do lado do RMS.

  1. O WMS gera as atividades de separação via Convocação Ativa (CA);
  2. O Voice Link (VL) importa as atividades;
  3. Os operadores realizam a separação via Sistema de Voz;
  4. O WMS exporta os dados gerados na coleta para o RMS e o fluxo da expedição segue pelo Painel de Expedição da CA.

Do Processo de Importação

É de responsabilidade do WMS gerar todas as atividades de separação na formação de carga, como é feito hoje na CA. Após as atividades geradas, os dados são gravados nas tabelas de importação do (VL) para que este, realize de fato a importação para as tabelas finais do Sistema de Voz.

A Responsabilidade do WMS neste momento é apenas gravar as tabelas de importação com as atividades de separação geradas. Não temos acesso à todas as tabelas finais do VL, apenas às de importação e às Views utilizadas no processo de exportação.


02. EXEMPLO DE UTILIZAÇÃO

Pré-Requisitos de Importação para Integração

1 - Existem 3 (três) importações que precisam ser realizadas antes da geração das atividades para que as integrações das atividades de separação ocorram com sucesso, são elas:

Importação dos Operadores

O script deve ser executado sempre que houve o cadastro de um novo operador no RMS. A senha segue um valor Default no Insert, pois esta é recadastrada diretamente no VL, após integração dos operadores:

-- INSERT OPERADORES >> CORE_OPERATOR_IMPORT_DATA <<

DECLARE

V_IMPORTID NUMBER(19);


BEGIN


FOR REG IN (SELECT OPE_COD_OPER AS ID_OPERADOR,

                   OPE_NOME_OPER AS NOME_OPERADOR,

                   OPE_SENHA AS SENHA

            FROM AG3OPERF)

LOOP


V_IMPORTID := PC_DST_FORMACARGA_END.F_BUSCA_ATIVIDADE('RF');


INSERT INTO CORE_OPERATOR_IMPORT_DATA

  (IMPORTID,

   OPERATORNAME,

   OPERATORIDENTIFIER,

   OPERATORPASSWORD,

   IMPORTSTATUS,

   SITENAME)

VALUES

  (V_IMPORTID, REG.NOME_OPERADOR, REG.ID_OPERADOR, 1234, 0, 'Default');

                                             

END LOOP;


COMMIT;

END;


Importação dos Produtos (lê-se ‘itens’ no Voice)

A importação dos itens deve ser executada em um JOB ao final do dia:

-- INSERT PRODUTOS >> CORE_ITEM_IMPORT_DATA <<


V_IMPORTID  NUMBER(19);


BEGIN


FOR REG IN (SELECT GIT_COD_ITEM||GIT_DIGITO AS COD_ITEM,

                   GIT_DESCRICAO AS DESCRICAO,

                   GIT_DESCRICAO AS DESC_FON,

                   GIT_PESO AS PESO,

                   GIT_CODIGO_EAN13 AS EAN

                   FROM RMS.AA3CITEM)

LOOP


V_IMPORTID:=RMS.PC_DST_FORMACARGA_END.F_BUSCA_ATIVIDADE('RF');


UPDATE VOICELINKNOVO.CORE_ITEM_IMPORT_DATA

SET ITEMDESCRIPTION = REG.DESCRICAO,

    PHONETICDESCRIPTION = REG.DESCRICAO

WHERE ITEMNUMBER = REG.COD_ITEM;


IF SQL%NOTFOUND THEN

  INSERT INTO VOICELINKNOVO.CORE_ITEM_IMPORT_DATA

    (IMPORTID,

     ITEMNUMBER,

     ITEMDESCRIPTION,

     PHONETICDESCRIPTION,

     WEIGHT,

     CUBE,

     ITEMSIZE,

     UPC,

     PACK,

     ISVARIABLEWEIGHTITEM,

     VARIABLEWEIGHTTOLERANCE,

     SCANVERIFICATIONCODE,

     SPOKENVERIFICATIONCODE,

     ISSERIALNUMBERITEM,

     IMPORTSTATUS,

     SITENAME)

  VALUES

    (V_IMPORTID,

     REG.COD_ITEM,

     REG.DESCRICAO,

     REG.DESC_FON,

     REG.PESO,

     0,

     NULL,

     REG.EAN,

     NULL,

     0,

     0,

     NULL,

     NULL,

     0,

     0,

     'Default');

END IF;


END LOOP;


COMMIT;

END;


Importação dos Endereços (lê-se ‘locais’ Voice)

A importação dos locais deve ser executada em um JOB ao final do dia, porém os dígitos verificadores dos endereços devem estar cadastrados previamente, caso contrário os locais não serão importados (vide Ponto 2 - Cadastro dos Dígitos Verificadores):

-- INSERT PRODUTOS >> CORE_LOCATION_IMPORT_DATA <<


DECLARE


V_IMPORTID NUMBER(19);

V_SLOT     VARCHAR2(50);


BEGIN

  

    FOR REG IN (SELECT EES_GALPAO AS GALPAO,

                       EES_RUA    AS RUA,

                       EES_NRO    AS PREDIO,

                       EES_APT    AS APTO,

                       TO_CHAR(NVL(ADE_DIGVERIFICADOR,0),'FM00') AS DIGITO

                FROM RMS.AG3CEEST, RMS.AG5ADEND 

                WHERE ADE_DEPOSITO = EES_DEPOSITO

                AND   ADE_GALPAO = EES_GALPAO

                AND   ADE_RUA    = EES_RUA

                AND   ADE_NRO    = EES_NRO

                AND   ADE_APT    = EES_APT)

    LOOP

               

    V_IMPORTID:= RMS.PC_DST_FORMACARGA_END.F_BUSCA_ATIVIDADE('RF');

   

    IF REG.APTO = 11 THEN

       V_SLOT := REG.PREDIO;

    ELSE

       V_SLOT := REG.PREDIO||'~ '||REG.APTO;

    END IF;

   

    UPDATE VOICELINKNOVO.CORE_LOCATION_IMPORT_DATA

    SET SCANNEDVERIFICATION = REG.GALPAO || '.' || TO_CHAR(REG.RUA, 'FM000') || '.' || TO_CHAR(REG.PREDIO, 'FM000') || '.' || SUBSTR(TO_CHAR(REG.APTO, 'FM000'), 1, 2) || '-' || SUBSTR(TO_CHAR(REG.APTO, 'FM000'), 3, 1)

    WHERE SCANNEDVERIFICATION = REG.GALPAO || '.' || TO_CHAR(REG.RUA, 'FM000') || '.' || TO_CHAR(REG.PREDIO, 'FM000') || '.' || SUBSTR(TO_CHAR(REG.APTO, 'FM000'), 1, 2) || '-' || SUBSTR(TO_CHAR(REG.APTO, 'FM000'), 3, 1);

   

    IF SQL%NOTFOUND THEN

      INSERT INTO VOICELINKNOVO.CORE_LOCATION_IMPORT_DATA

        (IMPORTID,      

         PREAISLE,

         AISLE,

         POSTAISLE,

         SLOT,

         CHECKDIGITS,

         SPOKENVERIFICATION,

         SCANNEDVERIFICATION,

         IMPORTSTATUS,

         SITENAME)

      VALUES

        (V_IMPORTID,      

         REG.GALPAO,

         REG.RUA,

         NULL,

         V_SLOT,

         REG.DIGITO,

         REG.GALPAO||'-'||REG.RUA||'-'||REG.PREDIO||'-'||REG.APTO,      

         REG.GALPAO || '.' || TO_CHAR(REG.RUA, 'FM000') || '.' || TO_CHAR(REG.PREDIO, 'FM000') || '.' || SUBSTR(TO_CHAR(REG.APTO, 'FM000'), 1, 2) || '-' || SUBSTR(TO_CHAR(REG.APTO, 'FM000'), 3, 1),

         0,

         'Default');

     END IF;

  END LOOP;


  COMMIT;

END;


Uma vez garantida as importações dos operadores, itens e locais, as atividades de separação podem ser geradas.

03. TELA de Parâmetros

Para gerar as atividades e utilizar a separação via Sistema de Voz, existem algumas premissas:

  1. O cliente precisa utilizar o módulo da Convocação Ativa;

Principais Campos e Parâmetros

CampoDescrição
  1. USAVOZxxxx, onde xxxx representa o código do Depósito sem dígito precedido de zeros.

Conteúdo = S (Depósito utiliza Voice Picking)

Cadastro do parâmetro para identificar o Depósito que utilizará o Sistema de Voz: Parâmetro.

IMPORTANTE!

Use esse box para destacar informações relevantes e/ou de destaque.


04. TABELAS UTILIZADAS

  • Cadastro da tabela 900 para indicar as filiais que serão separadas pelo Sistema de Voz;


05. CADASTRO DOS DÍGITOS VERIFICADORES

Os dígitos verificadores (DV) compõem parte do endereço. São 2 (dois) dígitos que devem ser informados pelo operador para confirmação da localização, garantindo a assertividade na coleta. Para gerar os dígitos, basta executar a função CtF6 – Voice Picking no Cadastro de Endereços (VGDUEEST), informar o range de endereços para os quais os dígitos serão gerados e confirmar:

Após gerados os DVs, deverá ser executada uma função randômica para garantir o cumprimento de algumas regras na geração dos dígitos no que tange à proximidade dos endereços. As regras são:

  • Locais de mesmo galpão/rua/prédio/nível, mas com aptos diferentes, não podem ter mesmo DV;
  • Locais de mesmo galpão/rua/prédio/apto, mas com níveis diferentes, não podem ter mesmo DV;
  • Locais de mesmo galpão/rua/nível/apto, mas com prédios vizinhos (ou seja, lado a lado), não podem ter mesmo DV;
  • Locais de mesmo galpão/rua/nível/apto, mas com prédios vizinhos (ou seja, lado a lado), não podem ter mesmo DV.

A função a ser executada é a seguinte: F_TESTE_DIGITO.fnc. Ela é responsável por gerar novamente os dígitos que não atenderem às validações supracitadas.


  1. Criação dos JOBs no Tarefas Agendadas (VGGMJOBS).


Os seguintes JOBs devem estar criados:

PC_RMS_RF_CONVOCACAO.PROC_MOTOR_CONVOCACAO com intervalo de execução de 5 à 7 segundos;

PROC_LIMPA_DADOS_VOICE, executar uma vez ao dia antes da formação de carga.

Observação: Os JOBs supracitados deverão ser criados diretamente no RMS, porém a Automatech – Empresa responsável em disponibilizar o serviço de voz – tem criado geralmente um schema específico no banco de dados para executar a aplicação do Voice, deste modo faz-se necessária a inclusão dos referidos JOBs diretamente no schema criado, bem como a compilação dos objetos responsáveis pela integração.

3 – Importações principais (Ponto 1) realizadas e premissas de integração (Ponto 2) atendidas, as atividades de separação podem ser geradas pelo RMS. Quando a carga é formada pela CA, o JOB da Convocação buscará todas as atividades e validará as filiais que serão atendidas pelo Sistema de Voz. Apenas as atividades para as filiais cadastradas na tabela 900 serão gravadas nas tabelas de importação do VL, que seguem:

SEL_ASSIGNMENT_IMPORT_DATA – Tabela de importação onde são gravadas as atividades (Cabeçalho);

SEL_PICK_IMPORT_DATA – Tabela de importação onde são gravados os itens, endereços e quantidades a separar de cada atividade (Detalhe).

Observação: A primeira etapa do WMS no que tange a importação é cumprida quando as tabelas de importação são gravadas corretamente. O próximo passo é de responsabilidade da aplicação do VL, onde o sistema deverá importar efetivamente os dados para as tabelas finais do Sistema de Voz. Em todas as tabelas de importação existe o campo EXPORTSTATUS, o qual indica se o VL executou ou não a importação. O Status 0 (zero), indica que não houve tentativa de importação. O Status 2 (dois) indica que houve tentativa de importação.

Do Processo de Exportação

Uma vez que as atividades estejam disponíveis no VL, os operadores iniciam a separação dos pickings via Sistema de Voz. Finalizadas as atividades, a responsabilidade de exportação dos dados retorna para o WMS, que deve executar uma rotina – já cadastrada em um dos JOBs – para efetuar a leitura das VIEWS disponibilizadas pelo Sistema de Voz e realizar o upload das separações para o RMS.

Observação: Apenas as atividades de separação que estiverem efetivamente finalizadas serão exportadas para o RMS. Caso exista mais de um pallet por atividade, apenas quando todos estiverem fechados e a atividade concluída, o WMS realizará a exportação.

Das Limpezas das Tabelas de Importação

Ao final do dia, um JOB é executado para realizar UPDATES e DELETES em algumas tabelas do VL, apenas com o objetivo de executar uma limpeza e não sobrecarregar o banco de dados.


TABELAS DE IMPORTAÇÃO

CORE_OPERATOR_IMPORT_DATA: Tabela de importação dos operadores;

CORE_ITEM_IMPORT_DATA: Tabela de importação dos itens;

CORE_LOCATION_IMPORT_DATA: Tabela de importação dos endereços;

SEL_ASSIGNMENT_IMPORT_DATA: Tabela de cabeçalho das atividades;

SEL_PICK_IMPORT_DATA: Tabela de detalhe das atividades contendo itens, endereços e quantidade a ser separada.


TABELAS E VIEWS PARA EXPORTAÇÃO

VW_EXPORT_PICKED: View para retornar os itens da atividade, as quantidades separadas e os endereços;

VW_EXPORT_COMPLETE: View para retornar todas as atividades concluídas;

SEL_PICK_DETAILS: Tabela final do voice com os itens separados;

SEL_CONTAINERS: Tabela final do voice para retornar o código dos containers (container = pallet).


OBJETOS DA INTEGRAÇÃO

PC_RMS_VOICE_PICKING: Package responsável pela integração do WMS com o Sistema de Voice da Vocollect;

PC_RMS_RF_CONVOCACAO: Package responsável pela geração de atividades na Convocação Ativa e pela chamada da PC_RMS_VOICE_PICKING.

Observação: A PC_RMS_RF_CONVOCACAO encontra-se específica devido ao schema de banco de dados criados para utilização do Sistema de Voz. Dessa forma, deve-se observar o alias dos objetos do RMS a depender do usuário de banco.

PC_DST_ENDERECAMENTO: Package responsável pelo endereçamento e pela geração dos dígitos verificadores;

PROC_LIMPA_DADOS_VOICE: Procedure responsável por efetuar a limpeza das tabelas do voice. Nela também, constam as chamadas para os objetos que geram diariamente a integração dos itens e endereços;

F_TESTE_DIGITO: Função responsável por gerar novos dígitos verificadores a partir dos critérios definidos pela Automatech.


JOBS

PC_RMS_RF_CONVOCACAO.PROC_MOTOR_CONVOCACAO: Executar em intervalo de 5 à 7 segundos;

PROC_LIMPA_DADOS_VOICE: Executar uma vez ao dia antes da formação de carga.