Class to find the components of a field-symbol

Hi,
Can anyone tell any class/function module to get the components of a field-symbol which is like an internal table.
Thanks.

Hi,
I assume your field symbol is generic, it means was declared like
field-symbols: <fs_tab> type any table.
Later you assined some intrernal table to it and now you want to get components of structure of that table, right?
You can use RTTS for this:
"first create work area for that table
data: wa_table type ref to data.
field-symbols: <fs_wa> type any.
create data wa_table like line of <fs_tab>.
assign wa_table->* to <fs_wa>.  "<fs_wa> now work like work area for table <fs_tab>
"now you get the components via RTTS classes
type-pools: abap.
data: r_struct type ref to cl_abap_structdescr,
         gt_components type abap_component_tab with header line.
r_struct ?= cl_abap_typedescr=>DESCRIBE_BY_DATA( <fs_wa> ).
gt_components = r_struct->GET_COMPONENTS( ). "here gt_components holds components of that table/structure
Regards
Marcin

Similar Messages

  • HOw to  find the text for PERSK field in infotype 0001

    hi all
    HOw to  find the text for PERSK field in infotype 0001

    Hi
    T503T : contained the similar informative text for PERSK . read this for T503T-PTEXT.
    ..lakhan

  • How to find the Ranges for a field ?

    Hello All,
               Can anyone tell me how to find the ranges for a field.
    <b>1</b>, i.e say I want the Ranges Structure for the field LIFNR.
        The ranges structure for this is "<b>RANGE_LIFNR</b>".
        This I used in my Program since I know it previously.
        But now I want the ranges structure for the field <b>VBELN (Delivery Document).</b>
        I  don't know what is it !!!!!
    <b>2</b>, Is there any procedure to know the ranges structure for a particular field ?
    Regards,
    Deepu.K

    Hi Deepu,
    Using 'Where used list' you can able to find out RANGES tables.
    For VEBLN range table is --> CRM_AC_ASSIGN_VBELN
    If you using a program defined as shown below.
    DATA: r_vbeln type ranges of vbeln.
    The above statement also creates ranges structure in Runtime.
    Procedure finding range table structures
    go to SE37 -> Enter domain or dataelement value
    Go to where used list --> search for 'Structures'
    After getting all structure  --> Click 'SEARCH' butoon in tool bar --> Search for 'RANGES' word
    You can get all ranges tables in the search window
    If helps plz reward points.
    Regards
    Bhupal Reddy

  • Number of components in a field symbol

    I have a field symbol but i don't know the number of components. How i can know it?
    I need copy the data from field symbol to another field symbol with same struct and another more fields.
    Ex:
    <f1> is filled
    <f2> some components are filled (x,y,z) And we need to fill the others components (we don't know how many) with the f1 components (same number but we don't know either)
    In other words:
    <f1> (a,b,c)
    <f2> (x,y,z,a,b,c) We don't know if we have a,b,c or a,b or a,b,c,d,e.....
    Thx in advance

    Hi
    see the doc
    Field Symbols
    Field symbols are placeholders or symbolic names for other fields. They do not physically reserve space for a field, but point to its contents. A field symbol cam point to any data object. The data object to which a field symbol points is assigned to it after it has been declared in the program.
    Whenever you address a field symbol in a program, you are addressing the field that is assigned to the field symbol. After successful assignment, there is no difference in ABAP whether you reference the field symbol or the field itself. You must assign a field to each field symbol before you can address the latter in programs.
    Field symbols are similar to dereferenced pointers in C (that is, pointers to which the content operator * is applied). However, the only real equivalent of pointers in ABAP, that is, variables that contain a memory address (reference) and that can be used without the contents operator, are reference variables in ABAP Objects.
    All operations programmed with field symbols are applied to the field assigned to it. For example, a MOVE statement between two field symbols moves the contents of the field assigned to the first field symbol to the field assigned to the second field symbol. The field symbols themselves point to the same fields after the MOVE statement as they did before.
    You can create field symbols either without or with type specifications. If you do not specify a type, the field symbol inherits all of the technical attributes of the field assigned to it. If you do specify a type, the system checks the compatibility of the field symbol and the field you are assigning to it during the ASSIGN statement.
    Field symbols provide greater flexibility when you address data objects:
    If you want to process sections of fields, you can specify the offset and length of the field dynamically.
    You can assign one field symbol to another, which allows you to address parts of fields.
    Assignments to field symbols may extend beyond field boundaries. This allows you to address regular sequences of fields in memory efficiently.
    You can also force a field symbol to take different technical attributes from those of the field assigned to it.
    The flexibility of field symbols provides elegant solutions to certain problems. On the other hand, it does mean that errors can easily occur. Since fields are not assigned to field symbols until runtime, the effectiveness of syntax and security checks is very limited for operations involving field symbols. This can lead to runtime errors or incorrect data assignments.
    While runtime errors indicate an obvious problem, incorrect data assignments are dangerous because they can be very difficult to detect. For this reason, you should only use field symbols if you cannot achieve the same result using other ABAP statements.
    For example, you may want to process part of a string where the offset and length depend on the contents of the field. You could use field symbols in this case. However, since the MOVE statement also supports variable offset and length specifications, you should use it instead. The MOVE statement (with your own auxiliary variables if required) is much safer than using field symbols, since it cannot address memory beyond the boundary of a field. However, field symbols may improve performance in some cases.
    check the below links u will get the answers for your questions
    http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3860358411d1829f0000e829fbfe/content.htm
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/field_sy.htm
    http://searchsap.techtarget.com/tip/1,289483,sid21_gci920484,00.html
    Syntax Diagram
    FIELD-SYMBOLS
    Basic form
    FIELD-SYMBOLS <fs>.
    Extras:
    1. ... TYPE type
    2. ... TYPE REF TO cif
    3. ... TYPE REF TO DATA
    4. ... TYPE LINE OF type
    5. ... LIKE s
    6. ... LIKE LINE OF s
    7. ... TYPE tabkind
    8. ... STRUCTURE s DEFAULT wa
    The syntax check performed in an ABAP Objects context is stricter than in other ABAP areas. See Cannot Use Untyped Field Symbols ad Cannot Use Field Symbols as Components of Classes.
    Effect
    This statement declares a symbolic field called <fs>. At runtime, you can assign a concrete field to the field symbol using ASSIGN. All operations performed with the field symbol then directly affect the field assigned to it.
    You can only use one of the additions.
    Example
    Output aircraft type from the table SFLIGHT using a field symbol:
    FIELD-SYMBOLS <PT> TYPE ANY.
    DATA SFLIGHT_WA TYPE SFLIGHT.
    ASSIGN SFLIGHT_WA-PLANETYPE TO <PT>.
    WRITE <PT>.
    Addition 1
    ... TYPE type
    Addition 2
    ... TYPE REF TO cif
    Addition 3
    ... TYPE REF TO DATA
    Addition 4
    ... TYPE LINE OF type
    Addition 5
    ... LIKE s
    Addition 6
    ... LIKE LINE OF s
    Addition 7
    ... TYPE tabkind
    Effect
    You can define the type of the field symbol using additions 2 to 7 (just as you can for FORM parameters (compare Defining the Type of Subroutine Parameters). When you use the ASSIGN statement, the system carries out the same type checks as for USING parameters of FORMs.
    This addition is not allowed in an ABAP Objects context. See Cannot Use Obsolete Casting for FIELD SYMBOLS.
    In some cases, the syntax rules that apply to Unicode programs are different than those for non-Unicode programs. See Defining Types Using STRUCTURE.
    Effect
    Assigns any (internal) field string or structure to the field symbol from the ABAP Dictionary (s). All fields of the structure can be addressed by name: <fs>-fieldname. The structured field symbol points initially to the work area wa specified after DEFAULT.
    The work area wa must be at least as long as the structure s. If s contains fields of the type I or F, wa should have the structure s or at least begin in that way, since otherwise alignment problems may occur.
    Example
    Address components of the flight bookings table SBOOK using a field symbol:
    DATA SBOOK_WA LIKE SBOOK.
    FIELD-SYMBOLS <SB> STRUCTURE SBOOK
    DEFAULT SBOOK_WA.
    WRITE: <SB>-BOOKID, <SB>-FLDATE.
    Related
    ASSIGN, DATA
    Additional help
    Declaring Field Symbols
    Reward points for useful Answers
    Regards
    Anji

  • What r the benefit of using field symbols

    hi all
    what is the benefit of using field symbols and when is  recommended to use it?
    regards

    It Just assign the values directly to fieldsymbol and no need to used append.
    It increases the performance of the program.
    also check this
    http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3860358411d1829f0000e829fbfe/frameset.htm
    Reward points if useful
    Regards,
    Vimal

  • How can i write the bellow code using field symbols

    data : it_mara type table of mara.
    select * from mara
                into it_mara.
    delete it_mara where matnr = '100-100'
                             and meins = 'KG'.
    if i do the same by using field symbols
    i am getting data into <it_mara>
    but
    delete <it_mara>  where matnr = '100-100'
                               and    meins = 'KG'.
    is showing syntax error
    how to correct the error ?

    I think, DELETE does not allows to dynamically define the logical expression for the WHERE clausule.
    Have you tried by filtering data in SELECT statement??
    Something like:
    if dataBase = 'MARA'.
    append 'MATNR <> '100-100'' to Itab_Where[].
    append 'AND MEINS <> 'KG'' to Itab_Where[].
    endIf.
    select * from (dataBase) where (Itab_Where) into table <my_table>.
    this is possible, but I don't know if this fits your requirements.

  • How can i find the tablename for that  field and suggest the report logic

    Hi experts
    The concept of BOM for finished components are defined in terms of semi finished goods. Hence, routing of a component from raw materials can not be seen directly in system through standard report.
    But users need to have the details of a routing of a component from raw material in one report. To provide the details in single report, development is required.
    With this report users can see the routing from raw material till component in one single report.
    Assumption
    BOM is maintained for a component with all related semi finished components till raw material properly.
    Material Number:  MARA – MATNR   - Multiple selection option should be there (Mandatory)
    Plant: AFRU – WERKS      - Single selection parameter (Mandatory)
    If procurement type is E or X, system has to check the routing through CA03.
    If procurement type if F, leave this field as blank
    1.operator
    2.material
    3.material description
    4.workcenter
    5.vendor
    6.operation description
    7.uom
    8.qty
    9.uom
    10.setuptime
    11.processingtime
    12.deliverytime
    using cs12,cs13
      here i have seen the details of finished goods components like semifinished goods,rawmaterils,i tried se11 to find the the table for relevent field,
    i cant get, if possible to suggest me the logic and how to find the relevent table for
    that field
    Regards
    ds

    for exploding the bom if you know header material use
      CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
        EXPORTING
          CAPID                 = 'PP01'
          DATUV                 = SY-DATUM
          MEHRS                 = 'X'
          MTNRV                 = P_MATNR
          WERKS                 = P_WERKS
        TABLES
          STB                   = I_BOM
        EXCEPTIONS
          ALT_NOT_FOUND         = 1
          CALL_INVALID          = 2
          MATERIAL_NOT_FOUND    = 3
          MISSING_AUTHORIZATION = 4
          NO_BOM_FOUND          = 5
          NO_PLANT_DATA         = 6
          NO_SUITABLE_BOM_FOUND = 7
          CONVERSION_ERROR      = 8
          OTHERS                = 9.
    now check PLPO & PLKO table for routing or AFVC and AFVV for routing.
    if production order created you have to check in afvc and afvv else check in plpo and plko.
    for checking with plpo and plko you have to check MAPL table.
    for bom and material link
    MAST,STPO,STKO.
    stlnr is the common field
    regards
    shiba dutta

  • FM/Class to find the class and characterstics for a given material

    Hi All,
    Is there any Class/FM to find the class and characterstics for a given material.I tried some BAPI_OBJCL* BAPI's but lot of the BAPI's need classnum as input parameter. But i need a BAPI or tables or class which can give the class and its characterstic values for a given material.

    Hi Ben
             Try ..
    BAPI_OBJCL_GETCLASSES
    BAPI_OBJCL_CREATE

  • How to find the size of a field

    Can somebody tell how to find the sie of a varchar2 field?
    Thanks.

    SQL> desc global_name
    Name Null? Type
    GLOBAL_NAME VARCHAR2(4000)
    SQL> select global_name from global_name;
    GLOBAL_NAME
    ITFD.XXXXX.CO.XX
    1* select vsize(global_name) from global_name
    SQL> /
    VSIZE(GLOBAL_NAME)
    16

  • How to find the difference of 2 fields in template?

    Hi,
    I am building an rtf template, I have two fields in the template which come from XML extract.
    I need to add one more column to the template which is the differecnce of the 2 columns (column1-column2).
    I don't have this column in the XML extract, I need to calculate this in the template.
    I am quiet new to using XML Publisher.
    Could somebody please tell me, how can I achieve this?
    Thanks in Advance,
    Thiru

    Hi,
    I am able to find the difference by <?(column1tag)-(column2tag)?>.
    But now I want to have the sum of this field at different levels
    <?sum((column1tag)-(column2tag))?> is not working giving some error.
    Could somebody please help me out, how can I achieve sum for this?
    Thanks in Advance,
    Thiru

  • How do i find the total number of fields within all tables in one of my databases

    I'm in the process of creating some "gee whiz" metrics for one of my applications and want to find the total number of columns contained in its database.  Is there a stored procedure to get this information that would save me the effort
    of opening each of my 66 tables and counting the columns?  I also have the same question for my 138 views.  Thank you for any ideas you care to offer...............Phil Hoop
    Phil Hoop

    Hi Phil,
    Assumes SQL 2005 or higher
    Let 's try simple one ....
    SELECT COUNT(col.column_name), col.table_name
    FROM information_schema.columns col
    JOIN information_schema.tables tbl
    ON tbl.table_name = col.table_name
    AND tbl.table_schema = col.table_schema
    AND tbl.table_catalog = col.table_catalog
    AND tbl.table_type = 'VIEW'
    GROUP BY col.table_name
    Let me know if this will help you.
    If you think my suggestion is useful, please rate it as helpful.
    If it has helped you to resolve the problem, please Mark it as Answer.
    Varinder Sandhu www.varindersandhu.in

  • HT3775 I have an older white MacBook , I am running Tiger OSX 10.6.8. I want to see an AVI file but I get errors saying that I need some component of Quicktime. Could you tell me how can I go about  finding the components that I need or ways to open AVI f

    I have some videos from youtube to be used in the classroom. I downloaded them from my pc but I cannot see them in the mac because I get messages saying that I need some quicktime components. Is there any way of seiing AVI files? Or do you know the components I need?
    Thanks
    ELena

    This little thing will open your .avi files. It's free, and you do not need Quick Time.
    http://www.videolan.org/vlc/index.html

  • Determining the type of a field-symbol

    Hi!
    I want to create a logical expression that determines the type of field-symbol that was passed in to a function.
    i want to do something like this:
    IF imported_fieldsymbol IS OF TYPE some_type
    ENDIF
    how do you create such an expression in ABAP?
    regards

    Hi,
      You can use the RTTS - Run Time Type Service.
      Try the sample code
    TYPES my_type TYPE i.
    DATA: my_data   TYPE my_type,
          descr_ref TYPE ref to cl_abap_typedescr.
    START-OF-SELECTION.
      descr_ref = cl_abap_typedescr=>describe_by_data( my_data ).
    The hierarchy of RTTS classes are as follows,
    CL_ABAP_TYPEDESCR
      |
      |--CL_ABAP_DATADESCR
      |   |
      |   |-- CL_ABAP_ELEMDESCR
      |   |--CL_ABAP_REFDESCR
      |   |--CL_ABAP_COMPLEXDESCR
      |       |
      |       |--CL_ABAP_STRUCTDESCR
      |       |--CL_ABAP_TABLEDESCR
      |
      |--CL_ABAP_OBJECTDESCR
         |
         |--CL_ABAP_CLASSDESCR
         |--CL_ABAP_INTFDESCR
    Regards,
    Mustajab

  • How to copy the structure of a Field Symbol?

    Hi,
              I have a requirement where in a dynamic Internal table is supposed to be created. I have created that dynamic table using the class method cl_alv_table_create=>create_dynamic_table. Here I have a structure in the field symbol. My requirement is how do I create a internal table with the structure that is there in the field symbol?...
    and i'm unable to refer to the field that is dynamically created in the field symbol.
    Like,
    <gfs_tab>-pernr = itab-pernr.
    in the above stmt the field pernr is created in the field symbol dynamically.
    Thanks,
    Deepak.

    Hi Matt,
                my objective is to create an internal table with structure that i have obtained in <gfs_tab> .
    other than the pernr, there are many fields dynamically generated.
    say if I have generated the following structure in <gfs_tab> :
    pernr            ename1            day1             day2                 day3
    then I want to create an internal table with the above structure so that my internal table will have fields:
    1) pernr
    2) ename1
    3) day1
    4) day2
    5) day3
    for each execution of the report there will be different structure generated in <gfs_tab> depending upon the inputs that I give.
    Thanks,
    Deepak.

  • How to update the value inside a field symbol ?

    ASSIGN COMPONENT 'MENGE' OF STRUCTURE <fs_line> TO <fs_field>.
    <fs_field> = itab_stpo-menge.
    COLLECT <fs_line> INTO <fs_table>.
    .processing some code......
    ASSIGN COMPONENT 'MENGE' OF STRUCTURE <fs_line> TO  <fs_field>.
    <fs_field> = ( itab_stpo-menge * itab_plpo-vgw03 ).
    COLLECT <fs_line> INTO <fs_table>.
    Hi, guys,
    May i know is there a way to update the value in inside a field symbol?
    I feel hard to figure out the way to solve this situation. Kindly give me some help or perhaos tell me other altenative way to do it also can.
    Thanks in advance.
    Edited by: Jiansi Lim on Apr 25, 2008 8:09 PM

    hi check this...
    For a structured data object s, you can use the statement
    ASSIGN COMPONENT comp OF STRUCTURE s TO FS.
    Here the comp is the component name or its index number in the structure.
    Find the following sample code -
    DATA: BEGIN OF LINE,
    COL1 TYPE I VALUE '11',
    COL2 TYPE I VALUE '22',
    COL3 TYPE I VALUE '33',
    END OF LINE.
    DATA COMP(5) VALUE 'COL3'.
    FIELD-SYMBOLS: <F1>, <F2>, <F3>.
    ASSIGN LINE TO <F1>.
    ASSIGN COMP TO <F2>.
    DO 3 TIMES.
    ASSIGN COMPONENT SY-INDEX OF STRUCTURE <F1> TO <F3>.
    WRITE <F3>.
    ENDDO.
    ASSIGN COMPONENT <F2> OF STRUCTURE <F1> TO <F3>.
    WRITE / <F3>.
    The output is:
    11 22 33
    33
    I need to update one field in Internal table
    regards,
    venkat

Maybe you are looking for

  • Error in Custom generated IDOC message type for XIF

    Hi all, I had generated a custom  message type under interface function module crmxif_partner_save for enhanced fields. While generating from BDFG it popups inconsistency sap notes which is already in crm 2007. so i just ignaore them. idocs are gener

  • Setting listener password in oracle 8i

    i have some very old windows databases that are 8.1.0.7. I am not able to upgrade these. I am trying to set a password. 1. go to command line 2. lsnrctl 3. set password <password> LSNRCTL> set password l1stener1$ The command completed successfully LS

  • Error in client: domain was null

    I'm getting the following exception now that I've deployed one of the applications on another OC4J instance on a separate machine. I can connect fine and get the expected response when running out of my Intellij IDE or command line. Problem is I get

  • N95 with more ca[acity memory cards?

    Iam a user of N95-1 which after the new firmware V.20 is better but still has some bugs in the keypad sometimes, but with a good general performance including battery life. I need more space, all of us who experience the satisfaction of having comple

  • FXTRANS

    When I am trying to run the Currency Conversion I am getting the following error. I maintained the dimension as GLOBAL as the rate entity in the Rate Model. "RUN_LOGIC: Rate entity not found in application Consolidation model: Consolidation. Package