Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

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

1 Solution

Accepted Solutions
Not applicable
Author

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.

View solution in original post

8 Replies
nicolett_yuri

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

guilherme_olive
Partner - Creator
Partner - Creator

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.

Not applicable
Author

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

nicolett_yuri

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.

Not applicable
Author

É , 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.

Not applicable
Author

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

rogerioqv
Creator II
Creator II

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.

Not applicable
Author

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.