Field symbol read problem

hi masters,
i have a statement like this.
MODIFY (p_table) FROM TABLE <ntab>.
now i have values in <NTAB> so how can i read this can anyone tel me pls?
thank you,
pasala.

Hi pasalabasker,
this code will help you.
FIELD-SYMBOLS <lt_any> TYPE ANY TABLE.
FIELD-SYMBOLS <ls_any> TYPE ANY.
DATA:
  lr_data TYPE REF TO data,
  ls_mara TYPE mara,
  lt_mara TYPE STANDARD TABLE OF mara.
SELECT *
  FROM mara
  INTO TABLE lt_mara
  UP TO 10 ROWS.
ASSIGN ('LT_MARA') TO <lt_any>.
CREATE DATA lr_data LIKE LINE OF <lt_any>.
ASSIGN lr_data->* TO <ls_any>.
LOOP AT <lt_any> ASSIGNING <ls_any>.
  MOVE-CORRESPONDING <ls_any> TO ls_mara.
  WRITE: ls_mara-matnr, /.
ENDLOOP.
regards Marcel

Similar Messages

  • Field symbol assign problem

    Hi ,
    Please find below code when I tried in version 4.6 code works correctly . but in 6.0 it gives short dump..
    Here.
      FIELD-SYMBOLS : <fs_table> TYPE ANY TABLE.
    FIELD-SYMBOLS : <fs_work_area> TYPE yatsdzz00.
    ASSIGN pr_data_changed->mp_mod_rows->* TO <fs_table>.
    LOOP AT <fs_table> ASSIGNING <fs_work_area>. (In there system gives short dump)
    Thanks in advance.

    Hai,
    Use CASTING or CASTING TYPE (mytype) after LOOP AT <fs_table> ASSIGNING <fs_work_area>.
    ie:
    FIELD-SYMBOLS : <fs_table> TYPE ANY TABLE.
    FIELD-SYMBOLS : <fs_work_area> TYPE yatsdzz00.
    ASSIGN pr_data_changed->mp_mod_rows->* TO <fs_table>.
    LOOP AT <fs_table> ASSIGNING <fs_work_area> <b>CASTING or CASTING TYPE (mytype).</b>
    For more information click the below link:
    http://help.sap.com/saphelp_46c/helpdata/EN/fc/eb35de358411d1829f0000e829fbfe/frameset.htm
    I hope it helps you.
    Reward points if it helps you.
    Regds,
    Rama chary.Pammi

  • Field symbol type problem

    Deal All,
    i am using field symbol here,while trying to assign the character value into field smybol.
    It is generating the error.cannot be converted into number ..so wht should be the type of the field symbol.
    field-symbol : <RATING> TYPE ANY.
       CONCATENATE 'wa_final1-f' V_COUNT INTO V_FIELD.
       CONDENSE V_FIELD.
       ASSIGN (V_FIELD) TO <RATING>.
       WRITE WA_FINAL-RATING1 TO V_PAK .
       <RATING> = V_PAK.     "ERROR GENERATING HERE WHILE ASSIGNING VALUE OF V_PAK         TO      <RATING>
    VALUE OF V_PAK = 'DME' ( I.E CHARACTER FIELD).
    thanks in advance..

    field-symbol : <RATING> TYPE ANY.
    CONCATENATE 'wa_final1-f' V_COUNT INTO V_FIELD.
    CONDENSE V_FIELD.
    ASSIGN (V_FIELD) TO <RATING>.
    WRITE WA_FINAL-RATING1 TO V_PAK .
    UNASSIGN <RATING>.
    ASSIGN V_PAK TO <RATING>.
    Edited by: vijetasap on Jun 4, 2009 7:11 AM

  • Read Data from the dynamic Field Symbol with key ?

    Dear All,
    I've  2 dynamic internal tables in the form of field symbols.
    Now,I want to loop the item field symbol, read the header field symbol content and then move the corresponding into a final field symbol.
    How to read the field symbol with key ?
    When I'm trying to give the key clause in the paranthesis it's giving a syntax error.
    Any clues ?
    FYI .....
    * Get the Dynamic Field and Value for the Date/Year and convert it into Year value
      LOOP AT <fs_t_son> ASSIGNING <wa_son>.
        ASSIGN COMPONENT gwa_znrows_def-fieldname OF STRUCTURE <wa_son> TO <fs_year>.
        IF sy-subrc = 0.
          CLEAR gv_string.
          MOVE <fs_year> TO gv_string.
          CLEAR gv_year.
          gv_year = gv_string.
          <fs_year> = gv_year.
        ELSE.
    * When the Date/year Field is not in the Table then -->
    * Get the Dynamic Field and Value
          ASSIGN COMPONENT gwa_znrows_def-kfldname OF STRUCTURE <wa_rson> TO <fs_value>.
    * Populate field for Dynamic Where condition
          CLEAR gv_value.
          CONCATENATE '''' <fs_value> '''' INTO gv_value.
          CONCATENATE gwa_znrows_def-kfldname '=' gv_value INTO gt_where SEPARATED BY space.
          APPEND gt_where.
          CLEAR gt_where.
          READ TABLE <fs_t_rson> ASSIGNING <wa_rson> ( gt_where ).  "Key clause
        ENDIF.  " if sy-subrc = 0.  "Assign
      ENDLOOP.
    Thanks & regards,
    Deepu.K

    TYPES: BEGIN OF line,
             col1 TYPE c,
             col2 TYPE c,
           END OF line.
    DATA: wa TYPE line,
          itab TYPE HASHED TABLE OF line WITH UNIQUE KEY col1,
          key(4) TYPE c VALUE 'COL1'.
    FIELD-SYMBOLS <fs> TYPE ANY TABLE.
    ASSIGN itab TO <fs>.
    READ TABLE <fs> WITH TABLE KEY (key) = 'X' INTO wa.
    The internal table itab is assigned to the generic field symbol <fs>, after which it is possible to address the table key of the field symbol dynamically. However, the static address
    READ TABLE <fs> WITH TABLE KEY col1 = 'X' INTO wa.
    is not possible syntactically, since the field symbol does not adopt the key of table itab until runtime. In the program, the type specification ANY TABLE only indicates that <fs> is a table. If the type had been ANY (or no type had been specified at all), even the specific internal table statement READ TABLE <fs>  would not have been possible from a syntax point of view.

  • Problem after assigning  field-symbol in read statement...

    Hello Experts,
    I want to use a universal field-symbol in reading my internal tables so
    I can avoid declaring multiple work areas. Here is my code:
    FIELD-SYMBOLS: <fs_any> type any.
    READ TABLE lt_orderadm_h INDEX 1 ASSIGNING <fs_any>.
    Now when I try to insert this code:
    IF NOT <fs_any>-object_id IS INITIAL.
    ENDIF.
    It says that <fs_any> has no structure and therefore no component called object_id.
    I think that I need to use assign component for this but I don't know the code.
    Thank you guys and take care!

    Hi
    DATA : WA_ITORDERADM_H LIKE LINE OF IT_ORDERADM_H.
    **Try to assign the work area rather type any**
    FIELD-SYMBOLS: <fs_any> type WA_ITORDERADM_H.
    READ TABLE lt_orderadm_h INDEX 1 ASSIGNING <fs_any>.
    Now when I try to insert this code:
    IF NOT <fs_any>-object_id IS INITIAL.
    ENDIF.
    Check this program
    This works for me
    Simple program.
    TYPES: BEGIN OF NAME,
    NEXTNAME(10),
    FIRSTNAME(10),
    LASTNAME(10),
    END OF NAME.
    FIELD-SYMBOLS <F> TYPE NAME.
    DATA: LINE(30).
    LINE = 'JOHN SMITH SHRI'.
    ASSIGN LINE TO <F> CASTING.
    WRITE: / 'Lastname:', <F>-LASTNAME,
    'Firstname:', <F>-FIRSTNAME,
    'Nextname :', <F>-NEXTNAME
    Award points if helpful
    Thanks
    VENKI

  • Problem in assigning field symbol to a nested internal table

    Hi All,
    I have searched the forum but could not find a solution to this problem. I have a requirement where I need to define an internal table within an internal table, so I have used pointer within the outer internal table(itab2) which point to the inner table. However, I am facing problem while assigning the pointer.
    data: begin of struct1 occurs 0,
            fld3(10) type C,
           end of struct1.
    data: begin of itab2 occurs 0,
            fld1(10) type C,
            fld2(10) type C,
            p_inner like ref to struct1,
          end of itab2.
    field-symbols <inner_table> type any.
    I want to assign "itab2->p_inner->* " to "<inner_table>".
    However, the following statement is Not working:
    assign itab2->p_inner->* to <inner_table>.
    I want to fill the values within fields fld1, fld2 and fld3 and append it in itab2.
    The final table should be like:
    ITAB2:
    fld1    fld2    fld3
    aa      bb      cc
                     dd
                     ee
    11      22      33
                     44
                     55
    I have tried many other ways too but could not suceed, please help.
    Thanks,
    Vishal.

    Thanks Matt,
    But how do I append the values within this internal table ??
    When I am using the following code:
    ls_wa-fld3 = 'A'.
    ls_wa-t_in-fld1 = 'B'.
    ls_wa-t_in-fld2 = 'C'.
    ls_wa-t_in-fld1 = 'D'.
    ls_wa-t_in-fld2 = 'E'.
    append ls_wa to lt_tab.
    Its giving an error that:
    The data object "LS_WA" does not have a component called "T_IN-FLD1".
    I wanted the values to be appended in the following way in lt_tab:
    fld3     fld1     fld2
    A     B     C
         D     E
    Please help.

  • Problem with field symbols in ecc 6.0

    i have the following  code  written in 4.6 version   now i am executing the old report   in 6.0  but  i am facing with some unicode error.
      FIELD-SYMBOLS:
        <line_of_bs_table> LIKE tbl1024,
       READ TABLE bs_table INDEX row_bst ASSIGNING  <line_of_bs_table> .
        buffer_bsbuffer_ptr(aux) =  <line_of_bs_table> >col_bst.
    tb1024 is standard sap structure  for storing buffer contents
    i have the following error in ecc 6.0
    structure type   '<line_of_bs_table> >+col_bst'  does not start with a charecter type  field in unicode programs in such cases
    offset/ length declarations are not allowed.
    can any one tell how can a field symbol  structure is changed  to charecter  type.

    Hi elinuk,
    you have already posted this thread in the ABAP general forum under problem in field symbols in ecc6.0 and I think that this forum is more related to this issue than the DMS forum. So please close this thread and investigate this issue further in the ABAP general forum.
    Best regards,
    Christoph

  • Problem with field-symbols in UNICODE conversion

    Hi all.
    I'm in a UNICODE conversion project and I have a problem with a program that uses field-symbols.
    DATA: BEGIN OF wa_data_aux,
            mandt LIKE zindices-mandt,
            kschl LIKE zindices-kschl,
            datab LIKE zindices-datab,
            valor LIKE zindices-valor,
            descripcion LIKE zindices-descripcion,
            ernam LIKE zindices-ernam,
            erdat LIKE zindices-erdat,
            waers LIKE zindices-waers,
          END OF wa_data_aux.
    FIELD-SYMBOLS:
                   <fs2>  TYPE ANY,
                   <fs3>  LIKE wa_data_aux.
              <fs2> = <fs3>.
    This assignment results in a DUMP.
    Can anybody help me to solve this problem?
    Thanks!!

    TYPES: BEGIN OF wa_data_aux,
              mandt TYPE mandt,
              kschl TYPE kschl,
              erdat TYPE d,
              waers TYPE waers,
          END OF wa_data_aux.
    DATA: w_aux TYPE wa_data_aux.
    FIELD-SYMBOLS:
    <fs2> TYPE ANY,
    <fs3> TYPE wa_data_aux.
    w_aux-mandt = '300'.
    ASSIGN w_aux TO <fs3>.
    ASSIGN <fs3> TO <fs2>.
    WRITE : / <fs2>.
    GBY.

  • Dynamically table read / write with field symbols

    Hi,
    I like to read dynamically from a table via field symbols. The reading part is working.
    But now I like to do some changes on the entry and then write it to another table with a similar structure.
    I use SAP 4.6c
    There I have two problems:
    1. At the statement I get a dump:
    <l_sysid> = sy-sysid.
    --> Field symbol has not yet been assigned.
    I think that the problem is somewhere around
    assign <table_to> to <wa_to>.
    2. the data change inside the loop. There I like to add the sysid to the target-wa and then copy the source-wa it to the new target-wa to append it to the target table.
    But this does not work. What kind of code do I need? The "move-correspondig" is not correct.
    --> see code around
    loop at <table_from> assigning <wa_from>.
    Below you can find my code. The problem is within the last loop-statement.
    FUNCTION Z_MIG_COPY_TABLE.
    *"*"Lokale Schnittstelle:
    *"  IMPORTING
    *"     REFERENCE(I_TABNAME_FROM) TYPE  TABNAME
    *"     REFERENCE(I_TABNAME_TO) TYPE  TABNAME
    *"     REFERENCE(I_KOMP_TRANS) LIKE  ZS_KOMP_TRANS STRUCTURE
    *"        ZS_KOMP_TRANS OPTIONAL
    *"  TABLES
    *"      I_SELCON STRUCTURE  ZS_SELCON
    *"  EXCEPTIONS
    *"      NOT_FOUND
    *"      OTHERS
    * zeilenweiser Aufbau Tabelle I_SELCON z.B.:
    * bukrs = 3011
    * AND
    * bstyp = 'F'
    * I_KOMP_TRANS
    * dient zur Uebersetzung von alt/neu, z.B. bei LIFNR
    * der angegebene Funktionsbaustein wird genutzt,
    * um den neuen Wert der übergebenen Komponente zu ermitteln
    * Angabe z.B.:
    * LIFNR
      DATA: dref       TYPE REF TO data,
            dref_to    TYPE REF TO data,
            i_alv_cat  TYPE TABLE OF lvc_s_fcat,
            ls_alv_cat LIKE LINE OF i_alv_cat,
            i_alv_cat_to  TYPE TABLE OF lvc_s_fcat,
            ls_alv_cat_to LIKE LINE OF i_alv_cat.
      DATA: BEGIN OF itab OCCURS 0.
    *        INCLUDE STRUCTURE dntab.
              INCLUDE structure DFIES.
      DATA: END OF itab.
      DATA: BEGIN OF itab_to OCCURS 0.
    *        INCLUDE STRUCTURE dntab.
              INCLUDE structure DFIES.
      DATA: END OF itab_to.
      FIELD-SYMBOLS: <table_from>   TYPE ANY TABLE.
      FIELD-SYMBOLS: <table_to>     TYPE Standard TABLE.
      FIELD-SYMBOLS: <wa_from>      TYPE ANY.
      FIELD-SYMBOLS: <wa_to>        TYPE ANY.
      FIELD-SYMBOLS: <l_komp>       TYPE ANY.
      FIELD-SYMBOLS: <l_sysid>      TYPE ANY.
      Data: l_alt type ELIFN.
      Data: l_neu type ELIFN.
      CALL FUNCTION 'DDIF_NAMETAB_GET'
           EXPORTING
                TABNAME   = i_tabname_from
           TABLES
                DFIES_TAB = itab
           EXCEPTIONS
                NOT_FOUND = 1
                OTHERS    = 2.
      IF SY-SUBRC = 1.
        raise not_found.
      elseif sy-subrc = 2.
        raise others.
      ENDIF.
      LOOP AT itab .
        ls_alv_cat-fieldname = itab-fieldname.
        ls_alv_cat-ref_table = i_tabname_from.
        ls_alv_cat-ref_field = itab-fieldname.
        APPEND ls_alv_cat TO i_alv_cat.
      ENDLOOP.
    * build internal table
      CALL METHOD cl_alv_table_create=>create_dynamic_table
          EXPORTING
            it_fieldcatalog = i_alv_cat
          IMPORTING
            ep_table = dref.
      ASSIGN dref->* TO <table_from>.
      CALL FUNCTION 'DDIF_NAMETAB_GET'
           EXPORTING
                TABNAME   = i_tabname_to
           TABLES
                DFIES_TAB = itab_to
           EXCEPTIONS
                NOT_FOUND = 1
                OTHERS    = 2.
      IF SY-SUBRC = 1.
        raise not_found.
      elseif sy-subrc = 2.
        raise others.
      ENDIF.
      LOOP AT itab_to.
        ls_alv_cat_to-fieldname = itab_to-fieldname.
        ls_alv_cat_to-ref_table = i_tabname_to.
        ls_alv_cat_to-ref_field = itab_to-fieldname.
        APPEND ls_alv_cat_to TO i_alv_cat_to.
      ENDLOOP.
    *  break-point.
    * build internal table
      CALL METHOD cl_alv_table_create=>create_dynamic_table
          EXPORTING
            it_fieldcatalog = i_alv_cat_to
          IMPORTING
            ep_table = dref_to.
      ASSIGN dref_to->* TO <table_to>.
    *Select Ursprungstabelle mit Selektionsbedingungen
      SELECT * FROM (i_tabname_from) up to 5 rows
        INTO CORRESPONDING FIELDS OF TABLE <table_from>
        where (i_selcon).
    *  break-point.
    *Aufbau interne Tabelle mit eventuell geänderten Feldern
      assign <table_to> to <wa_to>.
      if not I_KOMP_TRANS is initial.
        loop at <table_from> assigning <wa_from>.
          assign component I_KOMP_TRANS-KOMP
            of structure <wa_from> to <l_komp>.
          CALL FUNCTION I_KOMP_TRANS-FUBA
               EXPORTING
                    I_KOMP = I_KOMP_TRANS-KOMP
                    I_ALT  = <l_komp>
               IMPORTING
                    E_NEU  = <l_komp>.
          break-point.
          assign component 'SYSID' of structure <wa_to> to <l_sysid>.
          <l_sysid> = sy-sysid.
    *      move-corresponding <wa_from> to <wa_to>.
          append <wa_to> to <table_to>.
        endloop.
    *    break-point.
    *Speichern der ausgelesenen Daten in Zieltabelle
        MODIFY (i_tabname_to) FROM TABLE <table_to>.
        if sy-subrc <> 0.
          MESSAGE E001(ZMESSAGES) WITH i_tabname_to.
    *   Fehler beim Modify von Tabelle '&'.
        endif.
      else.
    *Speichern der ausgelesenen Daten in Zieltabelle
        MODIFY (i_tabname_to) FROM TABLE <table_from>.
        if sy-subrc <> 0.
          MESSAGE E001(ZMESSAGES) WITH i_tabname_to.
    *   Fehler beim Modify von Tabelle '&'.
        endif.
      endif.
      commit work.
      if sy-subrc <> 0.
        MESSAGE E002(ZMESSAGES) WITH i_tabname_to.
    *   Fehler beim Commit von Tabelle '&'.
      endif.
    *  break-point.
    ENDFUNCTION.
    Thanks a lot for any hints.
    Regards
    Tom

    Hi,
    Answers below.
    1) For this...you assigning an internal table to a work area...
    assign <table_to> to <wa_to>.
    This should solve the problem..
    * Create the target work area..
    DATA: new_line  TYPE REF TO data.
    CREATE DATA new_line LIKE LINE OF <table_to>.
    ASSIGN new_line->* TO <wa_to>.
    Now the target work area is created..
    2) For the second one...
    ************New code
       FIELD-SYMBOLS: <FS>,<FS1>.
    ************New code End.
       loop at <table_from> assigning <wa_from>.
          assign component I_KOMP_TRANS-KOMP
            of structure <wa_from> to <l_komp>.
          CALL FUNCTION I_KOMP_TRANS-FUBA
               EXPORTING
                    I_KOMP = I_KOMP_TRANS-KOMP
                    I_ALT  = <l_komp>
               IMPORTING
                    E_NEU  = <l_komp>.
          break-point.
          assign component 'SYSID' of structure <wa_to> to <l_sysid>.
          <l_sysid> = sy-sysid.
    ************New code
          LOOP AT itab .
             ASSIGN COMPONENT itab-fieldname of structure <WA_FROM> TO <FS>.
             CHECK SY-SUBRC = 0.
             ASSIGN COMPONENT itab-fieldname of structure <WA_TO> TO <FS1>.
             CHECK SY-SUBRC = 0.
    * Move from source to target.
             <FS1> = <FS>.
          ENDLOOP.
    ************New code End
          append <wa_to> to <table_to>.
        endloop.
    Thanks
    Naren

  • Problem with populating internal with field-symbol

    hi all,
          I have following structure of internal table .
    internal Table 1(int1) : source,source_field, and other fields.
    internal Table 2 (int2): x1,x2,x3,x4,x5,x6 .
    Read table 1 assigning <gs_t1> with....
    assign ( <gs_t1>-source_field ) to <ld_char> .
    case <gs_t1>-source.
    when 'int1'.
         Read int1 assgining <gs_int1> .
          ASSIGN COMPONENT <ld_char> OF STRUCTURE <gs_int1>
          TO <fs_char>.
    wa_output-x1  = <fs_char>.
    simillarly,
      ASSIGN COMPONENT <ld_char> OF STRUCTURE <gs_int1>
          TO <fs_char>.
    wa_output-x2  = <fs_char>.
    The source_field of int1 contains any value either it can be x2,x3,x4 .
    Now the problem is how my work wa_output should know that <fs_char> contains value of field x1 .
    I mean to say how  we willl determine that value to be passed is to  wa_output-x1 or  wa_output-x2  as <ld_char> is just a pointer we cannot determine anything .
    so how should i make my workarea . It can be made as a fields-symbol but how to that .
    As it is having a strucutre of like :
    componenet       component_type
    CONTROLLER     PRXCTRLTAB<-this is also a line type having value two fields
    x1                        char5
    x2                        char5
    Plz help...

    Hi all,
    i have to pass all field values after obtaining them to a workarea wa_output .
    data : wa_output type xyz.
    READ TABLE ist_smp_tst ASSIGNING <gs_smp_tst>
                          WITH KEY iden_no =
                         <gs_smp_tst_dtl>-iden_no
                          BINARY SEARCH.
            ASSIGN COMPONENT <ld_char_val> OF STRUCTURE
            <gs_smp_tst_lab> TO  <fs_char>.
            CONCATENATE 'WA_OUTPUT-' <fs_char> INTO l_field.
            ASSIGN (l_field) TO <wa_field>.
            <wa_field> = <fs_char>.
       read table ist_temp .........
    <wa_field> = <fs_char>.
    I have done this but <wa_field> actually holds the current data of <fs_char>
    it should be like
    wa_ouput-f1 = <fs_char>..
                              wa_output-f2 = <fs_char>.
         and the appending it to wa_output to i_output .
    How we can do this using field-symbol.
    Plz required help.
    Regards.

  • Read Dynamic Field Symbol

    Hello ,
    I have a field symbol where i am not aware of fields (Column Name) , i mean column names are Dynamic.
    Problem is i need to read this field symbol value , how can i do it . It will always have 1 record
    Example
    Field Symbol looks something like this
    <FS> Column Name dynamic -
    >
    A B C
    Record
    1 2 3
    So now i have to refer to Second Column (i.e. is B in this case) , how should i do
    What i tried .
    1. <FS>-(Column Name in variable in brackets) - It doesnt work , Error Message unable to interpret the number B
    2. <FS>[1] - Error out.

    For a structured data object <s>, you can use the statement
    <b>
    ASSIGN COMPONENT <comp> OF STRUCTURE <s> TO <FS>.
    </b>
    to assign one of its components <comp> to the field symbol <FS>. You can specify the
    component <comp> either as a literal or a variable. If <comp> is of type C or a structure which
    has no internal tables as components, it specifies the name of the component. If <comp> has any
    other elementary data type, it is converted to type I and specifies the number of the component.
    In the assignment is successful, SY-SUBRC is set to 0. Otherwise, it returns 4.

  • Read line + field symbol

    Hi expets.
    I have some doubt related to Read Line, iknow it's use but it fails when i m using field symbol.
    1->
    Do w_lines times.
    Read line sy-index field value <fs_customer>-name1.
    enddo
    Here it makes dump because i m using fied symbol. Its type is correct .
    But when i use int. table or structure it's wrks fine
    2-> when i try to hide a field sybmol it shows dump. what can i do?
      actually in a loop i_customer assigning <fs_customer>
      write: /<fs_customer>-name1..etc...
    hide : <fs_customer>-kunnr.
    here it makes dump when i hide
    3-> Problem is-
    I have two reports on same screen.1 for Customer and another for Vendor.
    both have check boxes.
    I want to read them from Screen output and for Customer name i have to get the Customer no. for the selected check box.
    Same is with the venodr report n same screen.
    wen slect Vendor name check box get vendor no.
    My issue is that how i should read two reports on same screen for check boxes.
    I mean i will make a DO ...ENDDO . and on it i will read for sy-line-1 times.
    then hw i will separate that whetehr this read is for Customer or Vendor.
    Do i need to set  some flag and then hide that flag.
    and supoose if Flag eq C at read then its custoer and as it will be V then its Vendor,
    All teh Vendor report is Below thw Customer.
    Please tell me the advantage of Field symbol over heaer lines of table./
    thanks in Advance.

    Loop to get the unselected checkbox
      DO l_line_lockbx TIMES.
      Read the lines on Screen -for LOCK BOX
        READ LINE sy-index FIELD VALUE g_check
                                                         <fs_lockbx>-name1 .
        IF  sy-subrc EQ 0 .
      If Check Box is not selected-Store in a separate table
        if g_check eq c_x.
        clear l_name_lockbx.
        move <fs_lockbx>-name1 to l_name_lockbx.
      Read table to get the Detail when ceck box not selected
        read table i_lockbx with key name1 = l_name_lockbx
                                    binary search
                                    assigning <fs_lockbx>.
          IF  sy-subrc EQ 0.
          MOVE : <fs_lockbx>-serial     TO <fs_rcvlad>-serial ,
                       <fs_lockbx>-rcvlad    TO <fs_rcvlad>-rcvlad ,
                       <fs_lockbx>-docnum TO <fs_rcvlad>-docnum .
          APPEND <fs_rcvlad> TO i_rcvlad.
          CLEAR :<fs_rcvlad>  ,
                       <fs_lockbx> ,
                         g_check     .
         endif.            " IF  sy-subrc EQ 0
        ENDIF.             " if g_check ne c_x.
      ENDDO.               " DO l_line_lockbx TIMES.

  • Problem  FIELD-SYMBOL with HASHED TABLE

    Hello gurus,
    I have a problem with the following code. It is called in method MB_DOCUMENT_BEFORE_UPDATE of badi MB_DOCUMENT_BADI. I need to read the serial numbers of all items. I tried to do it with a field symbol. The information I need is stored in the hased table (SAPLMIGO)LCL_MIGO_GLOBALS=>KERNEL->PT_GOSERIAL_KERNEL. The systems returns sy-subrc = 4 after the assign. Can anyone help me? Thanks!
    TYPES: BEGIN OF ty_s_goserial,
              selected TYPE xfeld,
              serialno TYPE    gernr,
            END OF ty_s_goserial,
            ty_t_goserial  TYPE STANDARD TABLE OF ty_s_goserial WITH
                                                     NON-UNIQUE DEFAULT KEY.
      TYPES: BEGIN OF ty_s_goserial_kernel,
                global_counter TYPE migo_global_counter,
                t_goserial TYPE ty_t_goserial,
            END OF ty_s_goserial_kernel.
    types: tyt_goserial TYPE HASHED   TABLE OF ty_s_goserial_kernel
                                     WITH UNIQUE KEY global_counter.
        fs_l_serialno = '(SAPLMIGO)LCL_MIGO_GLOBALS=>KERNEL->PT_GOSERIAL_KERNEL'.
        FIELD-SYMBOLS: <fs_serialno> type tyt_goserial.
        ASSIGN (fs_l_serialno) TO <fs_serialno>.
        IF sy-subrc = 4.
          WRITE: / 'Ouch...'.
        ENDIF.

    Hi,
    Try adding body operator..at the end as it is an internal table..
    (SAPLMIGO)LCL_MIGO_GLOBALS=>KERNEL->PT_GOSERIAL_KERNEL[]'.
    Thanks
    Naren

  • Problem related to field-Symbol?

    HI All,
    I am writting the below coding, Please tell me whether the Field Symbol will act as a table or not as I want to append a lot of data to field symbol. Please tell me is there any problem in the code.
    LOOP AT lt_vepoequi_keys into ls_vepoequi_keys.
            READ TABLE lt_vekp ASSIGNING <ls_vekp_str> with key
              matnr = ls_vepoequi_keys-matnr.
            IF sy-subrc = 0.
              <ls_vekp_str>-stoff = ls_vepoequi_keys-stoff.
              <ls_vekp_str>-sonum = ls_vepoequi_keys-sonum.
              <ls_vekp_str>-lagkl = ls_vepoequi_keys-lagkl.
              <ls_vekp_str>-lagkt = ls_vepoequi_keys-lagkt.
    endif.
    endloop.

    Hi Abhinav,
    you have internal table (say it_employee) with fields name,age,senior_category.
    now when you loop this internal table you will need workarea.
    loop at it_employee into wa_employee.
                      if wa_employee-age > 60.
                            wa_employee-senior_category = 'YES'.
                      else.
                              wa_employee-senior_category = 'NO'.
                      endif.
                              modify it_employee from wa_employee. 
                     endloop.
    now one use of Field-symbols is : when internal table is huge and when you loop with workarea and modify internal table each time, it takes time. So if we use Field-symbols performance would increase.
    loop at it_employee assigning into <fs_employee>.
                      if <fs_employee>-age > 60.
                            <fs_employee>-senior_category = 'YES'.
                      else.
                              <fs_employee>-senior_category = 'NO'.
                      endif.
                endloop.
    Now  you see in the above code, i have not used modify statement because when i loop internal table, the field symbol points directly to the memory of internal table.
    So during loop if i assign any value to the field symbol then it directly changes the internal table value, so there wont be any need to use modify statement.
    Hope you are clear with this example....
    Regards
    Sajid

  • Field symbols and READ TABLE with system code 4

    Hi,
    I have a hashed table and I am using field symbols to point to it to retrieve the field content. I then use it in the READ TABLE statement in the following way:
    Loop at x_data assign <fs>.
    ASSIGN COMPONENT 'xxx' OF STRUCTURE <fs> TO <c1>.
    ASSIGN COMPONENT 'xxx' OF STRUCTURE <fs> TO <c2>.
    READ TABLE ZZZZ assign <fs> with table key a1 = <c1>
                                               a2 = <c2>.
    If sy-subrc = 0.
    endif.
    I ran the debugger and I keep getting a 4. I am not able to get the value from a1 and a2 to see what it is and why it is causing a 4 sy-subrc. I know the value from the hashed table and the values c1 and c2 are the same, so the sy-subrc should be 0.
    How would I read a hashed table using field symbols? I know that usig a standard table, I have to sort the table on the key fields() before I actually can do the READ TABLE using the binary search.
    Please advise. Thanks
    RT

    Hai Rob
    Go  through the following Code
    Field-Symbols are place holders for existing fields.
    A Field-Symbol does not physically reserve space for a field but points to a field, which is not known until run time of the program.
    Field-Symbols are like Pointers in Programming language ‘ C ‘.
    Syntax check is not effective.
    Syntax :
    Data : v1(4) value ‘abcd’.
    Field-symbols <fs>.
    Assign v1 to <fs>.
    Write:/ <fs>.
    DATA: BEGIN OF LINE,
    COL1 TYPE I,
    COL2 TYPE I,
    END OF LINE.
    DATA ITAB LIKE SORTED TABLE OF LINE WITH UNIQUE KEY COL1.
    FIELD-SYMBOLS <FS> LIKE LINE OF ITAB.
    DO 4 TIMES.
    LINE-COL1 = SY-INDEX.
    LINE-COL2 = SY-INDEX ** 2.
    APPEND LINE TO ITAB.
    ENDDO.
    READ TABLE ITAB WITH TABLE KEY COL1 = 2 ASSIGNING <FS>.
    <FS>-COL2 = 100.
    READ TABLE ITAB WITH TABLE KEY COL1 = 3 ASSIGNING <FS>.
    DELETE ITAB INDEX 3.
    IF <FS> IS ASSIGNED.
    WRITE '<FS> is assigned!'.
    ENDIF.
    LOOP AT ITAB ASSIGNING <FS>.
    WRITE: / <FS>-COL1, <FS>-COL2.
    ENDLOOP.
    The output is:
    1 1
    2 100
    4 16
    Thanks & regards
    Sreenivasulu P

Maybe you are looking for