Skip to Content
0
Former Member
May 27, 2008 at 03:20 PM

Problem with typing field-symbols 4.6c versus ERP 6.0

57 Views

dear fellows,

i'm facing a problem.

once it was allowed to type field-symbols like:

FIELD-SYMBOLS: <fs_csks> TYPE csks,

<lvs_fcat> TYPE lvc_s_fcat,

<wa_totex> TYPE ANY.

and i was able to assign components in that way:

LOOP AT gt_fcat ASSIGNING <lvs_fcat>.

IF <lvs_fcat>-fieldname = 'KOSTL'.

ASSIGN COMPONENT <lvs_fcat>-fieldname OF STRUCTURE ls_csks

TO <fs_csks>-kostl.

ENDIF.

IF <lvs_fcat>-fieldname = DATBI'.

ASSIGN COMPONENT <lvs_fcat>-fieldname OF STRUCTURE ls_csks

TO <fs_csks>-datbi.

ENDIF.

ENDLOOP.

i found that quite usefull, when ls_csks and the internal table it belonged to were created dynamical.

with our new release i get an error message that says, <fs_csks>-kostl is not a field-symbol.

How can i get the same logic under ERP 6.0?

many thanks,

Robert

Example could be:

REPORT z_csks.

TABLES: csks.

DATA: gt_fcat TYPE STANDARD TABLE OF lvc_s_fcat,

gt_csks TYPE STANDARD TABLE OF csks,

ls_csks LIKE LINE OF gt_csks.

FIELD-SYMBOLS: <fs_csks> TYPE csks,

<lvs_fcat> TYPE lvc_s_fcat,

<wa_totex> TYPE ANY.

ASSIGN csks TO <fs_csks> .

CALL FUNCTION

'LVC_FIELDCATALOG_MERGE'

EXPORTING

i_structure_name = 'CSKS'

CHANGING

ct_fieldcat = gt_fcat.

LOOP AT gt_fcat ASSIGNING <lvs_fcat>.

IF <lvs_fcat>-fieldname = 'KOSTL'.

ASSIGN COMPONENT <lvs_fcat>-fieldname OF STRUCTURE ls_csks

TO <fs_csks>-kostl.

ENDIF.

ENDLOOP.

SELECT * FROM csks INTO TABLE gt_csks

WHERE kosar = 'R'.

LOOP AT gt_csks into ls_csks.

ENDLOOP.