Navegação

    Fórum Técnico Insoft4

    • Login
    • Pesquisar

    Integração com sistema E-brigada para o cliente Randon

    Customizações
    randon e-brigada
    1
    1
    38
    Carregando Mais Posts
    • Mais Antigo para Mais Recente
    • Mais Recente para Mais Antigo
    • Mais Votados
    Responder
    • Responder como tópico
    Entre para responder
    Este tópico foi deletado. Apenas usuários com privilégios de moderação de tópico podem vê-lo.
    • jonathan
      jonathan Desenvolvimento última edição por jonathan

      Solicitação: 24475

      Integração com sistema E-brigada para o cliente Randon

      Na solicitação 24475 foi criada a integração do Akita com o sistema E-brigada para o cliente Randon, onde são enviadas as informações de acesso de funcionários que são brigadistas para que seja informada a localização dos mesmos dentro da empresa para esse sistema terceiro.

      A informação de quem é brigadista é disponibilizada através de uma consulta nas tabelas do SAP que foi fornecida pelo cliente, a qual é atualizada diariamente para a tabela customizada PESSOAS_EBRIGADA_RANDON através da execução via job de banco da procedure PROC_GERA_PESSOAS_EBRIGADA.

      Foram criados dois parâmetros customizados para utilização nessa consulta:

      • LISTA_FILIAIS_EBRIGADA - contém a lista do código das filiais para as quais devem ser enviadas as informações ao sistema E-brigada (código separado por vírgula)
      • LISTA_QUALIFICACOES_EBRIGADA - contém a lista dos códigos de qualificação que caracterizam a pessoa como um brigadista habilitado (códigos separados por vírgula)

      Fluxo funcional:

      Foi criada uma trigger customizada TRIG_GERA_ACESSO_EBRIGADA (AS24100) sobre a tabela ACESSOS_PESSOAS. Nessa trigger é realizada a inclusão do registro de acesso na tabela customizada PONTEIROS_ACESSOS_EBRIGADA para todos os acessos autorizados dos tipos "E" (Entrada) ou "S" (Saída).

      O fluxo segue através da execução do job customizado AS24120 que a cada execução irá buscar os registros com status_processamento = Aguardando na tabela customizada PONTEIROS_ACESSOS_EBRIGADA, irá verificar se o acesso pertence a um brigadista (verificando na tabela customizada PESSOAS_EBRIGADA_RANDON) e nesse caso irá incluir o registro na tabela customizada ACESSOS_EBRIGADA_RANDON.
      Essa operação ocorre através da procedure customizada PROC_GERA_ACESSOS_EBRIGADA (AS24110) que é chamada pelo job.

      Os registros na tabela customizada ACESSOS_EBRIGADA_RANDON são processados pela api akitasoft-ebrigada-randon-api, já descrita neste outro post: https://forum.insoft4.com/topic/321/akitasoft-ebrigada-randon-api

      Scripts e objetos envolvidos:

      OS11042.sql

      PROMPT Criando tabela customizada para integração com API E-Brigada...
      
      CREATE TABLE ACESSOS_EBRIGADA_RANDON
      (
        ID                    NUMBER(19)  NOT NULL,
        MATRICULA             NUMBER(10)  NOT NULL,
        COD_RELOGIO           NUMBER(4) NOT NULL,
        DATA_HORA_ACESSO      DATE NOT NULL,
        TIPO_ACESSO           VARCHAR2(1) NOT NULL,
        RELOGIO_SAIDA_EMPRESA VARCHAR2(1) NOT NULL,
        COD_HORARIO_TRABALHO  NUMBER(5),
        ENVIADO_EBRIGADA      VARCHAR2(1) NOT NULL,
        MENSAGEM_ERRO         VARCHAR2(4000)
      ) TABLESPACE &PONTO_DATA
      /
      
      COMMENT ON COLUMN ACESSOS_EBRIGADA_RANDON.ID IS 'Identificador único do registro'
      /
      
      COMMENT ON COLUMN ACESSOS_EBRIGADA_RANDON.MATRICULA IS 'Matrícula do brigadista'
      /
      
      COMMENT ON COLUMN ACESSOS_EBRIGADA_RANDON.COD_RELOGIO IS 'Código do equipamento de acesso'
      /
      
      COMMENT ON COLUMN ACESSOS_EBRIGADA_RANDON.DATA_HORA_ACESSO IS 'Data e hora do acesso'
      /
      
      COMMENT ON COLUMN ACESSOS_EBRIGADA_RANDON.TIPO_ACESSO IS 'Tipo de Acesso - (E)ntrada ou (S)aída'
      /
      
      COMMENT ON COLUMN ACESSOS_EBRIGADA_RANDON.RELOGIO_SAIDA_EMPRESA IS 'Indica se o equipamento de acesso é na saída da empresa'
      /
      
      COMMENT ON COLUMN ACESSOS_EBRIGADA_RANDON.COD_HORARIO_TRABALHO IS 'Código do horário de trabalho do brigadista'
      /
      
      COMMENT ON COLUMN ACESSOS_EBRIGADA_RANDON.ENVIADO_EBRIGADA IS 'Indica se o registro já foi replicado para o sistema E-brigada'
      /
      
      COMMENT ON COLUMN ACESSOS_EBRIGADA_RANDON.MENSAGEM_ERRO IS 'Informa a mensagem de erro retornada pela API, quando houver'
      /
      
      ALTER TABLE ACESSOS_EBRIGADA_RANDON
      ADD CONSTRAINT ACS_BRG_RANDON_PK PRIMARY KEY (ID)
      USING INDEX TABLESPACE &PONTO_NDX
      /
      
      CREATE SEQUENCE SEQ_ACESSOS_EBRIGADA_RANDON
      MINVALUE 1
      MAXVALUE 9999999999999999999
      START WITH 1
      INCREMENT BY 1
      NOCACHE
      /
      
      
      CREATE TABLE PONTEIROS_ACESSOS_EBRIGADA
      (
        ID                   NUMBER(19) NOT NULL,
        TCP_ID               NUMBER(19) NOT NULL,
        DATA_ACESSO          DATE NOT NULL,
        TIPO_ACESSO          VARCHAR2(1) NOT NULL,
        COD_RELOGIO          NUMBER(4) NOT NULL,
        STATUS_PROCESSAMENTO VARCHAR2(1) NOT NULL
      ) TABLESPACE &PONTO_DATA
      /
      
      COMMENT ON COLUMN PONTEIROS_ACESSOS_EBRIGADA.ID IS 'Identificador único do registro. Mesmo identificador da tabela ACESSOS_PESSOAS'
      /
      
      COMMENT ON COLUMN PONTEIROS_ACESSOS_EBRIGADA.TCP_ID IS 'Identifica o histórico da pessoa'
      /
      
      COMMENT ON COLUMN PONTEIROS_ACESSOS_EBRIGADA.DATA_ACESSO IS 'Data e hora do acesso'
      /
      
      COMMENT ON COLUMN PONTEIROS_ACESSOS_EBRIGADA.TIPO_ACESSO IS 'Tipo de Acesso - (E)ntrada ou (S)aída'
      /
      
      COMMENT ON COLUMN PONTEIROS_ACESSOS_EBRIGADA.COD_RELOGIO IS 'Código do equipamento onde ocorreu o acesso'
      /
      
      COMMENT ON COLUMN PONTEIROS_ACESSOS_EBRIGADA.STATUS_PROCESSAMENTO IS 'Status do processamento do registro - (A)guardando, (P)rocessando, (F)inalizado'
      /
      
      ALTER TABLE PONTEIROS_ACESSOS_EBRIGADA
      ADD CONSTRAINT PNT_ACS_EBRIGADA_PK PRIMARY KEY (ID)
      USING INDEX TABLESPACE &PONTO_NDX
      /
      
      CREATE TABLE PESSOAS_EBRIGADA_RANDON
      (
        MATRICULA   NUMBER(10) NOT NULL,
        COD_EMPRESA VARCHAR2(6) NOT NULL,
        NOME        VARCHAR2(60)
      ) TABLESPACE &PONTO_DATA
      /
      
      COMMENT ON COLUMN PESSOAS_EBRIGADA_RANDON.MATRICULA IS 'Matrícula do brigadista'
      /
      
      COMMENT ON COLUMN PESSOAS_EBRIGADA_RANDON.COD_EMPRESA IS 'Código da empresa do brigadista'
      /
      
      COMMENT ON COLUMN PESSOAS_EBRIGADA_RANDON.NOME IS 'Nome do brigadista'
      /
      
      ALTER TABLE PESSOAS_EBRIGADA_RANDON
      ADD CONSTRAINT PSS_EBRIG_RANDON_PK PRIMARY KEY (MATRICULA, COD_EMPRESA)
      USING INDEX TABLESPACE &PONTO_NDX
      /
      
      

      OS11042.atz

      PROMPT Criando parâmetros customizados para integração com API E-Brigada...
      
      insert into parametros_customizados_pontos (nome_parametro, valor_parametro, descr_parametro)
      values ( 'URL_API_EBRIGADA', 'https://sandbox.e-brigada.com.br/api/', 'URL da API de integração com o sistema E-Brigada')
      /
      
      insert into parametros_customizados_pontos (nome_parametro, valor_parametro, descr_parametro)
      values ( 'USUARIO_API_EBRIGADA', '[email protected]', 'Usuário para conexão com a API de integração com o sistema E-Brigada')
      /
      
      insert into parametros_customizados_pontos (nome_parametro, valor_parametro, descr_parametro)
      values ( 'SENHA_API_EBRIGADA', '15AT@frasle', 'Senha para conexão com a API de integração com o sistema E-Brigada')
      /
      
      insert into parametros_customizados_pontos (nome_parametro, valor_parametro, descr_parametro)
      values ( 'LISTA_FILIAIS_EBRIGADA', 'FR01', 'Lista de filiais utilizada na consuolta da view V_PESSOAS_EBRIGADA_RANDON para integração com o sistema E-Brigada')
      /
      
      insert into parametros_customizados_pontos (nome_parametro, valor_parametro, descr_parametro)
      values ( 'LISTA_QUALIFICACOES_EBRIGADA', '50002613,50002614', 'Lista de qualificações utilizada na consuolta da view V_PESSOAS_EBRIGADA_RANDON para integração com o sistema E-Brigada')
      /
      
      commit
      /
      

      AS24100.trg

      create or replace trigger trig_gera_acesso_ebrigada
       after insert
       on acessos_pessoas
       for each row
       --------------------------------- VERSAO CUSTOMIZADA ESPECÍFICA ---------------------------------
        -- OS11042, 08/08/2024, Jonathan. Criacao do objeto.
        --
      declare
      --
      cursor c_autorizado is
        select s.acesso_autorizado
        from   status_acessos_pessoas s
        where  s.status_acesso = :new.status_acesso;
      --
      vacesso_autorizado status_acessos_pessoas.acesso_autorizado%type;
      --
      begin
        --
        if :new.tipo_acesso in ('E','S') then
          --
          open c_autorizado;
            fetch c_autorizado into vacesso_autorizado;
          close c_autorizado;
          --
          if vacesso_autorizado = 'S' then
            --
            insert into ponteiros_acessos_ebrigada ( id,
                                                     tcp_id,
                                                     data_acesso,
                                                     tipo_acesso,
                                                     cod_relogio,
                                                     status_processamento )
            values ( :new.id,
                     :new.tcp_id,
                     :new.data_acesso,
                     :new.tipo_acesso,
                     :new.cod_relogio,
                     'A' );
            --
          end if;
          --
        end if;
        --
      end trig_gera_acesso_ebrigada;
      /
      

      AS24110.prc

      create or replace procedure proc_gera_acessos_ebrigada is
       --------------------------------- VERSAO CUSTOMIZADA ESPECÍFICA ---------------------------------
        -- OS11042, 12/08/2024, Jonathan. Criacao do objeto.
        --
      cursor c_brigadista (ptcp_id in number) is
        select fpp.matricula,
               fpp.cod_horario_trabalho
        from   pessoas_ebrigada_randon        per,
               funcionarios_parametros_pontos fpp
        where  fpp.tcp_id = ptcp_id
        and    per.matricula = fpp.matricula
        and    per.cod_empresa = fpp.cod_empresa;
      --
      r_brigadista c_brigadista%rowtype;
      --
      cursor c_relogio (pcod_relogio in number) is
        select ra.saida_empresa
        from   relogios_acessos ra
        where  ra.cod_relogio = pcod_relogio;
      --
      vrelogio_saida_empresa relogios_acessos.saida_empresa%type;
      --
      begin
        --
        for vreg in ( select p.id,
                             p.tcp_id,
                             p.data_acesso,
                             p.tipo_acesso,
                             p.cod_relogio,
                             p.status_processamento
                      from   ponteiros_acessos_ebrigada p
                      where  p.status_processamento = 'A'
                      order by p.data_acesso asc 
                      for update )
        loop
          --
          update ponteiros_acessos_ebrigada
          set    status_processamento = 'P'
          where  id = vreg.id;
          --
          r_brigadista := null;
          --
          open c_brigadista (vreg.tcp_id);
            fetch c_brigadista into r_brigadista;
            if c_brigadista%found then
              --
              vrelogio_saida_empresa := 'N';
              open c_relogio (vreg.cod_relogio);
                fetch c_relogio into vrelogio_saida_empresa;
              close c_relogio;
              --
              insert into acessos_ebrigada_randon ( id,
                                                    matricula,
                                                    cod_relogio,
                                                    data_hora_acesso,
                                                    tipo_acesso,
                                                    relogio_saida_empresa,
                                                    cod_horario_trabalho,
                                                    enviado_ebrigada )
              values ( seq_acessos_ebrigada_randon.nextval,
                       r_brigadista.matricula,
                       vreg.cod_relogio,
                       vreg.data_acesso,
                       vreg.tipo_acesso,
                       vrelogio_saida_empresa,
                       r_brigadista.cod_horario_trabalho,
                       'N' );
              --
            end if;
          close c_brigadista;
          --
          update ponteiros_acessos_ebrigada
          set    status_processamento = 'F'
          where  id = vreg.id;
          --
          commit;
          --
        end loop;
        --
      end proc_gera_acessos_ebrigada;
      /
      

      AS24120.job

      PROMPT Cadastrando JOB para geração de dados de acesso para o sistema E-brigada...
      SET SERVEROUTPUT ON SIZE 100000
      DECLARE
        --
        VJOB       NUMBER;
        VCJP_NRO   NUMBER;
        VATUALIZA  BOOLEAN                                        := TRUE;
        VDESCRICAO CADASTROS_JOBS_PONTOS.DESCRICAO_JOB%TYPE       := 'Gera acessos E-brigada';
        VNOME_JOB  CADASTROS_JOBS_PONTOS.NOME_JOB%TYPE            := 'PROC_GERA_ACESSOS_EBRIGADA';
        VACAO_JOB  CADASTROS_JOBS_PONTOS.ACAO%TYPE                := 'PROC_GERA_ACESSOS_EBRIGADA';
        VINTERVAL  CADASTROS_JOBS_PONTOS.EXPRESSAO_INTERVALO%TYPE := 'SYSDATE+3/1440';
        PACAO_JOB  CADASTROS_JOBS_PONTOS.ACAO%TYPE;
        XACAO_JOB  CADASTROS_JOBS_PONTOS.ACAO%TYPE                := 'BEGIN NULL; END;';
        VDATA_INI  CADASTROS_JOBS_PONTOS.DATA_INICIAL_EXECUCAO%TYPE := SYSDATE+3/1440;
        --
        CURSOR CJOB IS
          SELECT JOB
               , INTERVAL
               , NEXT_DATE
            FROM USER_JOBS
           WHERE UPPER(WHAT) LIKE '%'||VACAO_JOB||'%'
             AND UPPER(WHAT) NOT LIKE '%JOBNAME%';
        --
        CURSOR C_CJP IS
          SELECT CJP.NRO_JOB
            FROM CADASTROS_JOBS_PONTOS CJP
           WHERE CJP.NOME_JOB = VNOME_JOB;
        --
      BEGIN
        --
        OPEN CJOB;
        FETCH CJOB INTO VJOB, VINTERVAL, VDATA_INI;
          --
          IF CJOB%FOUND THEN
            --
            DBMS_OUTPUT.PUT_LINE('JOB já existente no cliente: '|| TO_CHAR(VJOB));
            --
            VATUALIZA := FALSE;
            --
            PACAO_JOB := PACK_JOB_PONTO.MONTA_ACAO_JOB('J',VNOME_JOB,''''||VACAO_JOB||'''',VDESCRICAO,NULL,'S',VJOB);
            --
            DBMS_JOB.REMOVE(VJOB);
            DBMS_JOB.ISUBMIT(VJOB, PACAO_JOB, VDATA_INI, VINTERVAL);
            --
          ELSE
            --
            DBMS_JOB.SUBMIT(VJOB, XACAO_JOB, VDATA_INI, VINTERVAL);
            DBMS_JOB.REMOVE(VJOB);
            --
            PACAO_JOB := PACK_JOB_PONTO.MONTA_ACAO_JOB('J',VNOME_JOB,''''||VACAO_JOB||'''',VDESCRICAO,NULL,'S',VJOB);
            --
            DBMS_JOB.ISUBMIT(VJOB, PACAO_JOB, VDATA_INI, VINTERVAL);
            --
            DBMS_OUTPUT.PUT_LINE('JOB Criado: '|| TO_CHAR(VJOB));
            --    
          END IF;
          --
        CLOSE CJOB;
        --
        BEGIN
          --
          OPEN C_CJP;
          FETCH C_CJP INTO VCJP_NRO;
            --
            IF C_CJP%FOUND THEN
              --
              DBMS_OUTPUT.PUT_LINE('JOB já existente na versão Full Web: '|| TO_CHAR(VCJP_NRO));
              --
            ELSE
              --
              INSERT INTO CADASTROS_JOBS_PONTOS(NRO_JOB
                                               ,NOME_JOB
                                               ,ACAO
                                               ,DATA_INICIAL_EXECUCAO
                                               ,DATA_FINAL_EXECUCAO
                                               ,EXPRESSAO_INTERVALO
                                               ,HABILITADO
                                               ,DESCRICAO_JOB
                                               ,EMAIL
                                               ,GERA_LOG_SOMENTE_ERRO
                                               ,REINICIAVEL
                                               ,VERSION)
                                        VALUES (SEQ_CADASTROS_JOBS_PONTOS.NEXTVAL
                                               ,VNOME_JOB
                                               ,VACAO_JOB
                                               ,VDATA_INI
                                               ,NULL
                                               ,VINTERVAL
                                               ,'S'
                                               ,VDESCRICAO
                                               ,NULL
                                               ,'S'
                                               ,'S'
                                               ,0)
                                     RETURNING NRO_JOB
                                          INTO VCJP_NRO;
              --
              DBMS_OUTPUT.PUT_LINE('JOB versão Full Web Cadastrado: '|| TO_CHAR(VCJP_NRO));
              --
              IF VATUALIZA THEN
                --
                PACK_JOB_PONTO.ATUALIZA_JOB_BANCO( 'I'
                                                 , VNOME_JOB
                                                 , ''''||VACAO_JOB||''''
                                                 , VDATA_INI
                                                 , NULL
                                                 , VINTERVAL
                                                 , 'S'
                                                 , VDESCRICAO
                                                 , NULL
                                                 , 'S'
                                                 , 'S'
                                                 , VJOB );
                --
              END IF;
              --      
            END IF;
            --
          CLOSE C_CJP;
          --
        END;  
        --
        COMMIT;
        --
      END;
      /
      

      AS24140.prc

      create or replace procedure proc_gera_pessoas_ebrigada is
       --------------------------------- VERSAO CUSTOMIZADA ESPECÍFICA ---------------------------------
        -- OS11042, 15/08/2024, Jonathan. Criacao do objeto.
        --
      begin
        --
        delete pessoas_ebrigada_randon;
        --
        for vreg in ( select liga.objid MATRICULA,
                             sap.empr as COD_EMPRESA,
                             sap.nome NOME
                      from   sistemas.e1p1001 liga,
                             sistemas.funcionarios_sap sap
                      where  liga.objid = sap.matr
                      and    pack_util.consta_lista(pack_util.valor_param_customizado('LISTA_FILIAIS_EBRIGADA',sap.arearh)) = 'S'
                      and    liga.sclas = 'Q'
                      and    pack_util.consta_lista(pack_util.valor_param_customizado('LISTA_QUALIFICACOES_EBRIGADA',liga.sobid)) = 'S'
                      and    liga.endda > sysdate )
        loop
          --
          begin
            --
            insert into pessoas_ebrigada_randon ( matricula, 
                                                  cod_empresa,
                                                  nome )
            values ( vreg.matricula,
                     vreg.cod_empresa,
                     vreg.nome );
            --
          exception
            when dup_val_on_index then
              null;
          end;
          --
        end loop;
        --
        commit;
        --
      end proc_gera_pessoas_ebrigada;
      /
      

      AS24130.job

      PROMPT Cadastrando JOB para geração de dados de pessoas integração com o sistema E-brigada...
      SET SERVEROUTPUT ON SIZE 100000
      DECLARE
        --
        VJOB       NUMBER;
        VCJP_NRO   NUMBER;
        VATUALIZA  BOOLEAN                                        := TRUE;
        VDESCRICAO CADASTROS_JOBS_PONTOS.DESCRICAO_JOB%TYPE       := 'Gera pessoas E-brigada';
        VNOME_JOB  CADASTROS_JOBS_PONTOS.NOME_JOB%TYPE            := 'PROC_GERA_PESSOAS_EBRIGADA';
        VACAO_JOB  CADASTROS_JOBS_PONTOS.ACAO%TYPE                := 'PROC_GERA_PESSOAS_EBRIGADA';
        VINTERVAL  CADASTROS_JOBS_PONTOS.EXPRESSAO_INTERVALO%TYPE := 'TRUNC(SYSDATE+1)+1/24';
        PACAO_JOB  CADASTROS_JOBS_PONTOS.ACAO%TYPE;
        XACAO_JOB  CADASTROS_JOBS_PONTOS.ACAO%TYPE                := 'BEGIN NULL; END;';
        VDATA_INI  CADASTROS_JOBS_PONTOS.DATA_INICIAL_EXECUCAO%TYPE := SYSDATE;
        --
        CURSOR CJOB IS
          SELECT JOB
               , INTERVAL
               , NEXT_DATE
            FROM USER_JOBS
           WHERE UPPER(WHAT) LIKE '%'||VACAO_JOB||'%'
             AND UPPER(WHAT) NOT LIKE '%JOBNAME%';
        --
        CURSOR C_CJP IS
          SELECT CJP.NRO_JOB
            FROM CADASTROS_JOBS_PONTOS CJP
           WHERE CJP.NOME_JOB = VNOME_JOB;
        --
      BEGIN
        --
        OPEN CJOB;
        FETCH CJOB INTO VJOB, VINTERVAL, VDATA_INI;
          --
          IF CJOB%FOUND THEN
            --
            DBMS_OUTPUT.PUT_LINE('JOB já existente no cliente: '|| TO_CHAR(VJOB));
            --
            VATUALIZA := FALSE;
            --
            PACAO_JOB := PACK_JOB_PONTO.MONTA_ACAO_JOB('J',VNOME_JOB,''''||VACAO_JOB||'''',VDESCRICAO,NULL,'S',VJOB);
            --
            DBMS_JOB.REMOVE(VJOB);
            DBMS_JOB.ISUBMIT(VJOB, PACAO_JOB, VDATA_INI, VINTERVAL);
            --
          ELSE
            --
            DBMS_JOB.SUBMIT(VJOB, XACAO_JOB, VDATA_INI, VINTERVAL);
            DBMS_JOB.REMOVE(VJOB);
            --
            PACAO_JOB := PACK_JOB_PONTO.MONTA_ACAO_JOB('J',VNOME_JOB,''''||VACAO_JOB||'''',VDESCRICAO,NULL,'S',VJOB);
            --
            DBMS_JOB.ISUBMIT(VJOB, PACAO_JOB, VDATA_INI, VINTERVAL);
            --
            DBMS_OUTPUT.PUT_LINE('JOB Criado: '|| TO_CHAR(VJOB));
            --    
          END IF;
          --
        CLOSE CJOB;
        --
        BEGIN
          --
          OPEN C_CJP;
          FETCH C_CJP INTO VCJP_NRO;
            --
            IF C_CJP%FOUND THEN
              --
              DBMS_OUTPUT.PUT_LINE('JOB já existente na versão Full Web: '|| TO_CHAR(VCJP_NRO));
              --
            ELSE
              --
              INSERT INTO CADASTROS_JOBS_PONTOS(NRO_JOB
                                               ,NOME_JOB
                                               ,ACAO
                                               ,DATA_INICIAL_EXECUCAO
                                               ,DATA_FINAL_EXECUCAO
                                               ,EXPRESSAO_INTERVALO
                                               ,HABILITADO
                                               ,DESCRICAO_JOB
                                               ,EMAIL
                                               ,GERA_LOG_SOMENTE_ERRO
                                               ,REINICIAVEL
                                               ,VERSION)
                                        VALUES (SEQ_CADASTROS_JOBS_PONTOS.NEXTVAL
                                               ,VNOME_JOB
                                               ,VACAO_JOB
                                               ,VDATA_INI
                                               ,NULL
                                               ,VINTERVAL
                                               ,'S'
                                               ,VDESCRICAO
                                               ,NULL
                                               ,'S'
                                               ,'S'
                                               ,0)
                                     RETURNING NRO_JOB
                                          INTO VCJP_NRO;
              --
              DBMS_OUTPUT.PUT_LINE('JOB versão Full Web Cadastrado: '|| TO_CHAR(VCJP_NRO));
              --
              IF VATUALIZA THEN
                --
                PACK_JOB_PONTO.ATUALIZA_JOB_BANCO( 'I'
                                                 , VNOME_JOB
                                                 , ''''||VACAO_JOB||''''
                                                 , VDATA_INI
                                                 , NULL
                                                 , VINTERVAL
                                                 , 'S'
                                                 , VDESCRICAO
                                                 , NULL
                                                 , 'S'
                                                 , 'S'
                                                 , VJOB );
                --
              END IF;
              --      
            END IF;
            --
          CLOSE C_CJP;
          --
        END;  
        --
        COMMIT;
        --
      END;
      /
      

      Objetos disponíveis na pasta O:\PONTO\Clientes\32.Randon\CustomizacoesEspecificas\PATCHS\OS11042

      1 Resposta Última resposta Responder Citar 2
      • Primeiro post
        Último post
      Powered by NodeBB | Contributors