Hello to everyone.
I´m starting using alteryx and I have the following question.
Let´s say that I have Container A which creates a database that Container B uses to create an Excel output.
I´m trying to work this in a sequential way.
Any solutions?
Solved! Go to Solution.
Hey @neromerob,
Sounds like you could try use the Block until done tool. It wont do the second output till the first is finished
I'm assuming the containers represent two independent flows of tools. Regardless of the use, if you have an order in which you need to enforce execution and block until done tool can't help you out then you can achieve this with a Macro.
It's actually a relatively simple approach. And even if you don't have much experience with Macros would make for a fun first dive into Macros.
In a nutshell, you're going to convert your existing workflow into a Macro and use an outer workflow to pass in true/false values to disable/enable the containers as you need per iteration.
I can't upload workflows from my work computer so I'll write out the approach:
Part I: The .yxmd workflow(AKA what I referenced as the outer workflow)
This will involve only 2 tools.
First, a text Input tool with a table that looks like this:
Execution Sequence | Container A | Container B |
1 | False | True |
2 | True | False |
Second, the Macro you are about to create. The configuration here will involve mapping Container A column to the Control Parameter connected to your container A and the Container B column to the Control Parameter connect to your container B inside the Macro.
Part II: The .yxmc workflow (AKA the Macro) will involve minimal adjustments to your existing workflow.
First, you'll need to add two control parameters. The first Control Parameter will be connected to Container A, the second Control Parameter will be connected to Container B. When connecting the Control Parameter, connect the Q icon to the Lightning Bolt icon on the container.
Second, you will notice two Action Tools have appeared between the Control Parameters and the Containers. The configuration will be the same for both. Click on the Action Tool, expand the Disabled section and click on the words value - value='False'. This will highlight that section. That is all the config you will need to do. Note: Select an action type should reflect the default value "Update Value".
If you run the outer workflow you will see two iterations run (because you have two rows in the text input tool) that has passed the appropriate True/False values into the Macro to disable and enable the relevant containers. You could expand this further if you had three containers or more. However, I'll stop right there for now.
Good luck.
Hi @neromerob!
Another approach would be to utilize the Parallel Block Until Done Crew Macro. It's a nifty tool I use often.
It is very similar to Block Until Done, but instead of having one input and three outputs, there are two inputs and two outputs. Stream A will complete before stream B begins. If you have more than 2 streams of data, you can stack multiple tools to control the order execution.
You can download this and other Crew Macros here:
http://www.chaosreignswithin.com/p/macros.html
I am also attaching a packaged workflow with the macro. Let us know if this helps!
Thanks,
Deb
Here is a blog that discusses what @JBLove replied - I was able to make it work using control parameters by adding the conditional tools
Dynamically enabling / disabling workflow sections
Hi @neromerob
The Designer team is currently planning to add a new type of container that allows for container sequencing. Planning it to be added to the GA 23.1 release in the spring.
That is awesome news! Looking forward to this update!
Thanks DQAUDIT for the detailed explanation.
I tried to fix sequencing workflow execution by following your approach but was stuck in the outer workflow mentioned.
Like in the outer workflow with what should the text input be connected to?
the macro I was able to implement using your instructions however to map the macro using outer workflow could you please elaborate a little more on that please.
Thanks and really appreciate your help.
The first one is my outer workflow and the second image is of the macro that I created following your instructions.
How should I map the yxmd file to the macro to pass TRUE and FALSE values to execute workflows based on the order.
Thanks,
Nate
Hi @JBLove
Your solution is SOOOOO GOOD that I had to go through extra trouble to go off from my Company's VPN and login via my mobile hotspot just to comment on this and give you a like (for some stupid reasons my company blocked the login to this Alteryx Community site). You have solved the question I have since day 1 of using Alteryx 3 years ago.
Following your steps, I was able to recreate a flow that can run a batch macro with heaps of containers, and run those containers sequentially.
I particularly like your idea over the Crew macro parallel block until done as i found that the parallel block until done doesn't really wait for the jobs on the right-hand side of it to finish (i think it would open the floodgate to the next job when all the data (the rows) pass through the upper path of the 'parallel block until done' tool ).
It was amazing that you were able to make me understand with only words (no pictures, no sample flow attached) in such a short paragraph.
Alteryx has a lot of cool features but simple use cases like this should be made simpler, not like making us jump thorough hoops.
Thank you for your help!
Cheers,
Jacky