XML Comparison Executable (v1.4 - 7th Jul 2012) : Download Executable
Notes : tweaked the parsing of the xml. I had a few issues with it and we were missing nodes and attributes.
One of the good things about working in support, is that you get to communicate with users and partners who use the products on a daily basis. It's one thing to develop a product, but in order to make it successful, you need to listen to the users. You need understand their requirements and be flexible enough to improve the products to accomodate those requirements and make their use of the products enjoyable and efficient.
Recently I worked with a customer and we got onto the topic of a way of comparing two versions of a workflow. The first thing that came to mind was to export the workflow versions to NWF files. These files are basically XML files, so an XML comparer should do the trick. Unfortunately, we couldn't find one that did what we wanted. Especially given that a big part of what is inside the NWF file, is encoded XML.
So I worked on a quick tool to compare NWF files.
The Tool : XML Comparison
This won't revolutionize comparison tools. But it does what I needed it to do. For now, you simply open 2 NWF files. Each one appears in it's own treeview.
Once the files are loaded, click on the Compare menu button and it will do a comparison. It utilizes the treeviews to do the comparison, recursively going through each node. When it is done, it will popup a message box, telling you if it found any differences.
As you can see, that at the bottom of the app is a listview, showing you all the changes that were found. The L on the left of each line represents the line from the left workflow, and the R, the right workflow.
The black text shows you any text that is unchanged between the two files. The red shows deleted text. eg. text that was in left but no longer in the right. The green shows newly inserted text.
You can also click on these lines, and it will automatically make visible the appropriate lines within the treeviews.
The one thing to note is that I'm doing some custom drawing of the listview, so it's not perfect but it does what is needed for now.
Notes: First public release
As of the current version (v1.3), this will compare any XML files. But depending on how much time I have to play with this, I may start putting in some smart logic to actually try to decypher what each of the parts are and display things accordingly.
Nintex Workflow Variables
Nintex Workflow Actions
If I can do that and start to show differences between workflows, it may make it that much easier to see what has changed.
1. fix the drawing of the listview
2. show selected row in the listview
3. handle clicking an item in a treeview, and auto selecting the appropriate row in the listview
4. display more user friendly workflow nodes such as actions and variables
5. allow to select whether to automatically start in its default size or maximized