Skip to Content
Author's profile photo Fabio Pagoti

Generate UML Class Diagrams Automatically using ABAP2yUML

*** This is a blog post republish after being deleted on September 9th, 2013 by force myself as it involves open source and the new SAP developer license was not released at that time. As it seems that I won’t get capital punishment for having ABAP code on GitHub now I decided to republish it. ***

So you might have heard that SAP Netweaver early releases enable developers to generate UML class diagrams automatically based on ABAP code. There is definitely a need to have UML documentation as other SCN contributors like Chris Paine who wrote “Auto generating UML diagrams from ABAP code” recently.

Although I love the idea, I believe we don’t have to wait until these releases be available for our employers. Moreover, the standard tool for viewing Class Diagrams has lots of technical pre requisites (for instance, one of them is a specific version of Java installed locally) which unable this feature to be used on many situations. I would love to give a more detailed opinion about this standard tool if I hadn’t given up of trying to set it up.

Finally, Marek Kowalkiewicz recently gave his personal opinion on SAP Teched Online – 10 Facts About the New Unified Developer License (11:57) that:

“… We want developers to start competing with SAP where it comes to the applications that they build because that is very heathy for the ecosystem…. Let the best guys win.”


Other day I was checking some great blogs about documentation here at SDN and in the end I came across a website called– time to start competing with SAP.

yUML is a service which enable other tools to generate simple but very clean UML diagrams: you can see a comprehensive list of integrators using the URL below:

(I will love sharing stuff that I have coded recently into my employers’ Confluence pages)

One of the cool things about yUML is that you can use its DSL to generate diagrams for you online and for free. Moreover, the final diagram can be easily exported to JPEG, PNG, PDF and JSON formats. It might be a great use case for ZJSON project.

Later, I remembered that there were a couple of classes inside ABAPDoc2 project that were able to read ABAP Workbench objects like global classes to finally generate some Javadoc-like html files. So I realized that I could create two projects that might be helpful to generate yUML diagrams for ABAP code.

The first is called “ABAP Workbench Objects Framework“. By its name you might guess what is all about and you are right. Its just a couple of classes abstracting the idea of workbench objects like classes and interfaces with some interesting features related with them. If you will, it encapsulates data provided by the standard function group SEOK. I’m pretty much sure that there are other similar projects but I like the idea of having an open source project relying on another one.

So, the second project I created is called “ABAP2yUML“. If you wanna try to guess again I bet you scored twice. This project aims to convert ABAP objects code and transform it into yUML diagrams using its DSL. On the first moment, class diagrams are the MVP of this GitHub repository.

Being honest, I have worked just a few hours a considerable amount of hours (since this post was deleted) on both projects but as my recent background tells me to “release early and improve often based on customers feedback” (as some guys right here might be design thinking) I decided to write this blog announcing both projects and inviting the community to collaborate and give feedback.

So.. who would like a tool to generate not just class diagrams but also use cases and activity diagrams still in ECC 6 and still in 20134? Please comment if you do.

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Harsh Bhatt
      Harsh Bhatt

      Hello Fabio,

      I am unaware on how to generate UML diagram for existing global classes in repository. Also, as you said, I would like to generate activity diagrams & use cases for my class.

      Please help me through this.



      Author's profile photo Fabio Pagoti
      Fabio Pagoti
      Blog Post Author

      Hi Harsh! Thanks for the comment.

      Using a standard tool in SAP, you can right click on a class inside SE80. Inside the menu there is an option within a submenu like "Generate UML Class diagram" (I'm not share the exact name of that option).

      For using that you will need a specific version of Netweaver, a specific Java version and some specific components of SAPGui installed.

      I recommend using this alternative if you don't care about installing all that stuff or you already got them installed.

      For using ABAP2yUML you will need to clone some Git repositories, learn how import ABAP objects into the workbench using SAPLink and learn a bit of how works. ABAP2yUML at the moment is able to generate the syntax yUML understands inside a text file so you can copy and paste directly in the website.

      fabiopagoti/abap2yuml · GitHub

      There are also other alternatives for this like installing Eclipse plugins or doing some enhancements on standard transactions. These options can be easily found at SCN.


      Author's profile photo Harsh Bhatt
      Harsh Bhatt

      Hi Fabio, Thanks for your reply.

      I have downloaded nugget for abap2yuml from GitHub as mentioned by you. While installing it I am facing issues. ZCL_WB_CLASS is unknown. Could you please check and confirm? Do I need to carry out any other installation apart from NUGG_YUML_ABAP-V-1.2?



      Author's profile photo Fabio Pagoti
      Fabio Pagoti
      Blog Post Author

      Hi Harsh.

      You have to install all the dependencies as described on the project wiki.


      Author's profile photo Mark Van Reeth
      Mark Van Reeth



      When activating the objects of the abap2yuml nugget (V1.2), I get the error that type ZIF_MOCKA_MOCKER is unknown. This type does not occur in any of the nugget files of either the WB_OBJECTS or ABAP2yUML projects. Did I miss any dependencies?


      Kind regards,