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: 
Anonymous
Not applicable

Carga de Dados da Internet

Olá pessoal,

Estou precisando efetuar uma carga de dados da internet, onde tenho várias URls, e algumas com mais de uma tabela.

No script abaixo faço o loop para ir de URL em URL buscando as informações, mudando apenas a Cidade na URL.

Como faço para carregar as informações das outras tabelas ?

// Cidades, é uma tabela carregada anteriormente;

// Cidade, é o nome do campo desta tabela;

FOR i = 0 to NoOfRows('Cidades')

  LET vCidade = Peek('Cidade',i,'Cidades');

  Cidades:

  LOAD *

  FROM

  [http://[endereco]-$(vCidade).aspx]

  (html, utf8, embedded labels, table is @1);

NEXT i;

Meu problema esta justamente no @1 que refere-se ao número da tabela na página.

Labels (1)
1 Solution

Accepted Solutions
nicolett_yuri

Então, o que você pode fazer é deixar o script dessa segunda tabela executando para todas as cidades e usar o modo de erro silencioso do qlikview.

Em seu script utilize:

SET ErrorMode = 0;

Desta forma, todos os erros do seu script não geraram alerta (mensagens) e continuarão sendo executados até o fim do script.

No seu caso, crie o script da tabela @2, @3, @4 etc.. e faça-o executar para todas as cidades (dentro do seu for). Mesmo que essas tabelas não existam para todas as cidades, você executará o script, se tiver os dados você irá carrega-las, se não tiver gerará um erro oculto mas o script continuará executando.

View solution in original post

10 Replies
Anonymous
Not applicable
Author

Alguém teria ideia de como resolver ?

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Thiago, boa noite.

A um tempo atras (3 anos mais preciso) eu tinha esta rotina que lia vários estado de um site. Hoje não roda (o site deve ter mudado algo e eu não tentei arrumar....)

Estado:

LOAD

     UFCOD,

     UFSIGLA,

     UFNOME

FROM [cadmun-uf.xls] (biff, embedded labels, table is CADUF$) Where UFCOD > 0;

Let vCont = noofrows('Estado');

For A=0 to ('$(vCont)'-1)

    Let vUF  = peek('UFCOD' ,'$(A)'  ,'Estado');

    Let vCaminho = '[http://www.censo2010.ibge.gov.br/dados_divulgados/index.php?uf=' & '$(vUF)' & '] (html, unicode, embedded labels, table is @2)';

    trace '$(vCaminho)';

    //

    TmpCidade:

  LOAD

      '$(vUF)' as UFCOD,

      Município,

      [População em 2010],

      [População em 2000]

  FROM $(vCaminho) ;

Next

store TmpCidade into Ibge2010.qvd (qvd);

furtado@farolbi.com.br
Anonymous
Not applicable
Author

Alessandro, bom dia !!

Com o código que descrevi, consigo verificar as URL's e pegar as informações da tabela @1.

O problema é que em algumas páginas existem mais de 1 tabela, e eu preciso verificar quem possui mais de um tabela e pegar as informações das outras tabelas também.

nicolett_yuri

Então, o que você pode fazer é deixar o script dessa segunda tabela executando para todas as cidades e usar o modo de erro silencioso do qlikview.

Em seu script utilize:

SET ErrorMode = 0;

Desta forma, todos os erros do seu script não geraram alerta (mensagens) e continuarão sendo executados até o fim do script.

No seu caso, crie o script da tabela @2, @3, @4 etc.. e faça-o executar para todas as cidades (dentro do seu for). Mesmo que essas tabelas não existam para todas as cidades, você executará o script, se tiver os dados você irá carrega-las, se não tiver gerará um erro oculto mas o script continuará executando.

Anonymous
Not applicable
Author

Yuri,

Ideia interessante.

Tentarei desta forma.

Obrigado.

abçs.

nicolett_yuri

Acredito que essa seja a única forma de verificar se uma tabela existe

Not applicable
Author

Ola pessoal

Estou usando dessa forma também mas, gostaria de saber se é possivel eu gravar os erros que estão ocultos de alguma forma.

Obrigado

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Estou de ferias em uma região sem celular ou internet (tipo desintoxicação digital.....).

Dia 29 estou de volta. Se for urgente ou necessário um contato antes, favor mandar e-mail para max@farol.bi ou adm@farol.bi

Att,

Alessandro Furtado

furtado@farolbi.com.br
nicolett_yuri

Marcelo, os erros ficam registrados em variáveis. Você pode pegar esses resultados e armazenar em uma tabela (qvd), segue abaixo:

ScriptErrorDetails

Retorna uma descrição mais detalhada de alguns códigos de erro anteriormente mencionados. Esta variável

conterá principalmente a mensagem de erro retornada pelos drivers ODBC e OLE DB para os códigos de erro

3 e 4.

ScriptErrorCount

Retorna o número total de comandos que causaram erros durante a execução do script atual. Esta variável é

sempre restaurada para 0 no início da execução do script.

ScriptErrorList

Esta variável conterá uma lista concatenada de todos os erros de script ocorridos durante a última execução

do script. Cada erro é separado por uma linha.