|
Blogs
IntroductionThis blog introduces a 5 part eLearning series based upon a frequent request – to look at basic ABAP Object Oriented concepts. Throughout this series we will look at OO terminology, development tools, and design patterns that span a variety of ABAP release levels. We will try to keep the discussion away from all the new cutting edge syntax so that it is still quite usable for those of you on older releases like 4.6C or 6.20. For the 5 part series we will start with Part 1 looking at tooling (the ABAP Class Builder) and some basic terminology. In Part 2 we will expand the lesson by looking at static vs. instance, visibility, exception classes, inheritance, polymorphism and abstract classes. In part 3 we will see how a special type of class, called a persistent object, can be used for Object Oriented access to the database. In part 4 we will explore Object Oriented concepts in User Interface technologies. Keeping with the theme of older release levels, we will focus this part on using Model View Controller and OO eventing within Classic Dynpro applications. Finally in part 5 we will look at real world, complex example that uses all the techniques and technologies from the previous parts. Part 1 - BasicsIn Part1 of the eLearning we start with the very most basic concepts. We will explore the class builder tool within SE80 and discuss some of the terminology that you need to know in order to begin to learn Object Oriented design and development. Part 1 Video Running Time: 53 Minutes Part 2 - Classes, Inheritance, Visibility, PolymorphismIn this part, we will expand the lesson by looking at static vs. instance, visibility, exception classes, inheritance, polymorphism and abstract classes. We start with a very basic class with only static methods that works very much like a Function Group/Function Modules. Next we change the methods into instance methods and see how a class instance allows us to model complex data structures and relationships in code. Then we see how exception classes can make our exceptions more meaningful and simplify the surrounding code for dealing with exceptions. Finally we see the real power of object oriented design come to life as we use inheritance and polymorphism to hide the inner complexity of our business logic from calling applications all while ensuring uniform execution of our code. These techniques may feel foreign at first, but in the long run they lead to code that is easier and safer to maintain. Part 2 Video Running Time: 1 Hour, 10 Minutes Part 3 - Persistant ObjectsIn this part, we will expand the lessons of the previous tutorial and look at a special type of class in ABAP – the Persistent Object. Persistent Objects are an OO-based approach to the types of data access that you would normally perform with SQL statements. With Persistent Objects you don’t code any SQL statements. Instead a class is generated for you that contains SET and GET methods for reading and updating data. ABAP Persistent Objects also contain the functionality for more complex update scenarios – like V2 Asynchronous updates.Part 3 Video Running Time: 1 Hour, 9 Minutes Part 4 - User InterfaceIn this part, we look at the special use case of Object Oriented technology and design techniques as they are applied to User Interface creation. Throughout all the ABAP UI technologies, we study how MVC (Model View Controller) design can be applied. We look briefly at BSP and Web Dynpro ABAP and OO effects the overall design as well as specific features like UI element rendering and eventing. We close with an example of how you can adapt even Classic Dynpro and its PBO/PAI processing looks to a more Object Oriented MVC flow. Part 4 Video Running Time: 1 Hour Part 5 - Putting It All TogetherIn this final entry in the 5 part ABAP OO series, we examine examples of how SAP puts the techniques that we learned in the previous 4 sessions to work within the standard code that they deliver to customers. We start by looking at the CL_BCS classes for sending email. CL_BCS* serves as a perfect example of the use of Persistent Objects and Polymorphism. We also look at the functionality behind the new ABAP Code Completion feature in the ABAP Editor. This block of code uses Persistent Objects, Inheritance/Polymorphism, Exception Classes, and MVC structured Classic Dynpro. Part 5 Video Running Time: 42 Minutes Source CodeThe source code for this tutorial is provided in two different formats. The directories cofiles and data contain ABAP transport files with all the development objects contained in this tutorial. If you have access and permission to import transport files from external systems, this can be a good way to import the tutorial source code. All objects are imported at once and all development object types are supported. However you should only use this approach if you are importing into a 7.0 or higher level system. The transport files contain development objects (like Web Dynpro ABAP) that only exist at this development level. If you import the transport in earlier releases, you will receive import errors. The other solution is to import the development objects using SAPlink. SAPlink is not an SAP provided or supported solution. It is a community created project for exporting and importing ABAP development objects in XML format. You can read more about SAPlink at http://www.saplink.org. The SAPlink files are the ones with the file extension NUGG. I have divided the SAPlink files into smaller groups so that you can import just the objects that you want and avoid technologies that might not be supported on your release level. The main drawback to SAPlink is that it doesn't have a plug-in that supports persistent objects. Therefore it is not possible to include the persistent classes from Part 3 of the Tutorial. I have still included the data dictionary objects and programs from this section of the tutorial. The following is the listing of the SAPlink objects and the suggested order of import:
Thomas Jung
| |||||||||||||||||||||||