Skip to Content

Re-learn ABAP: Transition from Procedural to OO ABAP

This is my first post for this blog. I admit that I am a bit hesitant to post this as I feel it will have no merit as a contribution for any ABAP related content. But I feel that this is the best place to start a blog about ABAP. Not only are there people who can relate, I also believe there are people who can give advice like the experts and mentors or fellow ABAP enthusiasts.


SDN has always been the main place for me when I search for ABAP related information. It was only lately that I subscribed to the ABAP Weblogs RSS which resulted with me reading 2 interesting blogs:



After reading the above mentioned blogs, I got into thinking. But before that, let me start by giving a brief overview about me.


I got started with ABAP programming in 2005 and in a rather rushed way. The first company I worked for needed to replace a resigned ABAPper and so I was taught in a rush. I recall I was only taught the basic statements DATA, SELECT, LOOP and WRITE and crudely introduced to the concept of internal tables. All this was done in more or less 4 hours. The next day, I was given some actual work. For the most part of the 2 years I worked in that company, I gradually taught myself ABAP as best as I knew how but only things I needed to complete the requirements given to me. It never occured to me to improve my skill set then because most work I received were basically reports — basic LOOP AT, WRITE and WS_DOWNLOAD stuff (we had a 4.6C system then).


In 2007, an opportunity presented itself when an outsourcing firm opened in a nearby city looking for experienced ABAP programmers. I applied and was hired. This time around, I felt compelled to learn many things because I was basically handling work units that involved the many facets of ABAP — reports, interfaces, forms and enhancements. This time around, everything was different as I had to cope with strict deadlines for clients so learning new ABAP technology was sidelined. Most systems are still in the older, procedural ABAP paradigm although some have migrated to the newer systems i.e. ECC6. I have been at it for 3 years now and only recently have I felt that I have not improved or grown my ABAP skills.


Going back, after reading the 2 blogs I mentioned above, I felt that I needed to step-up my skills gradually. The 2 blogs actually inspired me to create this blog as an entry point in finding the best way to re-learn ABAP programming. I think that the first step I should take is to shed my procedural ABAP programming style and start using ABAP Objects and learn the basics of Web Dynpro.


For now, I need advice particularly on transitioning from procedural to OO ABAP. Any ideas, tips or recommendations?

You must be Logged on to comment or reply to a post.
  • Object oriented programming is different from procedural programming. But if you are a programmer who thinks before coding, who properly modularises, understands variable scope, why global variables are bad, what encapsulation means – then you’re half-way there.

    Like “normal” programming, object oriented programming is a generic skill. Pretty much what you learn of the overall design in one language will apply to any other language. And that is how I approached learning ABAP Objects. To be frank, ABAP Objects isn’t the best language to learn on. It’s pretty clunky.

    What I did, was buy a copy of Head First Java, from the O’Reilly Press, download Eclipse, and work through the book. Once I’d completed the book (the only “teach yourself” book I’ve ever completed ), I wrote a few programs – implementing a few card games and a few other bits and pieces. Once I was happy with that, I started doing ABAP Objects. I’d already learned the framework, on one of the first courses on the subject offered by SAP back in 2000. But the techniques of OO programming were what I really needed to know. And I was able to apply what I’d learned in Java to the ABAP world.

    I’ve now been doing OO ABAP for 5 years, and find that I’m able to develop faster, cleaner, and better than I was ever able to do before. And when i can exploit the power of inheritance and polymorphism… well, that’s pretty cool. My customers like it as well, when a little subclass here, or new interface implementation, produces some new, very useful, business functionality. Tiny change – great effect – low cost!

    • I was actually doing this approach — learning OO paradigm using C++ instead of Java — but I felt it was a waste of time. I will look into this again and maybe the approach you did will indeed work for me too.
      • Well, Java is simpler than C++, and shares more features with ABAP Objects.

        But any new learning is never a waste of time – you never know when it might come in useful. I learned Java and how to use Eclipse. Then my client had a requirement for a servlet, to be written in Java, using the Netweaver Development Studio (or whatever it’s called now – but it is Eclipse). Bingo – 10 days interesting work!

        • Java is indeed better to learn compared to C++ from an SAP ABAP programmer’s perspective. I will give this a go in the near future as well.
  • I’m still transitioning.  I am using OO in everything I develop.  But it is not second nature for me yet. 

    It’s a bit of an uphill battle.  I’m FINALLY using some of the more advanced features.

    1.  I went to classes.  Forgot what I knew while doing “real” work programming procedurally.
    2.  Decided I really needed objects.
    3.  Went to elearning here at SCN.  Very cool.  I kept the presentation open, paused it, and designed the solution on our system.  Now I have an example(s) to go back to.
    4.  Started using classes.  ALV grid is a great place to start.
    5.  Started writing classes – and I know the OO programmers will cringe – but starting to write classes like I do function modules.
    6.  Moved into a more OO approach.  Currently using inheritance and polymorphism.  Boy is this helpful.
    7.  Another tool to use.  I downloaded ZSAPLINK.  That is easy to follow and uses OO well.
    8.  Made (make) the consultants who have come here program in objects.   That’s not always the best idea.  Some of them struggle as much – or more – than I do.

    Take your time and think thru the design.
    Learn on a project with a longer timeline where you have time to tweak your programs.
    Just get started.  Don’t spend too much time thinking about it.  You’ll drive yourself nuts!

    Basic syntax is the same as procedural.  That makes everything easier.  I can still use the same statements / performance techniques that I always have.   Huge benefit over learning a new language.

    Basic syntax is the same as procedural.  That makes everything harder.  It is tempting to revert back to procedural while using classes.  Then you can tell yourself that you are programming OO and really you’ve just found a different way of creating function modules.

    SCN is a great resource!  I tend to promote it rather loudly.  


    • Thank you for your suggestions. I believe that it’s very true when you say: “Just get started. Don’t spend too much time thinking about it. You’ll drive yourself nuts!”.

      But sometimes getting started is the hardest part. Knowing where to start tends to lead to thinking about it too much.

  • Hello Eric,

    I can relate to your situation easily. Our career profiles are similar & our interests do match – OO ABAP.

    You can check this forum discussion(Re: Need business example in OOPS report.), Uwe has 3 simple steps:

    1. “Think big, start small!”
    2. “Start now!”
    3. “Grab every chance to use existing classes and create your own whenever necessary.”

    Happy learning !!


    • Thank you for your response. Indeed the best way to begin is to “Start now!” as you mentioned. Gradually and steadily pacing myself on the OO concepts will surely help my improvement.
  • Nice post, I was a cobol programmer for years till we transitioned to SAP and I found that Thomas Jung and his enterprise geeks friends have alot of resources that have helped me transition not only to ABAP but ABAP oo. They have a five part video series on ABAP oo that should help get you started that you can find at their site, here is the link to the first video in the series:

    I have watched all five, they are very informative and Thomas has examples that he shows you as well. He also has recently done a 7 part video series on web dynpro that I am currently working my way through.

    SAP-Press has some books that will help, but I have found so far that just finding example programs and coding them yourself goes a long way in teaching the concepts of oo, the books help, but…

    Once your test program is working use the extended check in your class builder to check your class for obsolete statements and other tips that will help too.

    • This is a good suggestion, thank you. I have actually started with parts 1 and 2, slowly letting the concepts sink in. I just hope that there was a way to dload the video files so I don’t need to watch them in streaming format. But I will take what I can.
      • There is a way of downloading the video’s, directly above the streaming video window is the download links that you can click on to download the video’s as MP4’s. These can be viewed in quicktime or on an iphone depending on which link you use. There is also a third link to download the source code in case you need it.