Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
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.
Alguém teria ideia de como resolver ?
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);
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.
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.
Yuri,
Ideia interessante.
Tentarei desta forma.
Obrigado.
abçs.
Acredito que essa seja a única forma de verificar se uma tabela existe
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
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
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.