Forum Discussion
@Spiro_Taleski, I can see this has been a feature request for 4 years based on the link you gave…also looks like I am not alone at all in this request. I am surprised that Snaplogic can’t just create a simple Snap to accomplish this given the desire in the community to have it.
Throttle Bot is a snap in a “test” snap pack that we use internally. It probably shouldn’t have been referenced in our documentation.
We do have an Snap SDK which allow customers to create their own custom snaps. Now, I’m not necessarily suggesting this for this case, and get it, that this should probably be an available snap.
Thank you @Spiro_Taleski and @viktor_n for all of your contributions to community. I’ve actually learned quite a bit from your answers.
I’ll ask the Snap team regarding whether we would consider making one or more of these “test” snaps available. These snaps are sufficient for our usage, but may need a bit of work before being released to a wider audience which is probably why they haven’t.
- brent_vanallen4 years agoNew Contributor
Thanks for the insight on the Snap. I used Viktor’s Ruby delay, but have been unable to get a loop working in order to (A) Submit a load to my MDM tool and (B) check back on DB status of the load to perform the next steps in the process. Setting this process up, Snaplogic looks like it avoids “entering” the loop…sticking on the step right before the loop starts.
I posted a diagram here, you can see the last Snap it will execute in green…once it gets here it just sits and spins. This shows that section of the pipeline where (A) we check back of data submitted upstream has finished processing, (B) we check back on that value and if not found to be “DONE” yet we push the document stream back onto itself with a UNION (C).
I’ve done something like this before. I think you’re going to need a multi-pipeline design - I don’t believe there is a way to loop within a single pipeline. The below is just one high-level design idea - there are other options.
The step1 pipeline will do the initial work, then call step2 pipeline (using Pipeline Execute) which will have the delay and check status. The step2 pipeline can have a loopback-or-continue Router snap following the status check where if the status is complete, it forks to the logic to finish the process; but if status is not complete, then it recalls step1 pipeline with Pipeline Execute. You can use parameters and Router snap in the step1 pipeline to determine whether step1 skips the initial processing and simply recalls step2 again. Parameters can also be used as a counter mechanism, so that if the counter exceeds x-number retries, then step2 fails or notifies as desired.
The Pipeline Execute documentation states that it doesn’t support redundancy (even though it works in some of my attempts), otherwise, I would recommend a design within a single pipeline. But I stick with the documentation for pipeline longevity.
- brent_vanallen4 years agoNew Contributor
No luck with that approach :). Will have to just keep at it.