loop at itab into val.
...
endloop.
write: / |The last value was: { val }|.
loop at obj->method_that_returns_itab( ) into val.
...
endloop.
write: / |The last value was: { val }|.
loop at obj->method_that_returns_itab( ) assigning field-symbol(<val>).
write <val>. "<--- OK!
endloop.
write: / |The last value was: { <val> }|. "<--- Dump! Field symbol not assigned
REPORT z_functional_operand_lifetime.
CLASS lcl_test DEFINITION CREATE PUBLIC.
PUBLIC SECTION.
METHODS start.
PRIVATE SECTION.
METHODS get_strings RETURNING VALUE(result) TYPE stringtab.
ENDCLASS.
CLASS lcl_test IMPLEMENTATION.
METHOD get_strings.
result = VALUE #( ( `A` ) ( `B` ) ( `C` ) ).
ENDMETHOD.
METHOD start.
DATA: s TYPE string,
sref TYPE REF TO string.
FIELD-SYMBOLS <s> TYPE string.
WRITE: / 'LOOP AT strings ASSIGNING <s>.'.
DATA(strings) = get_strings( ).
LOOP AT strings ASSIGNING <s>.
WRITE: / <s>.
ENDLOOP.
WRITE: / COND #( WHEN <s> IS ASSIGNED
THEN |Assigned: { <s> }|
ELSE 'Not assigned' ).
ULINE.
WRITE: / 'LOOP AT get_strings( ) INTO s.'.
LOOP AT get_strings( ) INTO s.
WRITE: / s.
ENDLOOP.
WRITE: / COND #( WHEN <s> IS NOT INITIAL
THEN |Value: { s }|
ELSE 'Not assigned' ).
ULINE.
WRITE: / 'LOOP AT get_strings( ) ASSIGNING <s>.'.
LOOP AT get_strings( ) ASSIGNING <s>.
WRITE: / <s>.
ENDLOOP.
WRITE: / COND #( WHEN <s> IS ASSIGNED
THEN |Assigned: { <s> }|
ELSE 'Not assigned' ).
ULINE.
WRITE: / 'LOOP AT get_strings( ) REFERENCE INTO sref.'.
LOOP AT get_strings( ) REFERENCE INTO sref.
WRITE: / sref->*.
ENDLOOP.
WRITE: / COND #( WHEN sref IS BOUND
THEN |Bound: { sref->* }|
ELSE 'Not bound' ).
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
NEW lcl_test( )->start( ).
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
25 | |
5 | |
4 | |
3 | |
2 | |
2 | |
2 | |
2 | |
2 |