It'd be awesome if it was possible to make a while loop . Sometimes you for example need pagination within a transformer, and then it'd be great if you have a while loop.
The UI would look a lot like a node, transform nodes or data, transform - using the 'filter' you'd select what check would have to be true (or false) for the loop to end.
I'd imagine it's a little finnicky because it has the potential for infinite loops, so I'd suggest a max of like a thousand executions.
Thank you for your feedback regarding your experience using the Alumio iPaaS.
I can imagine that it would be a great addition, but let me pass your request on to the corresponding team for further analysis to see whether it is possible and will be included in our roadmap or not. Please kindly wait for any updates.
Once again, I appreciate for your feedback .
We have some questions for your regarding your requests.
It would help us see the picture more clearly since we assume that described issue contains not only one use case to work with.
Pagination required in Transformer
For a client of ours we had to retrieve both updates in one route as well as the 'full' dataset (80.000+ records) of prices (SKU-customer-quantity price-rules).
The issue here was that we needed to first get all the "pricelist headers", and then use the data from that API call to create the call to get all the prices. However, the API was limited to 100 items, and there were possibly more than 100 pricelist headers.
This creates the need for 2 places for pagination, but Alumio only supports one (the one in the incoming).
We worked around this issue by simply calling the pricelist headers call three times (there were 80-120 pricelist headers, so this gave us the capacity to support 300) in the "Input Transformers" of the Subscriber.
An easier way to do this would be with a 'while' loop. This particular API gave a response with a 'next link' when there was another page of results. A while loop that gave you the option to 'repeat these steps' until a 'break evaluation' would give an easy option to paginate.
We use Alumio to sync worklogs from JIRA to Gripp, using webhooks from Jira. However, another system (Tempo) is involved as well. When the JIRA webhook is sent, we need to get data from Tempo to get other info before moving on. This goes 'too fast', unfortunately. Tempo sometimes doesn't have time to process the data from Jira.
We worked around this problem by adding an HTTP transformer which simply calls HTTPbin.org. This creates a delay of about 100-150ms, which is generally enough.
However, creating a while-loop with a max amount of tries (in this case, for example 3) could fix this issue. When the first result gives a 'no items found' back, then just try a second time and possibly third time.
Using the format of the 'filters' of Data, transform & Node, transform nodes, you could simply create the evaluation of the breakpoint. If that evaluation is true, break from the loop.