There has long been a requirement, where we need to compare 2 Smartform versions.
In SAP there is no feature for this, there are no past versions maintained and also certainly no remote comparison.
This makes comparison and version management of smartforms a tedious task.
I was faced with such a task too. There were multiple complex smartforms and due to multiple activities and phases of my project working simultaneously, it was very difficult to trace what went wrong and definitely made it a lot of effort to maintain and revert changes in case of any issues.
Thus began my journey down the lane on how to overcome this problem.
My initial research “Google” shed no fruitful results. All I got was it is not possible in SAP to compare the smartforms and we will need to download the XML files and save locally in order to do version management.
And in case we need to compare, we will need to upload and create a temporary version and then compare each window and element.
Well, to me it did not make a lot of sense. Since it would be way easier to create new in a lot of cases and yes, I believe that is what must have been done in most cases.
So I started with my own utility program for Smartform Version Comparison.
I noticed that always on Download and XML file is generated and this remains more or less of a similar structure.
There are tags which we can traverse and identify to compare the smartforms.
And also the entire data in the smartform is present in the XML.
So, why not automate this and voila now I have a working program to compare smartforms.
I have uploaded the source code of the same on Github at https://github.com/sajid-a/SmartformVersionCompare
This is currently a working version with a known bug that it can only compare smartforms upto a certain size. The reason is that currently we are not able to process the complete string provided by the XML in the file. Other than that this can be used to compare smartforms.
The process for comparison is as follows:
1. Download and Maintain the XMLs of the smartform before making any change. This will act as your repository of version management. Alternatively an SVN can be used for this purpose
2. Execute the program and provide the two XML files that you want to compare.
3. On execution, the changes in the two versions will be displayed.
The program is currently in the Alpha Phase and hence any suggestions or improvements are welcome.
Also all are welcome to collaborate on the source code and help in the development of a comprehensive tool.
The features to be added in the current program are as follows:
1. Only Code Comparison
2. Remote System Comparison
3. Automatic Version Management and Comparison
4. Auto generation of XML by just entering the Smartform Name
5. Bug fixes
Hope this post proves useful to all who are in need for a way to compare smartforms. 🙂