‎2007 Aug 06 3:08 PM
I have written small abap-oops program but it is giving error that
The line type of "OBJ" must be compatible with one of the types
"<b>OBJ_RECORD</b>".
Plz help me out.
REPORT zkclass1.
----
CLASS number1 DEFINITION
----
........ *
----
CLASS number1 DEFINITION.
PUBLIC SECTION.
METHODS : constructor IMPORTING x1 TYPE i
y1 TYPE i.
METHODS : findsum EXPORTING z TYPE i.
PRIVATE SECTION.
DATA : x TYPE i,
y TYPE i.
ENDCLASS.
----
CLASS number IMPLEMENTATION
----
........ *
----
CLASS number1 IMPLEMENTATION.
METHOD constructor.
x = x1.
y = y1.
ENDMETHOD.
METHOD findsum.
z = x + y.
WRITE : / z.
ENDMETHOD.
ENDCLASS.
DATA : obj TYPE REF TO number1.
DATA : z1 TYPE i.
PARAMETERS : s_x1 type i obligatory.
PARAMETERS : s_y1 type i obligatory.
START-OF-SELECTION.
CREATE OBJECT obj EXPORTING x1 = s_x1
y1 = s_y1.
CALL METHOD OF OBJ -> FINDSUM EXPORTING x1 = s_x1
y1 = s_y1.
‎2007 Aug 06 3:26 PM
Hi,
Try this way.
*------------------------------------------------------------------*
* CLASS number1 DEFINITION
*------------------------------------------------------------------*
* ........ *
*------------------------------------------------------------------*
CLASS number1 DEFINITION.
PUBLIC SECTION.
METHODS : constructor IMPORTING x1 TYPE i
y1 TYPE i.
METHODS : findsum EXPORTING z TYPE i
y1 type i. "Changed
PRIVATE SECTION.
DATA : x TYPE i,
y TYPE i.
ENDCLASS.
*------------------------------------------------------------------*
* CLASS number IMPLEMENTATION
*------------------------------------------------------------------*
* ........ *
*------------------------------------------------------------------*
CLASS number1 IMPLEMENTATION.
METHOD constructor.
x = x1.
y = y1.
ENDMETHOD.
METHOD findsum.
z = x + y.
y1 = me->y. "Changed
WRITE : / z.
ENDMETHOD.
ENDCLASS.
DATA : obj TYPE REF TO number1.
DATA : z1 TYPE i.
PARAMETERS : s_x1 TYPE i OBLIGATORY.
PARAMETERS : s_y1 TYPE i OBLIGATORY.
START-OF-SELECTION.
CREATE OBJECT obj EXPORTING x1 = s_x1
y1 = s_y1.
"Use This way here.
CALL METHOD obj->findsum IMPORTING z = s_x1
y1 = s_y1.
" Don't use this here.
*CALL METHOD OF OBJ -> FINDSUM EXPORTING x1 = s_x1
*y1 = s_y1. " 'OF' is used for OLE ObjectsRegards.
Marcelo Ramos
‎2007 Aug 06 3:16 PM
CALL METHOD OF OBJ -> FINDSUM EXPORTING x1 = s_x1
y1 = s_y1.
The above method is not called with proper interface parameters. Please check it once.
This method is having one export parameter which should be a IMPORT parameter here.
Message was edited by:
Raghavendra Goutham
‎2007 Aug 06 3:22 PM
How should i defined it ?
I wanna print addition of two no's given by user.
‎2007 Aug 06 3:26 PM
Hi,
Try this way.
*------------------------------------------------------------------*
* CLASS number1 DEFINITION
*------------------------------------------------------------------*
* ........ *
*------------------------------------------------------------------*
CLASS number1 DEFINITION.
PUBLIC SECTION.
METHODS : constructor IMPORTING x1 TYPE i
y1 TYPE i.
METHODS : findsum EXPORTING z TYPE i
y1 type i. "Changed
PRIVATE SECTION.
DATA : x TYPE i,
y TYPE i.
ENDCLASS.
*------------------------------------------------------------------*
* CLASS number IMPLEMENTATION
*------------------------------------------------------------------*
* ........ *
*------------------------------------------------------------------*
CLASS number1 IMPLEMENTATION.
METHOD constructor.
x = x1.
y = y1.
ENDMETHOD.
METHOD findsum.
z = x + y.
y1 = me->y. "Changed
WRITE : / z.
ENDMETHOD.
ENDCLASS.
DATA : obj TYPE REF TO number1.
DATA : z1 TYPE i.
PARAMETERS : s_x1 TYPE i OBLIGATORY.
PARAMETERS : s_y1 TYPE i OBLIGATORY.
START-OF-SELECTION.
CREATE OBJECT obj EXPORTING x1 = s_x1
y1 = s_y1.
"Use This way here.
CALL METHOD obj->findsum IMPORTING z = s_x1
y1 = s_y1.
" Don't use this here.
*CALL METHOD OF OBJ -> FINDSUM EXPORTING x1 = s_x1
*y1 = s_y1. " 'OF' is used for OLE ObjectsRegards.
Marcelo Ramos