CLASS zcl_any_class DEFINITION
PUBLIC
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
DATA mv_company_code TYPE bukrs READ-ONLY.
CLASS-METHODS get_instance
IMPORTING
iv_company_code TYPE bukrs
RETURNING
VALUE(ro_result) TYPE REF TO zcl_any_class.
METHODS constructor
IMPORTING
iv_company_code TYPE bukrs.
PRIVATE SECTION.
CLASS-DATA mo_instance TYPE REF TO zcl_any_class.
ENDCLASS.
CLASS zcl_any_class IMPLEMENTATION.
METHOD get_instance.
IF mo_instance IS NOT BOUND.
mo_instance = NEW zcl_any_class( iv_company_code ).
ENDIF.
ro_result = mo_instance.
ENDMETHOD.
METHOD constructor.
mv_company_code = iv_company_code.
ENDMETHOD.
ENDCLASS.
DATA lo_any_class TYPE REF TO zcl_any_class.
lo_any_class = zcl_any_class=>get_instance( '1000' ).
cl_demo_output=>write_data( lo_any_class->mv_company_code ).
cl_demo_output=>display( ).
TYPES: BEGIN OF ty_company_code,
company_code TYPE bukrs,
END OF ty_company_code.
TYPES ty_company_codes TYPE TABLE OF ty_company_code WITH KEY company_code.
DATA lo_any_class TYPE REF TO zcl_any_class.
DATA(lt_company_codes) = VALUE ty_company_codes( ( company_code = '1000' )
( company_code = '2000' ) ).
LOOP AT lt_company_codes INTO DATA(ls_company_code).
CLEAR lo_any_class.
cl_demo_output=>write_data( ls_company_code-company_code ).
lo_any_class = zcl_any_class=>get_instance( ls_company_code-company_code ).
cl_demo_output=>write_data( lo_any_class->mv_company_code ).
ENDLOOP.
cl_demo_output=>display( ).
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
16 | |
5 | |
4 | |
3 | |
3 | |
2 | |
2 | |
1 | |
1 | |
1 |