Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Not applicable

Como validar arquivos antes da carga?

Estou precisando confirmar a existência de um arquivo QVD antes de fazer a carga.

O motivo é que caso o arquivo não exista, faço uma conexão (LDAP ou OLEDB) e gravo um novo QVD.

Se já existir, verifico se é muito antigo (com o FileTime) pra decidir se faço outra carga ou carrego o QVD existente.

1 Solution

Accepted Solutions
rphpacheco
Contributor III

Re: Como validar arquivos antes da carga?

Bom dia Rodrigo.

Tente desta maneira

LET Tamanho_Arquivo= FileSize('C:\teste.txt');

If Not Isnull($(Tamanho_Arquivo)) then

Conexão;

Leitura dos dados;

end if


Coloquei no exemplo apenas uma carga experimental, mas você poderá incluir a sua necessidade acrescentando um else

8 Replies
Employee
Employee

Re: Como validar arquivos antes da carga?

IF not Filesize('caminho e nome do arquivo') > 0 then

    //Conectar

end if

Not applicable

Re: Como validar arquivos antes da carga?

Assim não deu.

Quando o arquivo não existe, dá erro na execução do script.

Obrigado por responder.

Employee
Employee

Re: Re: Como validar arquivos antes da carga?

Deve ter outra coisa errada. O trecho abaixo roda certinho

if FileSize('c:\essearquivonaoexiste.txt') > 0 then

  trace Arquivo existe;

end if

Highlighted
Employee
Employee

Re: Re: Como validar arquivos antes da carga?

Coloca seu código e qual a mensagem de erro que gera

rphpacheco
Contributor III

Re: Como validar arquivos antes da carga?

Bom dia Rodrigo.

Tente desta maneira

LET Tamanho_Arquivo= FileSize('C:\teste.txt');

If Not Isnull($(Tamanho_Arquivo)) then

Conexão;

Leitura dos dados;

end if


Coloquei no exemplo apenas uma carga experimental, mas você poderá incluir a sua necessidade acrescentando um else

Not applicable

Re: Como validar arquivos antes da carga?

Pessoal, com o Isnull() deu certo!

Eu uso o script em vários painéis para identificar os usuários ativos do meu ActiveDirectory.

Assim não preciso carregar toda hora do LDAP. Mas se o usuário nunca carregou, tem que criar.

O código ficou assim:

Let usermaq=mid(OSuser(),12);

Let Tamanho_Arquivo=FileSize('E:\ScriptAD\InativosAD_$(usermaq).qvd');

If not Isnull(Tamanho_Arquivo) then

  If FileTime('E:\ScriptAD\InativosAD_$(usermaq).qvd') >= now()-0.1 Then

    //Rotina para carregar direto do QVD (dados criados há menos de 2,4 horas)

    Exit Script

  Endif

Endif

//Rotina para carregar com a conexão LDAP (criar novo QVD ou atualizar dados)

Not applicable

Re: Como validar arquivos antes da carga?

Clever, testei com o FileSize de novo.

Mas quando o arquivo não existe, ele não entra na rotina:

Let usermaq=mid(OSuser(),12);

if not FileSize('E:\ScriptAD\InativosAD_$(usermaq).qvd') > 0 then

  load 'deu certo' as x AutoGenerate 1;

Endif

matzenbacher
Contributor II

Re: Como validar arquivos antes da carga?

Parabéns amigo, só lembra de setar a resposta correta pra quem te lançou a lógica da parada (y)