Hi,
i have assigned a string to a field-symbol via a casting type (line 16/17) and then i am refering to one of the fields in the field-symbol (line 22/24).
Later I try to call a method with this field which is again assigned to a field-symbol (line 29).
What type do I have to declare in the definition of the called method for the attribute lv_to (line 44/45/46) ?
For ease of understanding see the source code:
FORM data_mapping USING p_wa_record TYPE t_record p_l_spos TYPE i CHANGING p_wa_record_data. DATA: l_new_data TYPE c LENGTH 750. FIELD-SYMBOLS : <data> TYPE any. FIELD-SYMBOLS : <l_target> TYPE any. CASE p_wa_record-sa. WHEN '01'. * Tabelle ZMO_CON_VT01 ASSIGN p_wa_record_data TO <data> CASTING TYPE zcon_vt01_s01_host. ASSIGN l_new_data TO <l_target> CASTING TYPE zcon_vt01_s01. WHEN '02'. * Tabelle ZMO_CON_VT02 * ... ENDCASE. LOOP AT lt_mapping ASSIGNING FIELD-SYMBOL(<lwa_map>) WHERE sa = p_wa_record-sa. ASSIGN COMPONENT <lwa_map>-from_field OF STRUCTURE<data> TO FIELD-SYMBOL(<lv_from>). CHECK sy-subrc = 0. ASSIGN COMPONENT <lwa_map>-to_field OF STRUCTURE <l_target> TO FIELD-SYMBOL(<lv_to>). CHECK sy-subrc = 0. IF <lwa_map>-mapping_method IS INITIAL. <lv_to> = <lv_from>. ELSE. PERFORM ZMAPPINGS=>(<lwa_map>-mapping_method) USING <lv_from> p_wa_record CHANGING <lv_to>. ENDIF. ENDLOOP. p_wa_record_data = l_new_data. ENDFORM. *&---------------------------------------------------------------------* *& Class ZMAPPINGS *&---------------------------------------------------------------------* * Mappings *----------------------------------------------------------------------* CLASS zmappings DEFINITION. PUBLIC SECTION. METHODS map_gv_sgber_sc IMPORTING lv_from TYPE string p_wa_record TYPE t_record CHANGING lv_to TYPE ?? . METHODS map_gv_sgbsta_sc IMPORTING lv_from TYPE string p_wa_record TYPE t_record CHANGING lv_to TYPE ??. METHODS map_vorsorge_sc IMPORTING lv_from TYPE string p_wa_record TYPE t_record CHANGING lv_to TYPE ??. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS.
Thank you!
BR Mike