Engine Works

Under the hood of Alteryx: tips, tricks and how-tos.
Alteryx Alumni (Retired)

InspireAPAC2020.jpgThe Alteryx Inspire conferences are always one of my favourite times of year and this year's Inspire APAC did not dissapoint! Held at the conference centre in Darling Harbour, Sydney, the location was great, the sun was shining and 800 Alteryx fans had come together to talk about Alteryx. At the start of every Inspire conference I am reminded of the quote by Irish poet William Butler Yeats:


"There are no strangers here; Only friends you haven't yet met."


And as always I left the conference having made some more friends and connections in this amazing Alteryx community.


Now any one who knows me will know that my favourite place within the Inspire conference is the solution centre. If I'm not scheduled to be working somewhere else or in the keynotes then the solution centre is where you will find me. For anyone who hasn't yet had the chance to attend an Inspire conference, the solution centre is part of the conference staffed by Alteryx experts from the company, where attendees can bring any questions or problems they have with the product and get help. As a staffer in the solution centre it is always an exciting place to work as you never know what problem is going to walk through the door next.


I wanted to share a problem and solution that came up from this year's conference. But before I do I'll start with a disclaimer that the solution pushes the limits of what Alteryx was designed to do, so I share it more as a novelty than a recommended best practise!


The Problem


OK disclaimer out the way let's describe the question that was asked:


"Is there a way in an Alteryx App to show the user a table of data and allow them to select an option for each row of that table?"


This is a request that I have heard before and it is a reasonable one. In this case the Alteryx user wanted his app users to be able to categorise an aribitary number of items of data choosing from a tree view for each item. And the short answer is today Alteryx doesn't have a good way to let you do this: the app questions are largely static and of fixed number.


The Solution


Where we do have some flexibility around dynamic app questions is with chained apps, but that is still somewhat limited in nature, but it was this feature that we used to construct our solution. Which looks like this:




and then for each item of data in the selected field for you get an app page which looks like this:




and finally you get a yxdb with all of your data and categories.




For our more advanced users I suggest you stop here and think about how you might acheive this (Or if you have a better solution to the problem), for everyone else let's dive straight into how this works.


The Implementation


As we've already said the solution uses chained apps. But what makes it interesting (and something I haven't done before) is we are writing the next chained app we are about to run in the previous app. We continue to do this for each row of data in our input file and collect up the answers to the users questions as we go. Once we have processed all rows of data we write our a final app which presents the resulst of the categorization to the user.





As I have already mentioned (but I'll say it again) this is really abusing the chained app functionality and I woudln't reccomend you go trying this technique in your work enviroments. For one it doesn't work on server (I presume that server doesn't except the next chainded app to be written as it goes, so the looping doesn't work) and the workflows do end up fairly complex.


But I thought it was worth sharing as it is a technique I hadn't seen before and it might spark some inspiration from other members of the community.



Adam Riley

Former account of @AdamR. Find me at https://community.alteryx.com/t5/user/viewprofilepage/user-id/120 and https://www.linkedin.com/in/adriley/

Former account of @AdamR. Find me at https://community.alteryx.com/t5/user/viewprofilepage/user-id/120 and https://www.linkedin.com/in/adriley/