Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Carregamento dependente de valor gerado no carregamento anterior

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á!

Labels (1)
1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

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......

furtado@farolbi.com.br

View solution in original post

3 Replies
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

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......

furtado@farolbi.com.br
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Observar que coloquei um inline para efeito de fazer rodar e testar......tem que remover e colocar a sua tabela/url

furtado@farolbi.com.br
Not applicable
Author

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!