34
Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

Embed Size (px)

Citation preview

Page 1: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

Class Builder Tutorial

Presented By-

Amit Singh & Sylendra Prasad

Page 2: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

How to work with Class Builder (SE24)

• Goto transaction SE24.

Page 3: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• Give a name and press create. A pop up window appears asking for selecting class or interface.

• Select class and press continue button,

Page 4: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• Now another pop up comes asking for short description , instantiation ( like Public, Private, Abstract and Protected ) and type of the class (normal ABAP Class, Persistent Class or Exception class) . Select the appropriate class type.

• If you don’t want to create any subclass of this class , then check the checkbox named “Final”.

Page 5: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• Now you will get the class builder screen.

• There are a lot of options like Methods, Attributes, Events, friends, Interfaces,Constructor,Class Constructor etc.

Page 6: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

Defining attributes• Goto attributes tab. Specify the attribute name , level ( Instance or

Static) , visibility, associated type, description , initial value etc.

• Usually attributes are defined in the private section of the class so that only methods of the class can manipulate them.

Page 7: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

Defining methods• Click on methods tab.• Give a method name, level (Instance or Static), visibility (Public ,

protected or private ) and description.

Page 8: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• If you are using parameters to import or export data from main program, click on parameters button and specify the appropriate parameters.

• Constructor is a special method which is automatically called whenever an instance of the class is created. It can be added to the set of methods by clicking on the Constructor button.

Page 9: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• Class Constructor is the static version of Constructor and can be included in the methods list by clicking “Class Constructor” in the toolbar.

Page 10: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

Implementing the methods• Double click on any method name and you will get an editor to

perform the coding.

• Provide the coding within METHOD….ENDMETHOD.

Page 11: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

Creating interfaces• Goto transaction SE24.• Give name and click on create and select interface radio button and

give a short description.

• As in the class , you can define methods, attributes, events, interfaces within interface.

• After activating the interface, you can link the methods in the class by giving the interface name in the Interfaces tab.

Page 12: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• On saving, automatically all the methods in the interface will be added to the Methods tab in the class. Provide the coding for the methods as explained previously.

Page 13: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

Defining Events

• In the events tab, give the event description like name , level (Instance or Static), Visibility (public, protected, private) and short description.

• Events can be handled by methods either in the same class or in a different class.

Page 14: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

Handling events in the same class• Define a method in the Methods tab and activate the class now.• Click on the detailed view icon .• Check the “Event handler for “ checkbox and fill the class and the

required event.

• Now a link icon appears in “Method type” column like this.

Page 15: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• If in the event definition, any parameters are defined, they will have to be copied to the parameter interface of the event handler method.

• So go to the Parameter interface of the method by clicking on Parameter button.

• Copy the parameters of the event by clicking on the following icon.

Page 16: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• Linking of Event and the method can be made complete by using the statement SET HANDLER.

• User defined events are raised by using the statement

RAISE EVENT <event_name>.

• In the above example, while processing HANDLE_DOUBLE_CLICK , we raise the event my_event and it will be handled by the method handle_user_def.

Page 17: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

Handling events of standard class• Suppose you want to handle double click event in ALV grid, you can

create a custom class and create a method to handle the event. • Click on the detailed view icon .

• Check the “Event handler for “ checkbox and fill the class and the required event.

Page 18: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• Now a link icon appears in “Method type” column like this.

• Now you can provide the implementation of the event handler method by double clicking the method name.

Page 19: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

Defining Friend classes

• If a class wants to access the protected and private components of another class, then the former can be made a “friend” of the latter.

• Goto Friends tab in Class Builder and specify the friend class.

• Let us create a private attribute for the class so that it can be accessed by friend function.

Page 20: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• Now create a friend class which has a method to access the private attribute of the previous class.

• Now you can provide the implementation of the method showing the way in which the private attribute is accessed.

Page 21: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

How to create sub classes (Inheritance)

• In properties of the class, specify the super class.

• On saving the subclass, the public and protected components of the super class will automatically be added to the corresponding list.

Page 22: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

Redefining superclass methods• Place the cursor on the method to be redefined and click on the

Redefine Icon • You can redefine the default superclass implementation in the editor

like this.• In the above code,

CALL METHOD super->handle_double_click is used to execute the super class implementation, before performing subclass implementation.

Page 23: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• In the main program, the subclass objects are instantiated and redefined methods can be called.

• When the above program is executed, initially control goes to subclass’s redefined method handle_double_click. Then the superclass implementation is done and control comes back to perform subclass implementation.

Page 24: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

Creating persistent classes• Global classes, as such are persistent, but their instances need not

be. Usually the data, after program execution, is lost.• If the data is to be stored permanently ( persistently) , they need to

be stored in a database. Persistent object concept was introduced with this idea in mind.

• To create persistent objects, Go to SE24 and select persistent class.

• The class name should start with ZCL_( for eg: ZCL_AMIT_PERST)

Page 25: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• Now automatically, various components are generated in Methods ( like handle_exception, get, init, set, invalidate) , events , friends tab.

Page 26: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• In addition, a class agent starting with ZCA_ ( ZCA_AMIT_PERST) and a base class ( ZCB_AMIT_PERST), which is the super class of agent class, are also generated. This agent class not only manages the instances of persistent classes, but also performs the actual database accesses.

• The base class (ZCB_AMIT_PERST) can also be viewed in the friends tab of the created class.

• Now you can map the database to the created class by clicking on the ‘Persistence’ button in the toolbar.

• A pop up appears asking for database table/structure

Page 27: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad
Page 28: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• Now you will get all the table fields in the bottom-most section.

• Now you can double click on any of the table fields. You can edit the field properties and now when you click on ‘up arrow’ close to the description to update it in the persistent class.

Page 29: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad
Page 30: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• When you click Save and click on ‘Back’ button, new GET_<field_name> ( for read-only fields ) and SET_<field_name> ( for other fields ) are generated in the Methods tab.

• Now activate the class and the agent class.

Page 31: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

• Now in the main program, you need to define a reference variable of the agent class, filling it with reference from the static attribute AGENT.

• Now create the new instance of persistence class using the method of base class CREATE_PERSISTENT. If an object already exists, you can raise the exception CX_OS_OBJECT_EXISTING by using try catch statements.

• Fields which are not read-only can be set by using SET_<field_name> statements.

• Now the updates can be made permanent by using COMMIT WORK statement.

• After creation of persistent objects, they can be loaded into main program using the method GET_PERSISTENT passing the key values in the parameter interface.

• Data from specific fields can be obtained by the statement GET_<field_name>.

Page 32: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad
Page 33: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

Inheriting Standard SAP Classes

• Standard classes can be extended by creating their subclasses.

Page 34: Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad

Thank You