Tutorial de paginação - parte 2
O fluxo de integração segue o caminho FINISHED se o processo de migração de dados diário já terminou ou se ainda não chegou a hora de iniciá-lo.
Primeiramente, verificamos se o parâmetro next execution timestamp é nulo, isto é, não existe. Isso acontece durante a primeira execução do pipeline. Se for nulo, atribuímos um valor a ele.
Se o parâmetro next execution timestamp existe, o pipeline verifica se é hora de iniciar o processo de migração de dados ou se ele deve continuar esperando. Se for a hora de iniciar o processo, atribuímos o valor EXTRACTING_DATA
à propriedade step, o que faz com que o fluxo siga o caminho EXTRACTING_DATA na próxima execução.
Para construir o caminho FINISHED, siga esses passos:
1. Adicione um componente Log.
Sempre adicione um componente Log após um componente Choice. Isso é considerado uma boa prática.
Como em todos os componentes Log, adicione uma mensagem descritiva no campo mensagem. Você pode aprender mais sobre esse componente aqui.
2. Configure a condição Choice desse caminho como $.control[?(@.step == 'FINISHED')]
.
Aplicando essa condição, o fluxo de integração seguirá esse caminho se o parâmetro step assumir valor FINISHED
.
3. Adicione um componente Choice.
Esse componente verifica se o parâmetro next execution timestamp existe.
Para construir o caminho que o fluxo segue caso esse parâmetro exista, siga esses passos:
1. Adicione um componente Log.
2. Configure a condição Choice desse caminho como $.[?(@.control.nextExecutionTimestamp != null)]
.
3. Adicione outro componente Choice.
Esse componente verifica se está ou não na hora de começar o processo de migração.
Para construir o caminho que o fluxo segue quando é hora de iniciar a migração, siga esses passos:
1. Adicione um componente Log.
2. Configure a condição Choice desse caminho como $.control.[?(@.startTimestamp>= @.nextExecutionTimestamp)]
.
3. Atualize os parâmetros de paginação utilizando um componente Object Store
Selecione a operação Update by Object ID, ative a opção Upsert, use o mesmo nome e ID do Object Store utilizado nos passos iniciais e configure o parâmetro Document dessa maneira:
Esse código atribui o valor EXTRACTING_DATA
à propriedade step. Isso faz com que o pipeline siga o caminho EXTRACTING_DATA na próxima execução.
4. Configure uma mensagem de output usando um componente JSON Generator
Configure o parâmetro JSON deste componente desta maneira:
Para construir o caminho que o fluxo segue quando ainda não é hora de iniciar a paginação, siga esses passos:
1. Adicione um componente Log.
2. Configure a condição Choice desse caminho como otherwise
.
3. Configure uma mensagem de output usando um componente JSON Generator.
Configure o parâmetro JSON desse componente como:
Agora, retorne ao componente Choice que verifica se o parâmetro next execution timestamp é nulo ou não.
Para construir o caminho que o fluxo segue quando esse parâmetro é nulo, siga esses passos:
1. Adicione um componente Log.
2. Configure a condição Choice desse caminho como otherwise
.
3. Configure o timestamp da próxima execução utilizando um componente Object Store.
Selecione a operação Update by Object ID, ative a opção Upsert, use o mesmo nome e ID do Object Store que usamos nos passos iniciais e configure o parâmetro Document como:
Esse código faz com que o timestamp da próxima execução seja configurado para o próximo dia, às 1 da manhã.
Atualizado