8 Replies Latest reply: Nov 11, 2015 7:01 AM by Endriu Jaime RSS

    Salvar Activedocument.DynamicUpdateCommand

      Boa tarde.

      Na Macro é possível fazer um insert ou update em uma tabela QVD carregada para o Qlik. Porém isto só fica em memória, não consegui salvar no QVD.

      Alguém sabe se tem como salvar no arquivo QVD para que estes dados dinâmicos fiquem permanentemente na aplicação do Qlik?

       

      Sem título.png

        • Re: Salvar Activedocument.DynamicUpdateCommand
          Yuri Nicolett

          Endriu, pode detalhar melhor o que esta querendo fazer? Talvez não haja necessidade de utilizar macro para isso

            • Re: Salvar Activedocument.DynamicUpdateCommand
              Guilherme Oliveira

              Bom dia endriujaime e nicolett.yuri

               

              Yuri, acho que a questão nem é tanto a macro (é possível fazer a mesma coisa com Actions) mas sim o fato de usar o Dynamic Update para realizar INPUT de dados na Nuvem de Dados e depois salvar a Nuvem de Dados em QVD.

               

              Eu cheguei a brincar um pouco e até tenho um exemplo que encontrei na comunidade sobre o Dynamic Update, mas não me aprofundei ou tentei algo como o que Endriu está tentando fazer.

               

              Segue aplicativo para vocês testarem a função. Quanto a salvar eu vou ficar devendo.

              • Re: Salvar Activedocument.DynamicUpdateCommand

                Bom dia Yuri.

                Obrigado desde já a todos pelas respostas.

                Vamos lá:

                 

                Hoje tenho uma aplicação no QlikView para controlar os orçamentos não efetivados.

                Quem faz esta ação é o gerente. Ele abre os orçamentos (clica sobre ele) para visualizar os produtos.

                 

                A minha ideia é "Conferir" o orçamento quando ele for selecionado. Então, criei o botão "CONFERIDO". Portanto, quando ele selecionar o orçamento, vai clicar no botão para marcar como conferido.

                A partir disto, uma macro vinculada ao botão dispara um INSERT na tabela (por enquanto temporária) para armazenar os orçamentos conferidos.

                 

                IMAGEM:

                image2993.png

                  • Re: Salvar Activedocument.DynamicUpdateCommand
                    Yuri Nicolett

                    Endriu, a ideia é legal, porém o QlikView não é para isso.

                    Você pode ate conseguir fazer a inserção de dados em QVD através de ações (conforme exemplo do guilherme.oliveira) e também consegue alterar registros através de INPUTFIELD, mas o problema de tudo isso é que você não consegue garantir o processo se dois ou mais usuários estiverem fazendo as alterações ao mesmo tempo.

                    Lembre-se também que após a inserção das alterações no QVD, você terá que solicitar a atualização/recarga de seu painel para que os dados alterados sejam exibidos (isso você consegue fazer através de EDX) porém imagine se duas pessoas estão trabalhando ao mesmo tempo: a primeira termina a alteração, incluir seus registros no QVD e pede para fazer a recarga. A partir desse ponto a segunda pessoa já estará com seus dados comprometidos, pois o primeiro usuário já alterou os registros do qvd.

                      • Re: Salvar Activedocument.DynamicUpdateCommand

                        É , imaginei isto também.

                        A ideia do conferido é para avaliar se os orçamentos foram convertidos em vendas após serem verificados junto aos vendedores.

                        Vou tentar pensar em outra maneira de fazer isto.

                          • Re: Salvar Activedocument.DynamicUpdateCommand
                            Rogerio Ferreira

                            Endriu,

                             

                            Eu tenho uma aplicação muito parecida com a sua... a diferença é que eu não altero a tabela original, eu crio uma tabela paralela para identificar algumas coisas. Por exemplo, no seu caso, como é o gerente que fará a conferência, dificilmente outra pessoa estará fazendo o mesmo update simultaneamente. O ideal seria criar uma tabela paralela, tipo documentoconferido, com a chave do documento e o status, e sempre que você carregar a tabela original, fazer um join com esta tabela paralela para vir o status do documento.

                             

                            Desta forma, o update ocorre na tabela paralela, não na original. O qlikview não foi feito para isto mas em alguns casos funciona bem. Entretanto, macros do tipo padrão, em o EDX, só funcionam com o Plugin IE.

                             

                            Abraços.

                          • Re: Salvar Activedocument.DynamicUpdateCommand

                            Outra coisa Yuri, você tem algum bom livro sobre B.I. ou o próprio Qlik para indicar?

                      • Re: Salvar Activedocument.DynamicUpdateCommand

                        Bom dia pessoa!

                        Consegui resolver a minha necessidade da seguinte maneira:

                         

                        1º: Criei um banco Postgres chamado "qlik_orcamento";

                        2º: Criei uma tabela chamada "orcamento" com as colunas "orcamento" e "id";

                        3º: Uso um WScrip.Shell que executa um comando "psql" que faz um insert do orçamento conferido nesta tabela. Assim consigo armazená-los;

                        4º: Uso o  "Activedocument.DynamicUpdateCommand" para fazer um insert na tabela temporária de maneira que os registros em tempo real sejam vinculados aos orçamentos conferidos.

                        5º: Na recarga, o Script faz um load da tabela do Postgres para carregar os orçamentos conferidos, posteriormente fazendo um Store no qvd.