# Weekly Challenge

Solve the challenge, share your solution and summit the ranks of our Community!
###### IDEAS WANTED

We're actively looking for ideas on how to improve Weekly Challenges and would love to hear what you think!

Submit Feedback
We've recently made an accessibility improvement to the community and therefore posts without any content are no longer allowed. Please use the spoiler feature or add a short message in the message body in order to submit your weekly challenge.

## Challenge #81: Multi-Level Bill of Materials Problem

Highlighted
12 - Quasar
Spoiler
Always good to prcatice iterative macro skills
Highlighted
17 - Castor

Woohoo.  1st iterative macro!

I set this one aside after trying it about a month ago, when I first started Alteryx. While I've developed many recursive solutions in my time, they were always in procedural languages.  This is the first one I've tried in a declarative language.  I had trouble mapping the looping,data set reduction and stop conditions that I was familiar with to their Alteryx equivalents.

A little patience and a lot of practice and I know how many wheel washers go on a car!

Spoiler

Dan

Highlighted
Alteryx Certified Partner

Solution attached. I took the macro approach as this seemed like the real-life approach to a real-life problem. I was interested to see if any of the standard workflow approaches accomplished a flexible (i.e. variable number of levels), recursive join. The solutions using multiple Join tools appeared to be hard-coded to four levels. Other solutions appeared to assume that the Line Id had intelligence were always in a particular order, and possibly that a single part did not appear in multiple BOMs. The solution from @patrick_digan appears to accomplish a flexible, recursive join, but it was very hard to follow and I'm not sure the concatenated List field could handle any volume of BOMs. I would be interested to know if a standard SQL recursive query can be accomplished in a standard Alteryx workflow.

Spoiler
Highlighted
11 - Bolide

Cheers!

Highlighted
10 - Fireball

Working through the steps to get to the 4 levels in the provided data made it really clear how to convert the repeated steps into an iterative macro.

Spoiler
Highlighted
Alteryx Partner

Iterative whenever I can...

Spoiler
Main workflowIterative
Highlighted
8 - Asteroid

Tough One!

Spoiler
Highlighted
Alteryx Certified Partner

Fun little Parent-Child Iterative Macro

Highlighted
Alteryx Certified Partner

The hardest challenge for me so far! and my first iterative macro... thanks to previous posters for the help!

Highlighted
8 - Asteroid

Here is my solution