Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá, pessoal
Eu carrego uma tabela via API que me traz um máximo de 100 resultados por requisição.
Para carregar os próximos 100 resultados, como se fosse a próxima página, dependo de um valor gerado em um dos campos (Field1) do primeiro carregamento. Isso acontece até que um outro campo (Field2) exiba o valor "False", terminando os carregamentos na sequência. De forma bem simples, seria mais ou menos assim:
//Primeiro carregamento
Tabela:
LOAD
Field1 // value: true
Field2 // value: 8
FROM url_parameter:0 //primeiro carregamento sempre possui o parâmetro com o valor 0
//Segundo carregamento
Tabela
LOAD
Field1 // value: true
Field2 // value: 156
FROM url_parameter:8 // parâmetro gerado no primeiro carregamento
//Terceiro Carregamento
Tabela
LOAD
Field1 // value: false // o valor false indica o fim dos carregamentos
Field2 // value: 179
FROM url_parameter:156 // parâmetro gerado no segundo carregamento
Como eu consigo fazer isso, carregando sempre a mesma tabela sequencialmente, mas mudando o valor do parâmetro na URL que é por sua vez gerado a cada carregamento? Isso até que Field1 tenha o valor "false"? No final, quero que Field2 me exiba todos os valores gerados (no caso aqui, seriam 8, 156 e 179).
Obrigado desde já!
Marcelo,
daria para fazer assim:
Tabela:
LOAD
RecNo() as Campo
AutoGenerate (1000);
Let B = 0;
//
For A = 0 to 1000
Let C = $(B);
TRACE $(C);
// URL:
// LOAD
// Field1,
// Field2
// FROM url_parameter:$(B);
Tab:
First 100 LOAD
Campo as Field1,
Campo as Field2
Resident Tabela where Campo >= '$(B)';
Let B = peek('Field2');
TRACE $(B);
Exit for When '$(C)' = '$(B)'
NEXT
Teoricamente quando o ultimo campo lido for igual ao anterior sairia.....se nao desse certo, ainda assim sairia apos 1000 leituras......
Marcelo,
daria para fazer assim:
Tabela:
LOAD
RecNo() as Campo
AutoGenerate (1000);
Let B = 0;
//
For A = 0 to 1000
Let C = $(B);
TRACE $(C);
// URL:
// LOAD
// Field1,
// Field2
// FROM url_parameter:$(B);
Tab:
First 100 LOAD
Campo as Field1,
Campo as Field2
Resident Tabela where Campo >= '$(B)';
Let B = peek('Field2');
TRACE $(B);
Exit for When '$(C)' = '$(B)'
NEXT
Teoricamente quando o ultimo campo lido for igual ao anterior sairia.....se nao desse certo, ainda assim sairia apos 1000 leituras......
Observar que coloquei um inline para efeito de fazer rodar e testar......tem que remover e colocar a sua tabela/url
Deu certo aqui, Alessandro
Demorei um pouco para adaptar o seu modelo para o que tenho aqui na extração dos dados via API. Mas, após entender de fato a lógica do processo, fluiu super bem. Perfeito!
Muito obrigado!