Free Trial

Fórum

SOLUCIONADO

Temporizador para execução

afprospero
Asteroide

Boa tarde pessoal. Eu tenho um problema e não sei como resolve-lo de forma automatizada. 

Eu possuo 2 macros. Vamos chamar Macro1 (que acessa uma API do fornecedor e solicita a execução de um report com parametros que eu envio, me retornando um id de transação) e a Macro2 (que eu informo o id de transação retornado da Macro1).

Eu criei um fluxo que executo a Macro1, recebe o id da transação e informa esse ID na Macro2. Agora vem o problema....

A Macro1 é só o gatilho para a execução do report que preciso, e o id da transação é a chave que preciso buscar o report. O problema que quando executo a Macro2 sequencial no fluxo, o report ainda não está pronto no server do fornecedor e me retorna "Pendente na fila de execução". Ai preciso executar varias vezes a MAcro2 até que ela retorne "OK" e me retorne dados.

Eu precisava de um temporizador (uns 5 min deve dar) ou então algo que fique executando (automático) até que o retorno da Macro2 para o campo execução seja OK.

Não sei se ficou muito claro, mas é isso. Se alguém tiver uma sugestão, irá me ajudar muito.

Obrigagdo 🙂

 

8 RESPOSTAS 8
carlosteixeira
15 - Aurora
15 - Aurora

Oi @afprospero tudo bem?

Só pra eu entender melhor:

 

O Id de transação (que vc usa na macro 2) vc recebe ele antes de o relatório, solicitado na Macro 1, estar pronto?

 

Carlos A Teixeira

Carlos A Teixeira
afprospero
Asteroide

Ola @carlosteixeira , bom dia.

Isso mesmo. Eu envio a solicitação e a macro 1 devolve o id (por exemplo ID 54). Ai eu preciso informar ele na Macro 2 como parametros de entrada da API, ai enquanto o relatório não estiver pronto a macro 2 retorna que esta na fila. Só quando finaliza a execução do report, é que o id 54 traz os resultados pra eu poder utilizar.

Obrigado pela ajuda de sempre.

carlosteixeira
15 - Aurora
15 - Aurora

@afprospero 

Você sabe quanto tempo leva pra primeira macro finalizar todo o resultado?

O que estou pensando, não sei se para seu problema serviria, mas seria utilizar a ferrmanta "wait a second" da CREW MACRO, nela você teria já o ID da primeira macro, mas colocaria um tempo de espera até finalizar a macro 1 e aí rodaria a macro 2.

 

carlosteixeira_0-1620136953150.png

 

 

Me diz se entendeu a idéia.

Carlos A Teixeira
afprospero
Asteroide

Oi @carlosteixeira é uma boa idéia. Entendi sim

Eu pensei também em rodar a macro 1, e enquanto o campo status não for "OK" não rodar a macro 2. Seria como se fosse um loop a cada 10 segundos ou algo assim. 

Sobre o tempo de execução exato do report, não tem como saber. Ja trouxe resultado em 1 minuto (minimo) e em 7 (maximo), pois depende da movimentação do dia. Mas se não tiver outra forma eu cravo um tempo de uns 10 min.

Eu tava fuçando as ferramentas e não encontrei alguma que tivesse "loop" .

O que acha disso?

carlosteixeira
15 - Aurora
15 - Aurora

@afprospero Legal, espero que de certo.

Bom nesse seu último exemplo, eu acho que você poderia usar algumas ferramentas do CREW MACRO

Runner e Conditional Runner, como na imagem abaixo:

 

carlosteixeira_0-1620153418882.png

O runner (primeira) vai executar a sua primeira macro, se ela executar com sucesso (até o final) ele executa a segunda ferramenta, Conditional Runner.

 

Acho que seria uma outra idéia para você testar.

 

Quanto ao loop, geralmente usamos a Iterative Macro quando precisamos fazer algum tipo de loop. 

Segue uma pagina pra ler um pouquinho sobre ela:

https://help.alteryx.com/pt-br/current/designer/iterative-macro

 

Espero que ajude amigão.

Qualquer coisa posta aqui que vamos tentando ajudar.

 

Abraços

 

Carlos A Teixeira
afprospero
Asteroide

Legal @carlosteixeira .

Como habilito o CREW MACRO aqui? Pesquisei e não tem. Acho que é algum pacote que tem que instalar...correto?

Obrigado

carlosteixeira
15 - Aurora
15 - Aurora

@afprospero 

 

Só baixar e instalar, se não me engano tem im install dentro do ZIP:

 

http://downloads.chaosreignswithin.com/Macros.zip

 

Abração

Carlos A Teixeira
afprospero
Asteroide

Valeu @carlosteixeira . Instalei o pacote e utilizei o Wiat a Second. 

Coloquei um time de 5 minutos e rodou do jeito que eu precisava.

Grande abraço.

Rótulos