08-12-2016 3:30 PM
Basic OO question:
I have a global class Main with 2 global subclasses Main_sub1 and Main_sub2.
In both Main_sub1 and Main_sub2 I will be selecting data from two different custom tables into internal tables.
Is it possible to use a static generic attribute gt_data in Main that can be used to store the data in both Main_sub1 and Main_sub2?
I tried it this way:
CLASS main DEFINITION
PUBLIC
ABSTRACT
CREATE PUBLIC.
PROTECTED SECTION.
CLASS-DATA gt_data TYPE REF TO data.
METHODS get_data
ABSTRACT.
CLASS main_sub1 DEFINITION.
PUBLIC
INHERITING FROM main
CREATE public.
METHODS GET_DATA
REDEFINITION.
CLASS main_sub1 IMPLEMENTATION.
METHOD GET_DATA.
FIELD-SYMBOLS : <fs_data> TYPE ztab1.
ASSIGN gt_data->* TO <fs_data>.
SELECT * ztab1 INTO TABLE gt_data.
ENDMETHOD.
But the deferencing / field symbol assigning doesn't work.
08-12-2016 3:33 PM
correct your code as follows:
TYPES ty_ztab1 TYPE TABLE OF ztab1.
FIELD-SYMBOLS <fs_data> TYPE ty_ztab1.
CREATE DATA gt_data TYPE TABLE OF ztab1.
ASSIGN gt_data->* TO <fs_data>.
SELECT * ztab1 INTO TABLE <fs_data>.
08-12-2016 3:33 PM
correct your code as follows:
TYPES ty_ztab1 TYPE TABLE OF ztab1.
FIELD-SYMBOLS <fs_data> TYPE ty_ztab1.
CREATE DATA gt_data TYPE TABLE OF ztab1.
ASSIGN gt_data->* TO <fs_data>.
SELECT * ztab1 INTO TABLE <fs_data>.
08-12-2016 3:37 PM