"! <p class="shorttext synchronized" lang="en">ABAP Class examples with and without Hungarian Notation</p>
CLASS zcl_hungarian_notation DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
methods mu_export_flights
exporting
!et_flights type /dmo/t_flight.
methods get_flights
exporting
!flights type /dmo/t_flight.
PROTECTED SECTION.
PRIVATE SECTION.
"! <p class="shorttext synchronized" lang="en">All Flights</p>
DATA flights TYPE /dmo/t_flight.
"! <p class="shorttext synchronized" lang="en">All Flights</p>
data git_flights TYPE /dmo/t_flight.
ENDCLASS.
CLASS zcl_hungarian_notation IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
select * from /dmo/flight into table @flights.
select * from /dmo/flight into table @git_flights.
select * from @git_flights as FLIGHTS where carrier_id = 'AA' into table @data(lt_flights) .
select * from @flights as FLIGHTS where carrier_id = 'AA' into table @data(flights_american).
loop at lt_flights REFERENCE INTO data(lr_flight).
if lr_flight->connection_id = '0017'.
endif.
endloop.
loop at flights_american REFERENCE INTO data(flight).
if flight->connection_id = '0017'.
endif.
endloop.
mu_export_flights(
IMPORTING
et_flights = data(li_flights)
).
get_flights(
IMPORTING
flights = data(processed_flights)
).
ENDMETHOD.
METHOD mu_export_flights.
et_flights = git_flights.
ENDMETHOD.
METHOD get_flights.
flights = me->flights.
ENDMETHOD.
ENDCLASS.
"! <p class="shorttext synchronized" lang="en">Field-Symbol vs. Reference Performance Testing</p>
CLASS zcl_fs_ref_perf_testing DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
PROTECTED SECTION.
PRIVATE SECTION.
DATA flights TYPE /dmo/t_flight.
METHODS data_test.
METHODS field_symbols_test.
METHODS data_ref_test.
ENDCLASS.
CLASS zcl_fs_ref_perf_testing IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
DO 1000 TIMES.
SELECT * FROM /dmo/flight APPENDING TABLE @flights.
ENDDO.
data_test( ).
field_symbols_test( ).
data_ref_test( ).
ENDMETHOD.
METHOD data_test.
LOOP AT flights INTO DATA(flight).
IF flight-carrier_id = `SQ`.
flight-price += 35.
modify table flights from flight.
ENDIF.
ENDLOOP.
ENDMETHOD.
METHOD field_symbols_test.
LOOP AT flights ASSIGNING FIELD-SYMBOL(<flight>).
IF <flight>-carrier_id = `SQ`.
<flight>-price += 35.
ENDIF.
ENDLOOP.
ENDMETHOD.
METHOD data_ref_test.
LOOP AT flights REFERENCE INTO DATA(flight).
IF flight->carrier_id = `AA`.
flight->price += 35.
ENDIF.
ENDLOOP.
ENDMETHOD.
ENDCLASS.
"! <p class="shorttext synchronized" lang="en">ABAP Inline Declaration</p>
CLASS zcl_inline_declare DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS old_way IMPORTING out TYPE REF TO if_oo_adt_classrun_out.
METHODS new_way IMPORTING out TYPE REF TO if_oo_adt_classrun_out.
ENDCLASS.
CLASS zcl_inline_declare IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
old_way( out ).
new_way( out ).
ENDMETHOD.
METHOD old_way.
DO 10 TIMES.
SELECT * FROM /dmo/flight APPENDING TABLE @DATA(flights).
ENDDO.
FIELD-SYMBOLS: <line1> LIKE LINE OF flights,
<line> LIKE LINE OF flights,
<comp> TYPE any.
* READ TABLE flights ASSIGNING <line1> INDEX 1.
LOOP AT flights ASSIGNING <line>.
DO 3 TIMES.
ASSIGN COMPONENT sy-index OF STRUCTURE <line> TO <comp>.
out->write( <comp> ).
ENDDO.
ENDLOOP.
ENDMETHOD.
METHOD new_way.
DO 10 TIMES.
SELECT * FROM /dmo/flight APPENDING TABLE @DATA(flights).
ENDDO.
* READ TABLE flights REFERENCE INTO DATA(new_line1) INDEX 1.
LOOP AT flights REFERENCE INTO DATA(new_line).
DO 3 TIMES.
ASSIGN COMPONENT sy-index OF STRUCTURE new_line->* TO FIELD-SYMBOL(<new_comp>).
out->write( <new_comp> ).
ENDDO.
ENDLOOP.
ENDMETHOD.
ENDCLASS.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
38 | |
19 | |
13 | |
13 | |
11 | |
10 | |
10 | |
10 | |
8 | |
8 |