Assign a value to a component of a field-symbol

Hi,
I'm struggling with field-symbols, hope someone can help me with this:
I have two field-symbols:
- <row> which for example can have structure E1P0002 assigned to it;
- <row_it> which for example can have stucture P0002 assigned to it.
Certain components of <row> should be assigned to components of <row_it>. The names of the components differ however. For instance: component STRAS_40 of <row> should be assigned to component STRAS of <row_it>, NAME2_40 of <row> should be assigned to NAME2 of <row_it>, etc.
Depending on the structures assigned to the field-symbols, these fields are not always available.
Any ideas how this can be solved?
Thanks,
Patrick

Hi do as follows,
          <row_wa> is the structure of type P0002
and <row_it> is a field symbol of table type
and another field symbol <fs> type any.
if <row>-STRAS_40 is not initial.
assign component  STRAS of  structure <row_wa> to <fs>.
<fs> = <row>-STRAS_40 .
endif.
if <row>- NAME2_40 is not initial.
assign component  NAME2 of  structure <row_wa> to <fs>.
<fs> = <row>-NAME2_40 .
endif.
append  <row_wa> to <row_it>.
Hope this explanation of mine helps you,
Murthy.

Similar Messages

  • Moving a value to a component of a field symbol

    Hi,
    I have a problem with a piece of code comparable to this one:
    FIELD-SYMBOLS:
      <structure_A> TYPE ANY,
      <structure_B> TYPE ANY,
      <component_name> TYPE ANY.
    <component_name> = 'WHATEVER'.
    " <structure_A>-<component_name> = <structure_B>-<component_name>.
    The intention is to copy a value from a component of one structure to the same component of another structure. The crux is that the structures are defined dynamically and the component's name is known during runtime only.
    Assume that the example is well-defined, i. e. all field symbols are initiated with suitable values.
    --Florian

    hi Florian,
    when the structure is only known during run time, you have to ASSIGN each field separately, something like this:
    FIELD-SYMBOLS : <field_A> TYPE ANY,
    <field_B> TYPE ANY.
    ASSIGN COMPONENT 'WHATEVER' OF structure <structure_A> TO <field_A>.
    ASSIGN COMPONENT 'WHATEVER' OF structure <structure_B> TO <field_B>.
    <field_B> = <field_A>.
    you have to repeat the above for each single field you want to copy its value
    hope this helps
    ec

  • Move a variable to a component of a field-symbol structure ???

    I have a field symbol <fs_struc> that's typed as a structure from the dictionary.
    I want to move a variable to a particular component of this structure, and I've put the name of his component in another field symbol <fs_comp>.
    1) Why doesn't the following syntax work?
    ASSIGN variable TO <fs_struc>-<fs_comp>
    (Note that there's a hyphen between <fs_struc> and <fs_comp>)
    2) What is the correct syntax to do this ?
    Thanks.

    Hi David,
    1) If you've assigned <fs_comp> to a field in a structure, then you have the memory address of the component within the structure.  This is why the syntax does not work, because <fs_comp> contains the reference already to the structure (eg. <fs_comp> =  structure-field, while <fs_field>-<fs_comp> =  structure-structure-field).  You can instead use:
    ASSIGN variable TO <fs_comp>, if <fs_comp> was already assigned to a field of a structure.
    2) If your scenario is that you don't know the field of the structure you want to assign in advance, you can try something like the following.  Snippet just shows how you can dynamically assign a field of a structure to another field symbol.
    data: ls_kna1 type kna1.
    data: lv_comp_name(5) type c value 'NAME1'.
    data: o_data type ref to data.
    field-symbols: <fs_data> type kna1.
    field-symbols: <fs_comp> type any.
    ls_kna1-name1 = 'Testing'.
    CREATE DATA o_data TYPE (lv_comp_name).
          ASSIGN o_data->* TO <fs_comp>.
    assign ls_kna1 to <fs_data>.
    ASSIGN COMPONENT lv_comp_name OF STRUCTURE <fs_data> TO <fs_comp>.
    write: <fs_comp>

  • ASSIGN Component ... (field symbol stuff)

    Hi,
    I want to validate certain fields (KNA1, BUKRS, KOART, FNAME) which are
    entered by the user in the transaction XK01.  They are being captured in a structure, lets say X_LFA1.
    To validate this fields I am being asked to use field symbols using component assign.
    Can someone tell me how do I do this ?

    Tushar,
    Its still not clear to me what exactly you are trying to do.
    Is it like you just want to see if those fields exist in the table or not? If yes, you can do like this.
    parameter : p_field -- field entered by the user
    data : wa_ztable like ztable.
    field-symbols : <fs_any> type any.
    Assign component p_field of structure wa_ztable to <fs_any>.
    if sy-subrc = 0.
    Success.
    endif.
    Regards,
    Ravi

  • Assigning a Value to a Base Table BLock Field

    hi,
    I have a form in which a block is a base table block . i need to change the value of a field. currently it shows the value of a field from the Table on which the block is based . I need to change the value of that field to display some other value of another table.
    i have a written select statement like this
    select name into vname from ws_emp where ecode = 101
    then i have assigned to this base table field
    :bt_person.ti_v_name := vname;
    this i have created in the base table blocks Post query
    but it is not assigning value
    pls correct me and suggest me if there is any other better method to do this
    Sarav

    That SHOULD work in the Post-Query trigger of the block, but doing that is never a good idea. By replacing a base-table field with any value, it causes Forms automatic processing to lock the row immediately, so no other person running your form can call up the same data. And it causes Forms to think you need to update the record, so the record's status is changed to 'CHANGED' from 'QUERY'.
    It would be better to create a non-base-table field in the block, and put the name into that field.

  • Assigning Javascript value to ABAP variables

    Hi Experts,
    I have written the HTML code mixed with Javascripts to create a table in the 'View' of a BSP Component.
    I was able to set the value of assign the value of ABAP parameters into HTML fields.
    This table has some input fields. I need to fetch the value of input parameters which has been entered by screen on an event which is present in Overview Page.
    I can calulate the value mentioned in input field but i am not able to assign the same value to ABAP parameter for further processing.
    I have already referred the following link but it did not work.
    Assign Javascript variable to Abap variable
    Please help me how i should i acheive it.
    Thanks In Advance,
    Rajeev Singh

    Hi,
    I am not understanding your problem and what you want due to description, but it seems to be very similar to a post which I answered very recently [here|How to return values from a BSP page to Javascript;.

  • How to assigne multiple value in key of read table

    Hi gurus,
    I want read table xxxx with key field1 = ' xxx' or field1 = 'yyy'.
    how to assign multiple value as key for the same field while reading internal table.
    Regards
    sagar

    Hi ,
    You can loop the internal table like
    loop at  <table xxxx> where field1 = ' xxx' or field1 = 'yyy'
    or you can write two read statements to read the internal table in wrk area.
    read table   <table xxxx> with key field1 = ' xxx'.
    if sy-subrc <>0
    read table   <table xxxx> with key field1 = 'yyy'.
    if sy-subrc = 0
    endif.
    else.
    do your data processing.
    endif.
    Thans.

  • Assign Type conflict with field symbols

    I have two tables tab1 & tab2, want to assign field values from tab1 to tab2 suing field symbols. Deatils are :
    TYPES: BEGIN OF ty_tab1,
        item1   TYPE char20,
        item2   TYPE char20,
        val1 type i,
        val2 type i,
    END OF ty_tab1,
    BEGIN OF ty_tab2,
        item1 TYPE char20,
        item2 TYPE char20,
    END OF ty_tab2.
    DATA: it_tab1 TYPE TABLE OF ty_tab1,
                it_tab2 TYPE TABLE OF ty_tab2.
      FIELD-SYMBOLS <fs_tab1> TYPE ty_tab1.
                     <fs_tab2t> type ty_tab2.
      LOOP AT it_tab1 assigning <fs_tab1>.
        READ TABLE it_tab2  assigning <fs_tab2> WITH KEY item1 = <fs_tab1>-item1
                                                                                    item2 = <fs_tab1>-item2.
        IF sy-subrc EQ 0.
          ASSIGN COMPONENT 'ITEM1' OF STRUCTURE <fs_tab1> TO <fs_tab2>.
         ASSIGN COMPONENT 'ITEM2' OF STRUCTURE <fs_tab1> TO <fs_tab2>.
        endif.
    endloop.
    Getting error msg
    You attempted to assign a field to a typed field symbol, but the field does not have the required type.         
    whats the reason of error.
    Edited by: Matt on May 27, 2011 8:59 AM - added  tags

    Taken from example dump
    A new value is to be assigned to the field "...", although this field is
    entirely or partly protected against changes.
    The following are protected against changes:
    - Character literals or numeric literals
    - Constants (CONSTANTS)
    - Parameters of the category IMPORTING REFERENCE for functions and
    methods
    - Untyped field symbols not yet assigned a field using ASSIGN
    - TABLES parameters if the actual parameter is protected against changes
    - USING reference parameters and CHANGING parameters for FORMs, if the
    actual parameter is protected against changes and
    - Accesses using field symbols if the field assigned using ASSIGN is
    protected (or partially protected, e.g. key components of an internal
    table with the type SORTED or HASHED TABLE) against changes
    - Accesses using references, if the field bound to the reference is
    protected (or partially protected) against changes
    - External write accesses to READ-ONLY attributes,
    - Content of a shared object area instance accessed using a shared lock
    (ATTACH_FOR_READ).
    You likely fall in one of these cases. Check each and if still unsure please share your code so we can reproduce the error.
    Regards
    Marcin

  • Error in Moving values to field symbols. - CX_SY_CONVERSION_NO_NUMBER

    Hi Friends,
    I have asigned the component 'ICON' to the field symbol . While i am adding the value to the field symbol it is going for Dump.
    Erro Message :
    Unable to interpret "@08\QGreen Light; Go; Okay@ " as a number.
    Error analysis
        An exception occurred that is explained in detail below.
        The exception, which is assigned to class 'CX_SY_CONVERSION_NO_NUMBER', was not
         caught and
        therefore caused a runtime error.
        The reason for the exception is:
        The program attempted to interpret the value "@08\QGreen Light; Go; Okay@ " as
         a number, but
        since the value contravenes the rules for correct number formats,
        this was not possible.
    Code :
      ASSIGN COMPONENT 'ICON' OF STRUCTURE <line> TO <fs_icon>.
      add wa_result-icon to <fs_icon>.
    Please find the information and i waiting for your valuable anwers.
    Thanks,
    Shankara Narayan

    HI,
    What do you mean by adding the value?
    Do you want to move the value of wa_result-icon to the field-symbols <fs_icon>.
    use move statement or use '=' operator.
    ADD will try to do an addition.
    You cannot add character fields. It will surely give a dump.
    Do as follows:-
    Move wa_result-icon to <fs_icon>.
    Regards,
    Ankur Parab

  • Problem with field-symbol values not updating

    H i ,
          I have following piece of code :
    Assigning Dynamic Table to Field Symbol
        ASSIGN ist_dyn_table->* TO <gs_dyn_table>.
    *   Creating Structure for dynamic table
        CREATE DATA gs_dyn_line LIKE LINE OF <gs_dyn_table>.
    *   Creating line type for the Dynamic Values
        ASSIGN gs_dyn_line->* TO <gs_line>.
    *   Populating values in the dynamic table
        LOOP AT ist_pwcl_main INTO wa_pwcl_main.
          ASSIGN COMPONENT gc_fld_werks OF STRUCTURE <gs_line> TO <gs_field>.
       1   IF sy-subrc EQ 0.
       2        <gs_field> = wa_pwcl_main-werks.
       3      ENDIF.
       5  IF <gs_field> IS ASSIGNED.
       6     <gs_field> = wa_pwcl_main-vbeln.
          ENDIF.
      7 IF <gs_field> IS ASSIGNED.
      8  <gs_field> =  wa_pwcl_main-posnr.
          ENDIF.
       IF <gs_field> IS ASSIGNED.
            <gs_field> = wa_pwcl_main-quant.
          ENDIF.
    on debugging  at line 2 <gs_filed> contains the value of werks .
    but at line 6 <gs_field> contains value of vbeln as 0 and at 8 of posnr as 0 .
    What can be the problem ? Other values are getting assigned properly .
    Plz help ...
    Regards .

    Hi,
    Assigning Dynamic Table to Field Symbol
        ASSIGN ist_dyn_table->* TO <gs_dyn_table>.
      Creating Structure for dynamic table
        CREATE DATA gs_dyn_line LIKE LINE OF <gs_dyn_table>.
      Creating line type for the Dynamic Values
        ASSIGN gs_dyn_line->* TO <gs_line>.
      Populating values in the dynamic table
        LOOP AT ist_pwcl_main INTO wa_pwcl_main.
          ASSIGN COMPONENT gc_fld_werks OF STRUCTURE <gs_line> TO <gs_field>.
       1   IF sy-subrc EQ 0.
       2        <gs_field> = wa_pwcl_main-werks.
       3      ENDIF.
       5  IF <gs_field> IS ASSIGNED.
       6     <gs_field> = wa_pwcl_main-vbeln.
          ENDIF.
      7 IF <gs_field> IS ASSIGNED.
      8  <gs_field> =  wa_pwcl_main-posnr.
          ENDIF.
       IF <gs_field> IS ASSIGNED.
            <gs_field> = wa_pwcl_main-quant.
          ENDIF.
    Based on your coding above, <gs_field> has been assigned with data type 'WERKS' (i'd assume component gc_fld_werks found from structure <gs_line> is a plant typed), which is a CHAR(4) data type.
    Meaning, if <gs_field> is assigned with Plant type value, e.g. <gs_field> = '1000', field symbol <gs_field> will contain 4 character only.
    At line 6, if wa_pwcl_main-vbeln = '0000201000', <gs_field> is only capturing '0000' only. This is also happened to line 8.
    However, it looks like that <gs_field> is getting over-write if ASSIGNED statement returns SY-SUBRC = 0.
    Hope this helps.
    Regards,
    Patrick

  • Field Symbol not assigned Error SAP R3 46c

    Good day,
    so what i want is:
    assigning a component of a field symbol to another field-symbol to access its values.
    This works very well in SAP 47 releases but doesn t work in sap 46c or do i do something wrong?
    REPORT Z_GL_FIELDSYMBOLS .
    Data:
    begin of mytest,
      int type i,
      int2 type i,
    end of mytest,
    l type string.
    Field-Symbols: <f> type any,
                   <g> type any.
    Start-of-selection.
    assign mytest to <f>.
    l = '<f>-int'.
    assign (l) to <g>.
    <g> = '1'.
    write :/ <g>.
    end-of-selection.
    Is there any way to do what i want to do apart from the statement "CREATE SUBROUTINE POOL"?

    the only problem is:
    i know the components of the structure only at runtime, i.e.
    i don´t know if my field 'int' exists. perhaps its name is 'intsomewhat', you know?
    so i have to do a dynamic assign...
    You have to know,
    in my actual coding i assigned a reference to a data object to the field symbol..
    thus,
    something like
    assign dref->* to <fs>
    was done.
    now i want to access single components of the field symbol.
    the name of the components are known and are stored in a string.
    hmmmm.
    so the string contains something like '-MATNR'.
    if i assign this string to a field-symbol nothing happens
    in my system.
    the same coding works without an error in a 47 system.
    Message was edited by: Gideon Lenz

  • How to check the length of a field symbol value

    hi all,
    i have a problem with string function, i have assined  table fields to  a field symbol in a loop i want check the length of the assigned fields symbol value  in every loop . i have written like ,,,,,len = strlen( <fs>). then i am getting the length of the field label what i ahve assigned to fiels symbol not the field value lenght ,
    please advise me on this,
    thanks,
    sre

    I think you're on the right track.  This should work:
    data: len type i.
    data: begin of itab OCCURS 1,
            a type string value '1',
            b type string value '12',
            c type string value '123',
          end of itab.
    FIELD-SYMBOLS: <fs> type ANY.
    do 3 times.
      assign component sy-index of STRUCTURE itab to <fs>.
      len = strlen( <fs> ).
    enddo.

  • Passing field symbol value to a variable

    Hi All,
    I have a value in Field Symbol declared as   <FS-STATUS> TYPE STANDARD TABLE.
    I want to use the value  <fs-status> -low  in  a case statement.
    For this i think i have to pass the <fs-status> -low  into a variable and then use in case statement.
    Can anyone explain how to pass values in field symbol to variable? Or if this is not possible is there any other solution.
    Thanks in advance.

    Hi ,
    I have give some code sample ; just check ..
    DATA: BEGIN OF line,
             col1(1) TYPE c,
             col2(1) TYPE c VALUE 'X',
           END OF line.
    FIELD-SYMBOLS <fs> LIKE line.
    ASSIGN line TO <fs>.
    MOVE <fs>-col2 TO <fs>-col1.
    WRITE: <fs>-col1, <fs>-col2.
    Or u can check this link :
         http://www.erpgenie.com/abaptips/content/view/401/62/

  • Assigning multiple values from a List of Values at detail (table) level

    Hi,
    I have a master detail entry screen. I want to assign multiple values when end user selects an item from the list. The field is at detail level (Table type). I can do it using the "Select one choice" type component (ADF Faces Core) but it doesnt retain the value when I go to the next record. This type of component works fine with the screen with only one record to show (form type). This component has binding with list type.
    If I use simple list with Table binding, I can not assign values to multiple items. This type of list retains value when record is changed.
    Can anyone help me resolving this issue?
    Thanks,
    CAH

    Post on Jdev forum JDeveloper and OC4J 11g Technology Preview
    --Shiv                                                                                                                                                                               

  • Assigning a value to a field-symbol (workarea of type any)

    Dear forumers,
    I'm having a bit of difficulty in assigning a value to a field-symbol (it should be treated as a workarea of type any), but I'm given a syntax error instead:-
    The data object "<LFS_WORKAREA>" has no structure and therefore no component called "LFMON".
    What could have gone wrong and how may I resolve this (I must have missed something out)? I will still need <LFS_WORKAREA> to be defined as TYPE ANY.
    Please help. I'd appreciate any inputs at all. Thanks.
    *&      Form  FORMAT_POST_PERIOD
    *       Subroutine to format the posting period data
    *      --> PI_MBEW     Material valuation data (internal table)
    FORM format_post_period  CHANGING    pi_mbew TYPE ANY TABLE.
    " Create local field symbols
      FIELD-SYMBOLS:
      <lfs_workarea> TYPE ANY,
      <lfs_lfmon>    TYPE ckmlcr-poper.
    " Create local variables
      DATA: lv_index TYPE sy-tabix.
      DATA: lv_lfmon TYPE ckmlcr-poper.
    " Format posting periods
      LOOP AT pi_mbew ASSIGNING <lfs_workarea>.
        lv_index = sy-tabix.
        ASSIGN COMPONENT 'LFMON' OF STRUCTURE <lfs_workarea> TO <lfs_lfmon>.
        PERFORM convert_lfmon USING    <lfs_lfmon>
                              CHANGING lv_lfmon.
        MOVE lv_lfmon TO <lfs_workarea>-lfmon.   " the syntax error occurs here  :(
        MODIFY pi_mbew FROM <lfs_workarea>
          INDEX lv_index
          TRANSPORTING lfmon.
        CLEAR: <lfs_workarea>,
               <lfs_lfmon>
               lv_lfmon,
               lv_index.
      ENDLOOP.
    ENDFORM.                    " FORMAT_POST_PERIOD

    Most of us aren't in it for the points in any case...
    For your solution you've redundant code:
    *&      Form  FORMAT_POST_PERIOD
    *       Subroutine to format the posting period data
    *      --> PI_MBEW     Material valuation data (internal table)
    FORM format_post_period  CHANGING    pi_mbew TYPE ANY TABLE.
      FIELD-SYMBOLS:
      <lfs_workarea> TYPE ANY,
      <lfs_lfmon>    TYPE ckmlcr-poper.
      DATA: lv_lfmon TYPE ckmlcr-poper.
    *  DATA: lo_workarea TYPE REF TO data.   "<--Not needed, because the LOOP AT ASSIGNING below does the work
    *  CREATE DATA lo_workarea LIKE LINE OF pi_mbew.
    *  ASSIGN lo_workarea->* TO <lfs_workarea>.
      LOOP AT pi_mbew ASSIGNING <lfs_workarea>.
        ASSIGN COMPONENT 'LFMON' OF STRUCTURE <lfs_workarea> TO <lfs_lfmon>.
        PERFORM convert_lfmon USING    <lfs_lfmon>
                              CHANGING lv_lfmon.
        <lfs_lfmon> = lv_lfmon.
        CLEAR lv_lfmon.
      ENDLOOP.
    ENDFORM.                    " FORMAT_POST_PERIOD
    Here's a couple of more efficient solutions, using LOOP AT INTO.
    FORM format_post_period  CHANGING    pi_mbew TYPE INDEX TABLE. " <-- Table type a little more specific
                                                                   "<--now you can use index operations
      FIELD-SYMBOLS:
      <lfs_workarea> TYPE ANY,
      <lfs_lfmon>    TYPE ckmlcr-poper.
      DATA: lv_lfmon TYPE ckmlcr-poper,
            lv_index TYPE sytabix.
      DATA: lo_workarea TYPE REF TO data.
      CREATE DATA lo_workarea LIKE LINE OF pi_mbew.
      ASSIGN lo_workarea->* TO <lfs_workarea>.
    ASSIGN COMPONENT 'LFMON' OF STRUCTURE <lfs_workarea> TO <lfs_lfmon>.
      LOOP AT pi_mbew INTO <lfs_workarea>.
        lv_index = sy-tabix.    
        PERFORM convert_lfmon USING    <lfs_lfmon>
                              CHANGING lv_lfmon.
        <lfs_lfmon> = lv_lfmon.
        MODIFY pi_mbew FROM <lfs_workarea>
           INDEX lv_index. " <--INDEX TABLE, so this is permitted.
        CLEAR lv_lfmon.
      ENDLOOP.
    ENDFORM.                    " FORMAT_POST_PERIOD

Maybe you are looking for

  • TS130 (1105) Driver Error in Installing Acronis Backup of Windows 2003 R2

    I have run into a serires of errors which Lenovo support believes are related to the Intel Management Driver, but we have been unable to locate the appropriate drivers to deal with these error messages.  The errors I have received are as follows: PCI

  • HT5022 Airport Utility 5.6 would not install

    Airport Utility 5.6 would not install on my MacBook Pro with 10.7.5 (Lion): "The installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance."  Hello, Apple?

  • Unable to see photographs wihin the Photos pane in iMovie HD

    Hello, I've recently upgraded my G4 17-inch Powerbook from i-life4 to i-life5. I'm currently have OS X 10.3.9 The problem I have is that I can't see any photographs in the iMovie Photos pane (v5.0.2). There is a message in the pane saying "Launch iPh

  • I need help with a Server Error

    Server Error in '/' Application. Runtime Error Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reas

  • You have an error in your SQL syntax;

    i have a checkout page that i am trying to send to a payment centre but and getting the following error You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '16)' at lin