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

files.PNG

2. Execute the program and provide the two XML files that you want to compare.

upload.PNG

3. On execution, the changes in the two versions will be displayed.

3.PNG

4.PNG

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. 🙂

To report this post you need to login first.

13 Comments

You must be Logged on to comment or reply to a post.

  1. Florian Henninger

    Hi Sajid,

    nice blog. I read that you didn’t find a thing so I can give you a hand. Have a look here:

    Basic Smart form “source” scan

    So maybe you could integrate it for further developings and replace the part with the upload.

    ~Florian

    Btw: Depends on the release you are working for, but you should have a look at the new ABAP-Features 😉

    (0) 
  2. Jelena Perfiljeva

    Pretty neat idea. The only drawback is that this option would require thinking ahead and getting (and retaining!) XML extract beforehand. And we usually realize a need for comparison only way after the fact. 😳

    (0) 
    1. Sajid P P Kunhabdulla Post author

      Hello Jelena,

      Yes, that is something. The idea is that the way SAP maintains versions for each TR, here we will have to manually keep track of the versions. And take XML dumps before each transport / change.

      (0) 
  3. Sanjay Kumar

    Dear Sajid,

    Thanks for showing us another approach to achieve a long pending functionality.

    I have implemented smartform version one stop repository tool where:

    1. Version Comparison: Node by node comparison including source code comparison

         Here we can compare remotely as well as with different smartforms.

    2. Version Repository : Saving the smartform version on task release and on manual trigger.

    3. Version Restore : Restore local/remote smartform versions

    Though I have used the XML approach, but I have mixed it with ABAP classes to achieve a complete version tool for smartforms.

    Cheers!

    Sanjay

    (0) 

Leave a Reply