Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Arquivo QVD modificado/apagado para 0kb

Olá Pessoal,

Percebi que uma de minhas tasks estava dando erro e então descobri que meu arquivo, que já havia sido carregado e que estava carregando normalmente, por algum motivo, foi para 0kb.

Obs.: Utilizamos o esquema de carregamento incremental.

A solução paliativa foi voltar o bkp do arquivo carregado para que a task prosseguisse o seu carregamento.

Alguém já passou por essa situação ou sabe como posso solucionar ?

2.2.png

Log:

2.3.png

2.1.png

Abraço!

Labels (1)
1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Felipe,

existe uma variável no Qlik que se estiver setada continua apos o erro......


set ErrorMode=0;


Não sei se você tem ela setada, pois teoricamente dando erro antes de dar o store o QVD não poderia ser perdido.....


De qualquer forma, em cargas incrementais, para evitar que em uma carga PARCIAL eu mate o arquivo QVD eu faco uma checagem da qtde de registros que tem o QVD e o que foi lido do banco de dados + concatenacao do QVD. Se for igual ou maior , salvo....

Se existe o QVD, pego a qtde de registros...

LET v_VBUK_QVD    = QvdNoOfRecords('$(vStagePath)VBUK.QVD');

E depois de ler do banco e caso concatenar, verifico os tamanhos....se for maior salvo,


Let v_VBUK_RAM = NoOfRows('VBUK');         // Qtde de Registros na memoria

if $(v_VBUK_RAM) > $(v_VBUK_QVD) then    // Se em memoria for maior que a qtde do QVD

   TRACE ** Salvando o QVD da VBUK...em RAM $(v_VBUK_RAM)...em QVD $(v_VBUK_QVD) **;

   STORE VBUK Into  $(vStagePath)VBUK.QVD (qvd);

ELSE

   TRACE ************************* Nao Salvou o QVD pois os registros em RAM $(v_VBUK_RAM) sao menores que os em QVD $(v_VBUK_QVD) *********************************;

ENDIF

DROP Table VBUK;

Quem sabe voce adapta ao seu codigo/negocio e assim, nao salvara o QVD com menos do que ja tinha....

furtado@farolbi.com.br

View solution in original post

5 Replies
maxgro
MVP
MVP

You can check if the qvd exists

Re: Load script only if file exists?

If not exists, skip the load

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Felipe,

existe uma variável no Qlik que se estiver setada continua apos o erro......


set ErrorMode=0;


Não sei se você tem ela setada, pois teoricamente dando erro antes de dar o store o QVD não poderia ser perdido.....


De qualquer forma, em cargas incrementais, para evitar que em uma carga PARCIAL eu mate o arquivo QVD eu faco uma checagem da qtde de registros que tem o QVD e o que foi lido do banco de dados + concatenacao do QVD. Se for igual ou maior , salvo....

Se existe o QVD, pego a qtde de registros...

LET v_VBUK_QVD    = QvdNoOfRecords('$(vStagePath)VBUK.QVD');

E depois de ler do banco e caso concatenar, verifico os tamanhos....se for maior salvo,


Let v_VBUK_RAM = NoOfRows('VBUK');         // Qtde de Registros na memoria

if $(v_VBUK_RAM) > $(v_VBUK_QVD) then    // Se em memoria for maior que a qtde do QVD

   TRACE ** Salvando o QVD da VBUK...em RAM $(v_VBUK_RAM)...em QVD $(v_VBUK_QVD) **;

   STORE VBUK Into  $(vStagePath)VBUK.QVD (qvd);

ELSE

   TRACE ************************* Nao Salvou o QVD pois os registros em RAM $(v_VBUK_RAM) sao menores que os em QVD $(v_VBUK_QVD) *********************************;

ENDIF

DROP Table VBUK;

Quem sabe voce adapta ao seu codigo/negocio e assim, nao salvara o QVD com menos do que ja tinha....

furtado@farolbi.com.br
nicolett_yuri

Esse campo: "NR_MOVIMENTO" foi adicionado posteriormente?

Quando realizamos carga incremental, sempre que houver acréscimo de uma coluna, esta deve ser inserida, em todo o histórico, no arquivo QVD da carga.

Anonymous
Not applicable
Author

Esse campo está sendo apontado no erro, pois é o primeiro campo da carga, mas ele já existia.

Na verdade, qualquer outro campo ele iria acusar esse erro, pois o arquivo encontrava-se vazio (0KB).

Anonymous
Not applicable
Author

Obrigado Alessandro !!!

Vou implementar essas verificações em meus carregadores.