Community Tip - You can change your system assigned username to something more personal in your community settings. X
Version: Windchill 12.0
We manage multiple environments, including a production system, a test system, an integration system, and three separate developer machines. When deploying workflow templates from a developer machine to the integration system, we often struggle to determine exactly what has changed in the workflow template.
Manually identifying differences is challenging, as some of our workflows have grown significantly in size—one of the largest contains around 1,000 nodes. This makes each deployment a time-consuming process.
To streamline this, we attempted to compare two workflow versions (one from integration and one from a developer machine) by exporting them as ZIP files and using Notepad++’s compare feature to analyze the TAG-NmLoader-0.xml files. While this approach is an improvement over manual comparison, it presents several challenges:
The order of XML elements is not preserved across exports, causing unnecessary differences to be flagged.
Workflow node IDs vary between systems, even when the workflow originates from the same development environment.
The XML structure is difficult to read, e.g. requiring significant scrolling to locate the variables associated with specific nodes.
Is there a more effective way to compare two workflow templates? It doesn’t necessarily have to involve XML file comparison—any alternative that improves clarity and efficiency would be greatly appreciated.
Hi @FS_9776388
Unfortunately, I do not have any experience with Workflow template comparation UI because I've never seen it
In other hand I believe the xml comparation is the only way to do so now days.
You could try to use some powered AI comparation to see better xml comparation output.
In my opinion there is no need to see the workflow changes if you prepare the workflow on the developer system. Transfer to the production system should be just export import operation without any changes after the workflow is approved for usage.
I would like to hear your experience why you need to see the changes.
PetrH
I want to compare the workflows after import, because we often had the case that the developer forgot to export the latest version of the workflow from the integration system to his own developer system. Thus all changes that were already done on integration are lost after importing his workflow. The comparison is there to ensure that a workflow like that doesn't find its way to production
Yes, I do know about the workflow history. It sadly doesn't help us much if we don't notice the error though, that's just really plausible after we noticed that something is missing from the workflow (and it would be bad if that was only noticed on production)
It sounds to me like the real problem is ensuring that the developer exports the latest.
If you have a solution to ensure that would that suffice?
Are you using BAC? https://support.ptc.com/help/windchill/r12.1.2.0/en/index.html#page/Windchill_Help_Center/busadminchgprom/BACPOview.html#
I looking into this but I will have to play with this later: https://community.ptc.com/t5/Windchill/Getting-started-with-Business-Administrative-Changes-BAC/m-p/1003467#M84458
Not sure if this makes a difference but are you saying that if you export workflow from Dev to Integration and the (without changes), export back out from Integration, the files are reordered and different?
We're not using BAC yet, but we planned to do so. I haven't seen anything in the BAC process that would make this process easier though. As far as I know it tracks that something has changed, but not what has changed.
Are you saying that if you export workflow from Dev to Integration and the (without changes), export back out from Integration, the files are reordered and different?
Yes, you understood correctly.
I've not quite figured out why the files are reordered, because there must be some logic behind it, I would assume. Maybe it happens when the workflow nodes are moved to a new position? I'd assume that the export function scans all nodes from the workflow template from left to right and top to bottom (I'm probably wrong, but I wonder how it's actually done). And thus all XML elements are placed in the order they were scanned. This would mean that the XML element changes order based on node coordinates. I haven't tested this yet though.
The reordering is not always happening, but often enough that it makes the comparison process annoying. Sadly I don't have an example right now, but I will provide one the next time I'm in the same situation again.
Hello @FS_9776388,
It looks like you have some responses from our community champions. If any of these replies helped you solve your question please mark the appropriate reply as the Accepted Solution.
Of course, if you have more to share on your issue, please let the Community know so other community members can continue to help you.
Thanks,
Vivek N.
Community Moderation Team.
We struggle with the same issue. As it is not possible to compare workflow templates automatically, it is also not possible to merge two workflow templates.
Example:
Developing smaller changes for the productive system in parallel with changes in a project environment. --> The productive changes cannot be merged automated into the project environment. All has to be done manually in the workflow definer UI and is therefore double work and a high risk of forgetting something. And if you don't merge the productive changes into the project environment there is the risk that the project implementation will not run later on if it gets re-integrated into the productive environment.
I have not investigated it further, but I very much assume that a major problem arises as follows: If you adapt only one place in a workflow template it seems to move all other nodes as well, so the coordinates of the nodes which are not touched get changed as well, maybe only a few micrometers, so optical no difference, but in the XML you cannot compare/merge anymore in a good way.
Perhaps AI could help here, for example, by working with a radius search for the coordinates of a node and checking whether the same node with the same content is within a radius of a few millimeters and is therefore not taken into account as a change.
However, it would be desirable if PTC could make some improvements here, either to the Workflow Definer so that the problem with the automatic moving of neighboring nodes does not occur, or with a new Workflow Definer technology or a suitable Compare+Merge tool for their XML workflow format.
There is clearly no solution here unless you have as @d_graham suggested employing rigorous steps and manual checks. In a complex environment or with many hands, it can be less than efficient. I even struggle with this and I am one person. To close out this thread, I suggest two things:
1. Let's move this to a Windchill idea and up vote it since we share common problems. BAC might not be ultimate solution since real issue is configuration control.
2. Lay down the challenge to the field. Since this ultimately is an XML file, we might need a more tailored solution than just text compare of the whole file. We might have to examine changes at the node level, matching nodes to nodes and checking their data beneath. Most will be identical but the order in the XML file might not be important. Minor things like screen location are less of an issue. I think a comparator that took in two XML exports and produced a summarized result would be a sellable product but I would hope fame and glory would suffice.