Skip to Content

COMMUNITY DAY SESSION: Best practices in development of Business classes in OO ABAP

It is with pleasure that I get involved again at the Community day. This is my 4th. Community Day and I still think it is the highlight of the whole week. 


Last years (and during SAPphire/ASUG 2008) I’ve been involved, with the help of others ( Rich Heilman and Alexandre Giguère ), in the development and presentation of the ABAP Report Wizard. It has been a great experience and it is very rewarding to see it downloaded more then 1300 times! Way to go! That is the power of the community. 

Some links to past project presentations:


Now it is time to talk about something else: I’ve worked with ABAP Object Oriented programming for a while now and I found that there was something important missing: a general guideline/standard on development of Business classes (Classes that represent business objects; Sales orders, Deliveries, materials, etc). Let me explain a bit better: Object orientation is a vast subject and can be applied in ABAP in different ways (even SAP has not applied a standard in its own code). It is nobody’s fault since we understand that is it hard to process such a change in programming paradigm considering thousands of programs that are already coded, tested and that work that were coded in the “old” way. 


Additionally, OO ABAP is as not widely used as it should. I think it is greatly a result of the fact that most companies don’t invest in creating a set of business classes that can be reused accross many programs. To be able to achieve that, you need standards.


Igor Barbaric came up with this nice book/workshop called Design Patterns in OO ABAP. It is a great work of his part. What I still needed was a way to get concrete definitions of how to structure business classes efficiently. How do I implement the designs? More important still, how to make these classes coherent across development teams and different environments? 


This is the goal of the session: Present/discuss the standards that I have been using for the past years that I think can benefit many. Also, since this is the community day, it gives is the flexibility/freedom to turn this session in a nice opportunity to even improve it further.  Topics to be covered:

  • Conventions (attributes/methods, etc), Attribute accesses, READ, GET and READ* CREATE* methods;
  • Application of SINGLETON pattern in a business object class; 
  • Use of Exception classes;
  • Instance buffering;
  • Inheritance in SAP business model;
  • Possibility of automating the generation of business classes;


We’ll work with concrete examples used on a day-to-day basis that should be of benefit of most. 


Please feel free to join me at the community day!  


See you guys there!  


Leonardo De Araujo 

You must be Logged on to comment or reply to a post.
  • Hi Leonardo,

    Thank you for this great contribution ( spread the ABAP to SCN ), This is an important subject and could not miss in SAP TechEd’08.


    Marcelo Ramos

    • Ola’ Marcelo,
      That is great to hear so quickly that people are interested.
      I am also very glad to hear from you since I had found your ABAP Objects Guidelines – ABAP Development – Wiki.
      One of the most important things for me, during the session is not ony to present what we’ve done so far but also try to get a consensus within the community on the way to go.
      One thing that I haven’t mentioned a lot (cause I don’t know if I will be able to explore this opportunity before the SAPTechEd) is about the possibility of using the same technology used for the ABAP Report Wizard (using SAP wizards) to automatically generate Business Classes. Imagine a transaction that you enter a class name, its attributes and links to DB tables, and the wizard generates it all (read methods, Get methods, create methods, etc) according to the standard.
      That is why we need a good set of standards.

      We’ll be asking for help later on for the development of the tool. You are welcome to join us if you want.

      Glad to hear from another Brazuca!

      See ya in Vegas!!!

      p.s. I suggest you add your name to the session in the VEGAS 2008 Community day wiki. This way it will help the organizers to properly schedule the sessions.(

      • Leonardo,

        I really want to go to SAP TechEd’08, but still I can not confirm my presence.

        May you see me sitting in on the first chairs to not missing anything!

        It would be a great pleasure to help you with the ABAP Report Wizard! I use it often to generate my ALV reports ! Great project !

        It would be very nice to see the ABAP Objects Guidelines wiki receiving contributions from all ABAP Objects funs like us !

        BTW: We +9000 visits on (ABAP Objects Guidelines wiki) and increasing !

        All the luck for you on Community Day !

        Marcelo Araújo Ramos

        • Just a correction: the help we may request is to build this wizard to generate business classes. Nothing to do with the ABAP Report Wizard.

          Let me know if you are coming.


  • Hi Leonardo, this is a great topic, one that is often not paid the deserved attention.
    Is there any pdf or presentation file that I can get about this session?
      • Excellent!
        The only thing I don’t totally agree with regarding what’s in the .ppt is the avoidance of prefixes in attribute names: I think they are still useful for identifying at a glance the kind of variable we’re dealing with. But I do omit the scope part, so I use for instance:

        T_ for tables
        V_ for simple variables
        S_ for structures
        R_ for references

        and so on…

        The same goes for method parameters: instead of the proposed naming, I use a combination of parameter type and variable type, for example when passing Tables: IT_ (Importing), ET_ (Exporting), CT_ (Changing), RT_ (Returning)…you get the idea.

        Nevertheless, the most important issue this discussion raises is the mindshift required in all SAP development teams to begin thinking in objects (not only the developers but the functional consultants!). As a developer you can still use it, but you’re much more limited since everything is expressed “procedurally”, and unless you have a deep knowledge of the business process yourself, you risk creating a class hierarchy with deviates too much from the reality concepts.

        Well, enough typing, I eagerly await the white paper!