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

Carga Incremental

Boa tarde Senhores (as).

Gostaria de fazer uma carga incremental a partir de um campo datatime para não precisar carregar toda a informação toda hora.

exemplo script :

set Variavel_hora = MAX(data_acionamento) ;

conexão banco de dados ;

SQL select * from acionamentos where data_acionamento > "variavel_hora (datetime)"

Store informacao nova into caminho QVD.

Obrigado.

Labels (1)
1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Paulo, segue um exemplo de uma tabela do SAP que ao inves de um campo data tem um campo sequencial.

Seria adaptar as suas necessidades.

/===================================================================================================================

// incremental

//

//=================================================================================================================================

TRACE '$(STGPath)\$(STGPrefixo)CDPOS.QVD';

//

LET vQvdExists = if(FileSize('$(Path)\CDPOS.QVD') > 0, -1, 0);

IF $(vQvdExists) THEN

MaxSeq:

LOAD MaxString(CHANGENR) as MaxSeq FROM [$(Path)\CDPOS.QVD] (qvd);

LET vIncrementalExpression = ' and CHANGENR >=' & chr(39) & peek('MaxSeq') & chr(39);

DROP table MaxSeq;

ELSE

LET vIncrementalExpression = '';

END IF

TRACE '$(vIncrementalExpression)';

//=================================================================================================================================

CDPOS:

SQL SELECT * FROM CDPOS Where TABNAME = 'MARA' and FNAME = 'MSTAE' and OBJECTCLAS = 'MATERIAL' $(vIncrementalExpression);

//

IF $(vQvdExists) THEN

CONCATENATE (CDPOS) LOAD * FROM $(Path)\CDPOS.QVD (qvd) WHERE NOT exists(CHANGENR);

END IF

//

STORE CDPOS INTO $(Path)\CDPOS.QVD(QVD);

DROP TABLE CDPOS;

//=================================================================================================================================

furtado@farolbi.com.br

View solution in original post

4 Replies
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Paulo, segue um exemplo de uma tabela do SAP que ao inves de um campo data tem um campo sequencial.

Seria adaptar as suas necessidades.

/===================================================================================================================

// incremental

//

//=================================================================================================================================

TRACE '$(STGPath)\$(STGPrefixo)CDPOS.QVD';

//

LET vQvdExists = if(FileSize('$(Path)\CDPOS.QVD') > 0, -1, 0);

IF $(vQvdExists) THEN

MaxSeq:

LOAD MaxString(CHANGENR) as MaxSeq FROM [$(Path)\CDPOS.QVD] (qvd);

LET vIncrementalExpression = ' and CHANGENR >=' & chr(39) & peek('MaxSeq') & chr(39);

DROP table MaxSeq;

ELSE

LET vIncrementalExpression = '';

END IF

TRACE '$(vIncrementalExpression)';

//=================================================================================================================================

CDPOS:

SQL SELECT * FROM CDPOS Where TABNAME = 'MARA' and FNAME = 'MSTAE' and OBJECTCLAS = 'MATERIAL' $(vIncrementalExpression);

//

IF $(vQvdExists) THEN

CONCATENATE (CDPOS) LOAD * FROM $(Path)\CDPOS.QVD (qvd) WHERE NOT exists(CHANGENR);

END IF

//

STORE CDPOS INTO $(Path)\CDPOS.QVD(QVD);

DROP TABLE CDPOS;

//=================================================================================================================================

furtado@farolbi.com.br
Anonymous
Not applicable
Author

Boa tarde, Clever.

Muito bom, eu tenho um ID sequencial na tabela, agora estou incrementando por ele.

Obrigado.

Anonymous
Not applicable
Author

Boa tarde, Alessandro.

funcionou perfeitamente, eu tinha um ID na tablela, agora estou incrementando através dele.

Obrigado.