Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Ribeiro
Specialist
Specialist

Melhorar Script para salvar QVD.

Anexo no arquivo zip,

Pastas > Banco de Dados> QVD> QVW.

Está funcionando 100%. (Mas achei meio complicado) Talvez tenha um jeito mais rápido de chegar ao resultado final.

Bom Gostaria de Saber se existe como melhorar este script que eu peguei estudando pelo Youtube.

Fonte do Estudo:(Vídeo Youtube): Incremental Data Load in Qlikview - YouTube

+++++++++++++++++++++++++++++++++++++++++++++

ODBC CONNECT32 TO [MS Access Database;DBQ=C:\Qlikview\DataFiles\Orders.accdb];

// 1 -Script de carga inicial.

//LOAD OrderID,

//    ProductID,

//    Customerid,

//    Amount,

//    `Date_updated`;

//SQL SELECT *

//FROM Orders

//where Date_updated >= #$(vUpdateDate)#;

//

//STORE Sales into 'C:\Qlikview\QVDs\Sales.qvd'(qvd);

+++++++++++++++++++++++++++++++++++++++++++++

// 2 -QVD carga de vendas para receber as últimas e data de atualização

Sales:

LOAD OrderID,

     ProductID,

     Customerid,

     Amount,

     Date_updated

FROM

C:\Qlikview\QVDs\Sales.qvd

(qvd);

Sort_Sales:

LOAD *

Resident Sales

Order by Date_updated;

LET 'vUpdateDate' = Peek('Date_updated', -1,'Sort_Sales');

DROP Table Sales;

+++++++++++++++++++++++++++++++++++++++++++++

//3 -CARREGAR REGISTROS INCREMENTAIS DE DADOS DE ORIGEM

incremental:

NoConcatenate

LOAD OrderID,

    ProductID,

    Customerid,

    Amount,

    Date_updated;

SQL SELECT *

FROM NewOrders

where Date_updated >= #$(vUpdateDate)#;

Neves
Labels (1)
1 Solution

Accepted Solutions
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá Altere a forma de definição da variável vUpdateDate.

Exemplo:

LET vUpdateDate = Date(Peek('MaxDate'),'DD/MM/YYYY');
Don't Worry, be Qlik.

View solution in original post

6 Replies
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá Agnaldo, é isso mesmo.

Só alteraria os passos 2 e 3, ficando da seguinte forma.

// 2 -QVD carga de vendas para receber as últimas e data de atualização

TMP_MaxDateSales:

LOAD Max(Date_updated) as MaxDate

FROM C:\Qlikview\QVDs\Sales.qvd (qvd);

LET vUpdateDate = Peek('MaxDate');

DROP Table TMP_MaxDateSales;

//3 -CARREGAR REGISTROS INCREMENTAIS DE DADOS DE ORIGEM

Sales:

LOAD OrderID,

    ProductID,

    Customerid,

    Amount,

    Date_updated;

SQL SELECT *

FROM NewOrders

where Date_updated >= #$(vUpdateDate)#;

// Como as duas tabelas possuem a mesma quantidade de campos com os mesmos nomes, o QlikView Concatena automaticamente em apenas uma tabela

LOAD OrderID,

     ProductID,

     Customerid,

     Amount,

     Date_updated

FROM

C:\Qlikview\QVDs\Sales.qvd

(qvd);

STORE Sales into C:\Qlikview\QVDs\Sales.qvd;


Qlikfique-se.

Tonial.

Don't Worry, be Qlik.
Ribeiro
Specialist
Specialist
Author

Como criar neste script um exemplo para usar apenas uma tabela.

A tabela seria  NewOrders no exemplo

Caso o campo teria modificação o registro Date_updated,

Que o QVD faça a comparação com a tabela NewOrders sem outra tabela.

Neves
fernando_tonial
Partner - Specialist
Partner - Specialist

Desculpa Agnaldo,

Estou sem entender o que você quer.

Pode explicar melhor?

Tonial.

Don't Worry, be Qlik.
Ribeiro
Specialist
Specialist
Author

No banco Dados Orders.mdb

Tem 02 Tabelas (Orders, NewOrders)

Mas eu usarei apenas uma  NewOrders.

Existe como, o QVD (Sales.qvd).

Pegar apenas as atualizações do NewOrders, quando houver.

Não Vou usar ser possível Orders.

Pois as vezes tenho que ficar implementando novos campos.

EXISTI A NECESSIDADE DA TABELA ORDERS NESTE SCRIPT.?

02-09-2014 12-59-23.png

Neves
Ribeiro
Specialist
Specialist
Author

Executei o script acima apareceu este. erro

02-09-2014 14-41-27.png

Neves
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá Altere a forma de definição da variável vUpdateDate.

Exemplo:

LET vUpdateDate = Date(Peek('MaxDate'),'DD/MM/YYYY');
Don't Worry, be Qlik.