Downgrading Alteryx Workflows
As quite an active member of the Alteryx Community I often find myself downloading workflows and sharing solution files with other members of the community. It works great and this is one of the best ways in helping educate people, by sharing a solution that they can then break apart and apply to their specific usecase. However, on occasion, we will find ourselves out of sync, version wise, with our Alteryx Designer installs, especially in the period following new releases.
I then get asked to downgrade the workflow on behalf of that individual; I will usually push back and give instructions on the downgrade process, but I’ve now hit a point where I feel it will be valuable to create a resource that we can simply reference when asked this question in future.
In this post I will cover two things. How to downgrade a unzipped Alteryx file (think .yxmd, .yxmc and .yxwz), and also how to downgrade a zipped Alteryx Workflow (think .yxzp).
Before we start though, I want to cover the basic’s of what is being generated as you work with Alteryx and when you hit save on your Alteryx workflow/macro/application; each of these file types is an xml file, just with a fancy file extension which Alteryx uses to determine how to work with that file (yes this means you can input an Alteryx workflow into Alteryx itself, ALTERCEPTION!).
The below image captures the information stored when hitting save on a completely blank workflow. To view this I use an open source text editor ‘Brackets’ (other text editors available).
The XML file, when your workflow is blank, captures the most basic detail about your workflow. Information that you have configured in the configuration pane for your workflow as a whole; such as whether to show or hide annotations, whether browse tools should be disabled and so on.
As you build your workflow Alteryx stores the bare minimum needed to tell Alteryx how to work with your data. What tools are connected to what other tools, and how each of those tools is configured.
You can see below that I am performing a join, you can see what fields I am joining on; and because I have every field selected, including ‘*Unknown’, in my join tool, Alteryx doesn’t even have to store what fields are selected, it will pick every field that reaches this stage.
Anyway, I have gone off on a slight tangent, but I hope it was a useful one! What I really hope you noticed, was that in the first screen shot, the version of the workflow is declared. The version IS ALWAYS AND ONLY declared on the 2nd line of the XML file.
Guess what we need to do then to downgrade a workflow/macro/application? Right, we open the workflow in a text editor (even notepad will do!) and simply change 2018.2 to be X.X (X.X being the version you or the individual you are sharing your work with is using).
Now, an important note; with new versions of Alteryx come new capabilities, and therefor if an individual has used a functionality that is not present in the version of Alteryx they wish to open the workflow in, it will not work, that’s obvious, but thankfully 99.9% of the time this trick will work seamlessly.
Now, I dare you to try this on a .yxzp (Alteryx Zip File). It doesn’t work right, it opens and just looks like a load of gobbledygook.
This is because an Alteryx zip file, is, well, a zip file. It’s compressed, so is therefor unreadable unless you extract it’s contents. Thankfully, again, this is quite simple.
Use your windows file explorer and identify the folder where your .yxmz file sits. Right click on the file and hit ‘rename’, replace the text ‘.yxzp’ with ‘.zip’.
Once you have done this, Alteryx will allow you to treat the file as if it was a .zip file (well it is!) and extract it’s contents. This means you can right click on the file and hit ‘Extract All…’ and windows will do it’s thing.
You will then get a standard folder, titled the same as the .zip file, which contains all of the dependencies relating to your work, including any workflows/macros/applications, which can then be edited in the same way as outlined in the first piece of this blog, by opening a text editor for each dependency and amending the version number.
Once you have completed this task you can either just share this folder, zip the folder up and share that, or zip the folder and rename the extension ‘.yxzp’ and then users won’t know what you’ve done!
I can’t stress how invaluable walking through the XML generated by not just Alteryx, but Tableau (a .twb is a fancy XML file, and a .twbx is a zip file in the same way as a .yxzp), can be in aiding your understanding of how the tools work! You can even keep the text editor open, side by side, as you develop and see what is happening in the background, to a nerd (which I am not unwilling to call myself!), this is fascinating (and fun!).