8 Replies Latest reply: Oct 13, 2016 7:35 PM by Jeferson Vargas RSS

    Processo para atualizar automaticamente minha aplicação QVW

    Jeferson Vargas

      Prezados desde de ja agradeço pelas ultimas respostas onde aprendi muito!

       

      A situação é a seguinte:

       

      Tenho uma base de dados com uma tabela HISTORICO, onde todas as ocorrencia ficam registradas.

       

      Gerei minha aplicação com base nesta tabela onde fiz uma query para trazer todas as informações que preciso.

       

      nesta tabela HISTORICO, tenho uma campo DATA e gostaria de atualizar minha aplicação sem fazer um reload manual.

       

      Hoje faço da seguinte forma:

       

      1º Faço reload gerando as informações [base]

      2º Gero o qvd [base.qvd]

      3º Drop table a tabela [base]

      4º Coloco o QVD Base.qvd atualizado dentro da minha pasta no servidor chamada DADOS

      5º Abro minha aplicação no Servidor e testo assim como no Access Point

       

      Como posso fazer isso de forma profissional sem esses passos todos ?

      Arquivo de extração separado?

      Management Console, guia document, colocar o extrator dentro da pasta EXTRAÇÃO ?

      Como agendar na guia RELOAD ?

        • Re: Processo para atualizar automaticamente minha aplicação QVW
          Paulo Vendruscolo Bermude

          Jeferson,

           

          Basta você agendar seus QVW no QMC.

           

          QMC>Documents>Seleciona o QVW que deseja agendar>aba reload>aplique a regra de carga deseja>botão aplicar

           

          um exemplo:

           

          1 QVW - Extração da base original - Carregar todo dia as 09:00

          Na aba reload, selecione a opção Days e preencha o campo Every e o campo horas com 09:00;

           

          2 QVW - Vai tratar os dados extraídos do QVW 1 - Selecione a opção On Event from Another Task e preencha os campos com successful e localize o QVW 1;

           

          3 QVW - Sua visão final. Repete o passo do QVW 2, porém, em On Event from Another Task selecione successful  e localize o QVW 2;

           

          Obs: Basta vc definir a melhor regra de acordo com as suas necessidades...

          • Re: Processo para atualizar automaticamente minha aplicação QVW
            mauro ponte

            Jeferson,

             

            Complementando as dicas do Paulo....

             

            Seria bom que voce criasse um QVW para cada operação(Extração, Transformação e Load-Visão), ou pelo menos para extração e load, assim voce libera o banco de dados mais rapidamente.

             

            Para organizar melhor vão algumas sugestões:

             

            1)Crie pastas diferentes para cada operação. Assim os extratores, transformadores e visões ficam melhor organizados, propiciando tambem uma melhor apresentação no Access Point.

             

            2)Após criar as pastas e distribuir as aplicações configure as pastas na QMC nas abas System>Setup>Qlikview Servers>Folders e System>Setup>Distribution Services>General.

             

            3)Ainda na QMC, na aba Documents>User Documents> Document Information Crie categorias para suas aplicações. Por exemplo voce pode criar uma categoria Extratores, outra Transformadores e outra Visoes, e associa-las a cada aplicação de acordo com a operação. dessa forma fica mais facil de encontrar suas aplicações no Access Point. No caso das visoes finais voce poderia por exemplo criar categorias tipo Visoes Financeiras, Visões de Compras, Visoes de Faturamento, etc. para organizar as visoes por setores.

             

            4)Na Aba Documents>User Documents>Server> Availability da QMC desmarque a opção EI Client para os extratores e transformadores para que estes nao sejam apresentados no Access Point, e nao sejam vistos pelos usuários finais.

             

            Em seguida proceda o agendamento das tarefas de recarga conforme orientado pelo paulo.

             

            Segue anexo documento com imagens das abas da QMC sitadas.

             

            Espero ter ajudado.

              • Re: Processo para atualizar automaticamente minha aplicação QVW
                Jeferson Vargas

                Obrigado Mauro, acabei criando essas hierarquias anteriormente de tanto de fucei no qlikview, tambem criei varios modulos a ja acesso no access point assim como separei com essas politicas de boas praticas que você recomendou...mas fico muito agradecido por seu esclarecimento...mas realmente o que estou apanhando é nas DATAS...não consegui fazer com que minha variavel de DATA usada conforme abaixo funcione...e não sei como solucionar, já nem dormi pensando nisso...kkkk agradeço se puder ajudar Mauro.

                 

                 

                //seleciona maxima data no qvd

                tmp:

                load

                max(HIS_DATAHORA) as HIS_DATAHORA

                FROM

                [C:\Users\jeferson.vargas\Desktop\HISTORICO_CCF.QVD]

                (qvd);

                 

                //quarda a informação da ultima data qvd

                let vData = date(peek('HIS_DATAHORA',0,tmp),'DD/MM/YYYY');

                 

                drop table tmp;

                 

                 

                 

                //uso a variavel para atualizar o qvd (AQUI ESTA O PROBLEMA A VARIAVEL FUNCIONA MAS TRAZ NESTA CONSULTA DATAS ANTERIORES A DATA DA VARIAVEL EXEMPLO:

                NA VARIAVEL ESTA 04/10/2016 NA CONSULTA TRAZ DADOS COM DATAS TIPO12/04/2016)

                 

                 

                 

                SELECT * FROM HISTORICO H

                WHERE

                h.his_pro_cod ='CCF'

                and h.his_datahora >= '$(vData)'

                and rownum <100

                ;

                  • Re: Processo para atualizar automaticamente minha aplicação QVW
                    mauro ponte

                    Jeferson,

                     

                    Acredito que o que esteja acontecendo é que o SQL nao está aceitando a clausula '$(vData)' no where, pois acho que ele nao interpreta o $  como o qlik.

                     

                    Tente subir a tabela toda sem '$(vData)' na clausula where em uma tabela temporaria deixando ela em memoria.

                     

                    em seguida carregue a tabela a partir da tabela em memoria a clausula resident utilizando o where.

                     

                    Ficaria mais ou menos assim:

                     

                    TB_Temp:

                    SELECT * FROM HISTORICO H where and rownum <100;

                     

                    noconcatenate

                     

                    load *

                    resident TB_Temp

                    WHERE

                    h.his_pro_cod ='CCF'

                    and his_datahora >= '$(vData)';

                    • Re: Processo para atualizar automaticamente minha aplicação QVW
                      Thiago Manoel Gonçalo

                      Jeferson, boa tarde!

                       

                      Pode estar acontecendo a seguinte situação. Você formatou a data da variavel utilizando 'DD/MM/YYYY'), porem como vc esta utilizando a variavel no SQL, pode ser que o formato da data no sql esteja MM/DD/YYYY, is faz com que aparentemente você esteja trazendo algumas datas antigas.. mais na verdade o formato está errado.

                       

                      Para solucionar isso eu acredito que o melhor seria colocar a variavel no load mais ou menos desta forma

                       

                      LOAD *

                      WHERE DATE#(his_datahora,'DD/MM/YYYY)  <= '$(vData);

                      SELECT * FROM HISTORICO H

                      WHERE

                      h.his_pro_cod ='CCF'

                      and rownum <100;

                       

                       

                      Qualquer duvida à disposição.

                          • Re: Processo para atualizar automaticamente minha aplicação QVW
                            Jeferson Vargas

                            Nossa DEPOIS Uma semana OU Duas de m uita peleia e Muita Leitura, vídeos MUITOS, e principalmente com a Ajuda de voces aqui a Fazer fórum achei o Erro OU Melhor achei varios Erros e varios acertos e principalmente aprendi Mais do Que imaginava Aprender MUITO OBRIGADO MESMO A TODOS QUE TIVERAM PACIENCIA COM MINHAS dúvidas e generosamente ajudaram!

                             

                            Bom galera Primeiro:

                            QUANDO vou buscar um Dados (dados max) Dentro do QVD, Preciso formatar Paragrafo timestamp porque no QVD Assim Como NÃO meu oráculo o formato de e DD / MM / AAAA HH24: MM: SS é Isso vai Ser Jogado Dentro da variavel vData, Esse foi O Primeiro Erro ...

                             

                            Segundo, quando declaro variavel Uma NÃO Preciso Passar o formato Novamente pois ja passei NÃO busco carga quando Nao QVD é Isso estava Gerando o Erro de literal blablabla ... ufa

                             

                            Terceiro DEPOIS de Passar hum Paragrafo variavel a buscar consulta não Como a Oracle INFORMAÇÕES repeitando Uma variavel, tambem Precisa formatar o tipo de Dados, voces me ajudaram Certo Quanto Ao USAR o TO_DATE mas Uma unica letra estava ferrando com a minha vida Aqui e POR ISSO NÃO funcionava Direito trazendo Valores de Dados Erradas ... resumindo sem Oracle e diferente do Qlik ... DD / MM / AAAA HH24: MI: SS esse "eu" Passou batido por Mim e POR ISSO NAO funcionava ...

                             

                            Entao FICA Uma dica, Não um a Oracle DD / MM / AAAA HH24: MI: SS NÃO Qlik DD / MM / AAAA HH: MM: SS

                             

                            Obrigado a todos vou Ficar fera Nesse Qlik com a Ajuda de VOCÊS!