Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. 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.