Skip to Content
Author's profile photo Thorsten Franz

Model-Driven Development in ABAP

Developing both in the (Java-based) SAP NetWeaver Composition Environment and NetWeaver ABAP, one notices that developing in ABAP is very code-heavy, while often the same tasks can be accomplished in a purely model-driven way in the Composition Environment.

Why is there more MDD in Composition Environment than in ABAP?

So working in Composition Environment, you can get very far just using graphical editors in the Eclipse IDE, whereas in ABAP you need good programming skills. Among the reasons for this are:

  • With tools such as EMF available in Eclipse, it’s easier to build the graphical editors, code generators, and merge capabilities for custom enhancements to the generated code in Composition Environment than in ABAP.
  • Where there are special editors in ABAP, they are often less graphical than in Composition Environment because that is harder to build in SAPGui (for an example, compare the navigation editors in Web Dynpro ABAP and Java).
  • Composition Environment follows (mostly) a pervasive approach, meaning that the run-times and design-times of the Composition Tools “know each other”, allowing the user to model applications that use several Composition Tools without ever having to write glue code in order to connect two tools.

Practical benefits of model-driven development

The pros and contras of model-driven development have been in discussion for years. The benefits I would value most highly are the following:

  • The model content developed within such a framework exists within the boundaries of a well-defined meta-model which defines consistency requirements, resulting in some guaranteed degree of internal consistency that you don’t get when you’re free to code anything. This includes formal consistency (e.g. avoiding circular references) as well as developing consistently within a domain meta-model.
  • Graphical editors are intuitive and easy to use, improving productivity. (Also, collaboration benefits from developers understanding the work of their colleagues more easily thanks to an intuitive graphical representation.) However, opinions on this point vary strongly.
  • Current model-driven development tools usually offer the flexibility to “break out” with your own coding and replace the framework’s generated code wherever it doesn’t fit your purposes.
  • Also, they offer good support for adding and managing your own code while separating it from generated code (to avoid manually added code from being deleted when the generated code is refreshed) and have achieved good robustness in comparison to earlier attempts.
  • Model content is typically represented in XML, offering a higher degree of abstraction from the underlying technology than native code.
  • This allows for some degrees of platform independence, or portability across releases, tools, or even development platforms. By adding new generators, you can generate and deploy code from the same model into different development and runtime platforms. (For example, web service and data type definitions modelled in SAP’s NetWeaver Enterprise Service Repository (ESR) can be deployed into Java as well as into ABAP.)
  • If business content is available in a repository at a model level (for example, descriptions of business objects residing in the Business Object Repository), it can be easily accessed for many purposes such as generating integration scenarios, change logs, event coupling, workflows, persistency, authorizations, business rules, semantic representations, and so on. This is, in my opinion, the most eminent advantage of keeping model content in addition to its concrete implementation.

ABAP in Eclipse

I’ve mentioned earlier that the Eclipse IDE makes it easier than the SAPGui-based ABAP IDE to develop graphical model editors and code generators. However, “ABAP in Eclipse” is a topic that has been in the air for years.
A few years ago, a prototype of an Eclipse-based ABAP IDE was demoed at SAP TechEd DemoJam, creating a lot excitement. There is also a commercial product available.
Ever since then, the rumours about SAP actually offering a real and official Eclipse-based ABAP IDE haven’t stopped. Lately, SAP is no longer making a secret out of it: SAP TechEd 2010 even had a session with the following description:
ABAP in Eclipse: A Lab Preview – This session is about the new environment for ABAP development in Eclipse. ABAP in Eclipse offers state-of-the-art ABAP development tools on top of the Eclipse platform in order to increase developers’ productivity in today’s increasingly complex development environments.

Outlook

When ABAP in Eclipse becomes a reality, I expect that at first they will cover the basics and try to achieve to good adoption by focusing on one or two killer applications. In the long run, I hope for

  • more model-driven development in ABAP
  • more platform-independent representation of business content, allowing to share content between NetWeaver ABAP, Java, and non-SAP platforms
  • an Eclipse-based BOL editor (with the potential to evolve into a cross-platform Business Object Model editor, unifying existing attempts such as the BOR, BOL, Workflow Classes, and CAF)
  • generally better support for cross-platform development (e.g. cross-platform BPM processes and BPM – Business Workflow integration)

Assigned Tags

      13 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Tammy Powlas
      Tammy Powlas
      I never considered it, but I don't follow the programming like I used to, since I don't get a chance to do it that often.  Hopefully I will again soon 🙂

      But having taken 8 hours of Java programming at Harvard, I quite like the ABAP in Eclipse idea and could see where it would help.

      Enjoyed reading your blog (as always, Thorsten)
      Tammy

      Author's profile photo Peter Inotai
      Peter Inotai
      Great blog, I hope SAP will move more to the MDD direction for ABAP.
      I'm not convinced, that Eclipse what is really needed for this. Nice UI control elements are already available for SAPGUI/ABAP. For example with 7.02 the WebDynpro Windows editor is really Java-like or the UML viewer for ABAP is also great. With such controllers a building/designing framework would be possible ... of course generation part would be still complicated to implement, but it's UI independent.
      Peter
      Author's profile photo Former Member
      Former Member
      MMmmmmm...  That's an interesting idea.   I think like everything else in SAP it would depend on if I would use the tool.

      What was I developing?  Is it harder to develop in ABAP tool bench or Eclipse.  I guess I would have to play with Eclipse more.

      Interesting thought - may have been around a while but I missed it,

      Michelle

      Author's profile photo Christian Braukmueller
      Christian Braukmueller
      There was a session in September 2010 at the German SAP User Group (DSAG) conference in Nuernberg.
      DSAG-Members are able to access the slides of the session presented Sep'10.
      "ABAP in Eclipse - A Lab Preview"
      Only approx. 10 slides with small screenshots, but the demo was good and makes me curious for 2012/2013/.. ??
      Christian

      Author's profile photo Former Member
      Former Member
      Hi Thorsten,

      Great post as usual. I thought I would post a quick note for you that I've referenced a point you made in my most recent blog: The specified item was not found.
      Your blog inspired me to finally finish a discussion that relates to not understanding underneath the covers of the latest technologies being introduced (including model driven development tools).

      Cheers,
      Matt

      Author's profile photo Former Member
      Former Member
      Hi Thorsten.
      I think Eclipse IDE is very powerful and would be a good ideal tool for ABAP development in the future.
      Ondrej
      Author's profile photo Former Member
      Former Member
      hi Thorsten

      having used Eclipse for WDJ I'm really interested to see some more info on ABAP in Eclipse - its got fairly big shoes to fill given the level of integration in the current development environment.

      I wonder if the debugger will be ported to Eclipse

      john

      Author's profile photo Andreas Profitlich
      Andreas Profitlich
      I had the same question. The answer at SAPTECHED was: "No chance to port the debugger to Eclipse in the beginning."
      Author's profile photo Holger Stumm
      Holger Stumm
      Hi Thorsten,
      I am glad that you wrote this article, because I believe that we need these tools in development and use them as a way of structuring, planning and fulfilling applications. The “lonely wolf” ABAP-developer will have difficulties in the new world of Web Dynpro, eclipse and collaborative design
      It is the ideal method to implement a IT-wide  “Think first, then code”. 
      I wrote an "Real Life" example as a blog on sdn (as an longer answer to your article) of such an project and why it almost failed.
      Model Driven Architecture - a story from Real Life
      Author's profile photo Martin Ceronio
      Martin Ceronio
      I agree with Peter Inotai, that you surely don't need another heavy client app, when there are sufficient controls in the GUI, and you could (and in fact should) provide the tools as server-side applications in ABAP.
      It would make the most sense to write the modeling tools in ABAP so you can do everything with a transaction via SAP GUI.
      Overall though, MDD is long outstanding for ABAP.
      Author's profile photo Former Member
      Former Member
      Two years ago i wrote my Master Thesis about MDD for ABAP with EMF, GEF, GMF and oAW.
      After a lot of work i was able to draw UML Class-Diagrams in Eclipse and import them into SAP. There are indeed a lot of benefits generating your Code from Diagramms. But there's a lot of work to be done before:
      First of all, most of those MDD-Frameworks out there are specialized for Java or C++. So you have to implement all those ABAP specific rules like beginning classname with Z or Y and so on. Secondly MDD-Generators produce at the end Textfiles (.java, .h, etc.). In ABAP we have to import our Sourcecode into the Server-DDIC. As far as i have seen on TechEd 2010 ABAP in Eclipse is not (yet?) able to import Textfiles into a Project and upload them to the server. The way i did, using Batch Input or SAPLink, wasn't very funny.
      Before you do model anything you have to define a good graphical representation for all those SAP-DDIC Objects like Classes, Function Modules, etc.. After that you have to create the transformation Programs which translate the graphical representation into DDIC-elements, source code, do some logical checks an so on.
      I just created a technical Language, of course it would be more exciting to extend the MDD-Approach to some Business-Specific Problems. For instance creating Business Objects for SD, MM or other Modules which are then translated into ABAP-Classes, Structures, etc..
      There is no direct Link between ABAP in Eclipse and a powerful BOL-Editor. If we had one today we could create some XML-Files an import them direct into SAP as I did. If we don't create code we had at least some good documentation artefacts 🙂
      I think even with ABAP for Eclipse we still have to wait a long time for a powerful MDD-Tool. But i 'm looking forward for that day!

      Author's profile photo Andreas Profitlich
      Andreas Profitlich
      Hi Thorsten,

      great blog! I guess one of the main problems with model driven design in the ABAP world is the lack of a roundtrip environment ( = changes in the code will affect the model), which would not be very easy to design. Thats eventually a good starting point for a new Code Exchange project.

      Author's profile photo Former Member
      Former Member
      Having read the blog and the entire comments, I see ABAP in eclipse good !dea and improves UI handling.
      As of today, technology is evolving rapidly into many areas, and so are the developments and promos of the technology.
      Will wait and watch for some thing interesting in UI design and development, I see WebDynpro’s FPM(Floor Plan Manager), but still requires know how of the classes what they are meant for.