0% found this document useful (0 votes)
302 views

ABAP Objects Syntax Summary

The document summarizes ABAP Objects syntax including: 1) Global class definition in the class pool including the public class definition and implementation. 2) Class definition including modifiers, sections, and forward definition for mutual recursion. 3) Class components including types, constants, data, methods, events, interfaces, and aliases. 4) Implementation of classes and methods. 5) Interface definition similar to class public components. 6) Using objects including object creation, method calls, event triggering, and event handling activation. 7) Special compiler statements and component selection syntax.

Uploaded by

Rubin Luke
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
302 views

ABAP Objects Syntax Summary

The document summarizes ABAP Objects syntax including: 1) Global class definition in the class pool including the public class definition and implementation. 2) Class definition including modifiers, sections, and forward definition for mutual recursion. 3) Class components including types, constants, data, methods, events, interfaces, and aliases. 4) Implementation of classes and methods. 5) Interface definition similar to class public components. 6) Using objects including object creation, method calls, event triggering, and event handling activation. 7) Special compiler statements and component selection syntax.

Uploaded by

Rubin Luke
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 8

ABAP Objects – Summary of Syntax

Availability: There is a brief comment on availability under each syntax


summary. If there is no specific comment, then these components are available
as of Rel. 4.5A.

Global class definition (in the CLASS-POOL):

CLASS-POOL.

TYPES: … " local types

TYPE-POOLS: … " refer to type-pools (global types)

CLASS c … . " local helper classes

ENDCLASS

CLASS pc DEFINITION PUBLIC. " the public class of the class pool

ENDCLASS.

CLASS pc IMPLEMENTATION.

ENDCLASS.

Availability: all available as of 4.5A

 
Class definition:

CLASS c DEFINITION

[PUBLIC]

[ABSTRACT]

[FINAL]

[INHERITING FROM superclass]

[CREATE {PUBLIC | PROTECTED | PRIVATE}].

[PUBLIC SECTION.

… <definition of public components>]

[PROTECTED SECTION.

… <definition of protected components>]

[PRIVATE SECTION.

… <definition of private components>]

ENDCLASS.

CLASS c IMPLEMENTATION.

ENDCLASS.

 
*--- forward definition of class for mutual recursive references

CLASS c DEFINITION DEFERRED.

Availability: all available as of 4.5A

Class components:

CLASS c DEFINITION.

{PUBLIC|PROTECTED|PRIVATE} SECTION.

TYPES … .

CONSTANTS … .

[CLASS-]DATA a TYPE t [READ-ONLY].

METHODS m REDEFINITION.

[CLASS-]METHODS m [ABSTRACT | FINAL]

[IMPORTING …] [EXPORTING …] [CHANGING …]

[RETURNING VALUE(result) TYPE t ] [EXCEPTIONS …] .

[CLASS-]METHODS m [ ABSTRACT | FINAL]

FOR EVENT e OF {c|i}


[IMPORTING fp1 fp2 … fpn] .

[CLASS-]EVENTS e [EXPORTING … ].

ALIASES alias FOR i~a.

INTERFACES i [VALUE a1 = v1 …].

ENDCLASS.

Availability:
as of 4.5A: all components, except
as of 4.6A: METHODS : REDEFINITION , ABSTRACT ,
FINAL

Implementation of classes/methods:

CLASS c IMPLEMENTATION.

"--- implementation of methods for class, interfaces, events:

METHOD m1.

ENDMETHOD.

ENDCLASS.

Interface definition :

INTERFACE i.

* --> like public components of classes <--


 

ENDINTERFACE.

*--- forward definition of interface

INTERFACE i DEFERRED.

*---

INTERFACE i SUPPORTING REMOTE INVOCATION.

Availability:
as of 4.5A: all components, except
as of 4.6A: compound interfaces

Using OO:

Create objects:

CREATE OBJECT objvar [ TYPE class | TYPE (classname) ]

[ EXPORTING arg = val … ].

Availability:
as of 4.5A: CREATE OBJECT … [ EXPORTING … ]
as of 4.6A: TYPE …

Call methods:

CALL METHOD o->m [EXPORTING …] [IMPORTING …]


[CHANGING …]

[RECEIVING …] [EXCEPTIONS …].

CALL METHOD o->m( … [IMPORTING …] [CHANGING …]


[EXCEPTIONS …]).
a = o->m( [IMPORTING …] ). "functional method call

a = o->m( [arg =] val ). "ditto, with only one parameter

Availability:
as of 4.5A: CALL METHOD …
as of 4.6A: functional method call

Examples of functional method calls:

IF o->m( 4711 ) = TRUE. … ENDIF.

CASE order->status( ). WHEN … WHEN … ENDCASE.

LOOP AT itab WHERE name = o->hostname( ). …


ENDLOOP.

len = strlen( adr1->get_name( ) ) + strlen( adr2-


>get_name ) ).

MOVE o->m( p1 = val1 p2 = val2) TO dest.

Trigger event:

RAISE EVENT e [EXPORTING arg = val … ].

RAISE EVENT I~e [EXPORTING arg = val … ].

Activate/deactivate event handler:

*--- general form

SET HANDLER h1 h2 … FOR … <see below> … [ACTIVATION


cval].

*--- standard registration

SET HANDLER h1 … FOR i|o. "- register instance event for


instance
SET HANDLER h1 … . "- handler for class event

*--- group registration

SET HANDLER h1 … FOR ALL INSTANCES.

"- for "e of C" event: all instances of C

"- for "e OF I" event: all instances of all C implementing I

Availability:
as of 4.5A: all components

Widening Cast:

"--- CAST

i1 ?= o1. "--- does o1 implement interface of i1?

MOVE o1 ?TO i1. "--- same as above

Special compiler statements:

*--- make class definition known to compiler before accessing class


comp.

CLASS ddic_class DEFINITION LOAD.

*--- make interface known to compiler before accessing interface


comp.

INTERFACE LOAD.

Component selection:
Symbol Example Meaning

-> o->a Component access using object or interface


i->a reference

- x-a Component access for structures (and embedded


objects)

~ I~a Compound names for interface components

=> c=>a Access to the static components of class c

You might also like