Free Trial

Alteryx Designer Desktop Discussions

Find answers, ask questions, and share expertise about Alteryx Designer Desktop and Intelligence Suite.
SOLVED

Alteryx Workflow Version Control

Eworabo
7 - Meteor

Team, 

 

We are updating one Alteryx workflow in a folder. The folder is shared by multiple colleagues. We are running the workflow and making updates at the same time. How is the best way to handle version control? 

 

Thank you, 

EW

12 REPLIES 12
tlarsen7572
11 - Bolide
11 - Bolide

Alteryx workflows are simply XML files, so one possible solution is to control them using a Git repository.  Plain old Git doesn't require server software and works well in a distributed environment.  Throw in a git GUI like SourceTree or GitKraken and managing the repository becomes quite easy.

Eworabo
7 - Meteor

Thank you, @tlarsen7572 Do you recommend any tool to convert yxmd to xml? I used this tool:

 

https://community.alteryx.com/t5/Alteryx-Designer-Discussions/Convert-Several-Alteryx-Workflows-to-X...

 

However, I'm afraid it does not reflect the updated Alteryx version. 

 

Thanks, 

EW

tlarsen7572
11 - Bolide
11 - Bolide

There is no need to convert to XML.  Git will see that yxmd is a text file and treat it appropriately.

 

Here are a few screenshots of what the setup process might look like.  This is GitKraken, which is what I currently use, but the process should be similar in any Git GUI.  Also, if you choose a GUI today (such as GitKraken) and decide you don't like it, any other GUI will still work with the repository, so you are not locked in.  Git is still Git underneath the shiny GUI wrappers.  You could even use the Git command line rather than a GUI, but I personally find it to be challenging to use.

 

Assume our workflow is called 'RegexExtract Sample.yxmd' and it is located in a folder called 'Some Repository'.  It looks like this:

Git1.png

 

We can initialize a git repository in this folder (IIRC, this will work for network folder as well as local folders):

Git2.png

 

Once the repository is initialized we can perform the initial commit of the workflow:

Git3.png

 

Now we make a change to the workflow and it looks like this:

Git4.png

 

The Git GUI will automatically detect that a change was made.  Once we are done making changes we can commit them:

Git5.png

 

As we do this the history of the file is built and tracked.  At any point in time we can see the history of the entire repository, and even individual files.  We can also revert to older versions if we do something that causes a bug.

Git6.png

 

Right now the actual diff view (the changes made to the file) is not very helpful.  But you can add custom diff'ers, some of which may provide more useful information for XML files.  It is something I am looking at right now so that the diff screen can be helpful for us.

Eworabo
7 - Meteor

ary changes? 

Eworabo
7 - Meteor

Thank you for getting back to me! I was able to convert it to xml. I can see the version difference and even update the xml file when it is necessary. Unfortunately, I'm afraid I cannot use the conversion tool you use since I'm currently working on commercial case. The problem is how can I convert back to yxmd after making the necessary changes? 

tlarsen7572
11 - Bolide
11 - Bolide

Git itself is open source, so that should not be an issue.  But I may not completely understand your requirements here...

 

There is no need to convert to yxmd.  yxmd IS xml.  Is there a particular reason you need a file with an XML extension?  If you really need to, you can rename your workflow from MyWorkflow.xml to MyWorkflow.yxmd...

 

Could you perhaps explain exactly what you are doing a bit more?  Are you generating copies of the workflow and saving them in a directory?  I do not understand why you need this step of generating an XML file.

Eworabo
7 - Meteor

I must have downloaded the wrong Git software. Thank you. I got it.  

TimN
13 - Pulsar

We are looking at Git but have a question about saved database settings.  Alteryx workflow saves the connection info so if we were to keep production workflows in git and don't want production connection info stored is there a way to handle this?

Inactive User
Not applicable

How would you then revert back to an older file before the latest commit? Copy and paste the xml string into notepad and save it as yxmd?

Labels
Top Solution Authors