Hi
Could you please help me to understand the following behavior of data reference variable:
Case 1:
DATA: ls_flight TYPE sflight,
lr_flight TYPE REF TO data.
FIELD-SYMBOLS: <lfs_flight> TYPE sflight.
ls_flight-carrid = 'AA'.
ls_flight-connid = '2157'.
GET REFERENCE OF ls_flight INTO lr_flight.
ASSIGN lr_flight->* TO <lfs_flight>.
Case 2:
TYPES: BEGIN OF ty_vbap,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
END OF ty_vbap.
DATA: it_vbap TYPE STANDARD TABLE OF ty_vbap,
dref TYPE REF TO data.
FIELD-SYMBOLS: <fs_vbap> TYPE ty_vbap
SELECT vbeln posnr FROM VBAP INTO TABLE it_vbap UP TO 10 ROWS.
GET REFERENCE OF it_vbap INTO dref
ASSIGN dref->* TO <fs_vbap>.
Here CASE 1 is executing as expected while CASE 2 is giving dump for ASSIGN dref->* TO <fs_vbap>. I do not really understand why CASE2 is giving dump( exception : ASSIGN_TYPE_CONFLICT, You attempted to assign a field to a typed field symbol, but the field does not have the required type).
Is user defined types played a role here? or Am I missing something obvious ?