Occurs 0 Versus Type standard table of

Is there a distinct advantage of using "TYPE STANDARD TABLE OF" instead of "OCCURS 0" to declare table. Other than the code being more systematic with type. Is there any difference in terms of advantage.
Is there any advantage other way round?
Will award points for the right answer, thanks for reading

Declaring an internal table with OCCURS 0 is not advisable now a days because it does not work in object oriented abap like BADIs.
Instead, we need to create a work area like line of internal table.
    TYPES: BEGIN OF ty_itab,
           category_id TYPE comt_category_id,
           category_text TYPE comt_category_text,
           hierarchy_guid TYPE comt_hierarchy_guid,
           non_assignable TYPE comt_non_assignable_category,
         END OF ty_itab,
         ty_t_itab TYPE TABLE OF ty_itab.
  DATA: lt_itab TYPE ty_t_itab WITH HEADER LINE.
OR
DATA: lt_itab TYPE STANDARD TABLE OF ty_t_itab,
      wa_itab like line of lt_itab.
Thanks,
SKJ

Similar Messages

  • How to create a Attribute "Type standard table OF" to a OSS NOTE

    Dear experts,
    I need to add new attributes in a standard class as per one OSS note. I took access key to add new attributes. I have a question.
    class name: CL_J_1BEFD
    Attribute: MT_GROUP_C350
    Level: Instance
    Visibility: Private
    Type STANDARD TABLE OF mty_result
    How do i add the instance attribute because i do not want to give the typing and associated type, instead i have to declare data: MT_GROUP_C350 type standard table of mty_result in class builder private section code.
    if you look at the pushbutton between Associated type and Description, for all instance attributes there's a green color lining below the arrow. I want my attribute also to be exactly same.
    Though i have access key, in private section the display<->Change button is disabled.
    Please suggest me how do i add code in private section of a standard class. i have required access key to change the class.
    Thanks,
    Alysson

    Hi Friend...
    Thanks, but the question is...
    When I went to transaction se24 or se80, I chose the class CL_J_1BEFD and second I swap to "CHANGE MODE".. after that the pushbutton is blocked... I can create the Attribute  mt_group_c800 in the Class (using TYPE or LIKE option), but i can't change the code in the private session even using the assistant to modify it.
    When I acess the Button "Detail View" the option "Direct Type Entry" is just unavaliable too, no matter what i do!
    I coudn't find a way to create the Attibute like the note Describes (SAPNOTE NUMBER 1575772 - in the attachment of the note)
    The changes are contained in the attachment
    Follows the instructions retrieved from the file:
    Add the following Attributes on the Class CL_J_1BEFD Private section
    data:
    mt_group_c800 TYPE STANDARD TABLE OF mty_result .
    data:
    mt_group_c850 TYPE STANDARD TABLE OF mty_result .
    data:
    mt_group_c860 TYPE STANDARD TABLE OF mty_result .
    data:
    mt_group_c890 TYPE STANDARD TABLE OF mty_result .
    How can i make a way to creat this attributes using  "TYPE STANDARD TABLE OF " Option?

  • Declare work area of type = standard table

    Hi All,
    How to declare a workarea of type standard table in ABAP Objects..
    the syntax check of ABAP Objects showing error for the general ABAP Code
    for the same..
    Thanks in Advance, Sudeep..

    Hi Sudeep,
    I had shown the declarations for internal table and work area as well
    if you just want work area
    just use the second statement
    data : is_vbak type vbak. " work area of VBAK
    Regards
    Gopi

  • How to define complex type with table per record?

    Hi,
    for one of my tasks I'm dealing with XML export. After short investigation of the postings in the forum I found an acceptable solution:
    Re: Convert ABAP to XML and Vice versa
    The issue is that I need an XML file like this:
    <plant>
      <material>
        <purchases>data</purchases>
        <purchases>data</purchases>
        <purchases>data</purchases>
        <sales>data</sales>
        <sales>data</sales>
        <sales>data</sales>
      </material>
      <next material>
      </next material>
    </plant>
    So here are the questions:
    1. Is it possible (and how) to define such deep structured type where for each record (means material) there is at least 1 internal table connected to that record? That would let me use a record-2-DOM conversion and a standard DOM-2-XML renderer.
    2. Could anyone please provide a very simple and short example?
    Of course, I could write my own XML renderer and achieve what I need (without using DOM, simply write to file all the desired XML tags while looping at my *nested* tables), but if there is a way to define such a structured type and further to fill it with data, it would help me learn a little bit more about abap opportunities and would save me a bit more time to create a renderer.
    Many thanks in advance.
    Regards,
    Ivaylo Mutafchiev

    Hi,
    You can declare deep structure as below
    TYPES : BEGIN OF ty_address,
              house(10) TYPE c,
              street(10) TYPE c,
            END OF ty_address.
    TYPES : BEGIN OF ty_itab,
             name(10) TYPE c,
             age      TYPE i,
             address  TYPE ty_address OCCURS 0,
            END OF ty_itab.
    DATA : i_address TYPE STANDARD TABLE OF ty_address,
           i_itab    TYPE STANDARD TABLE OF ty_itab.
    DATA : wa_address TYPE  ty_address,
           wa_itab TYPE  ty_itab.
    CLEAR :  wa_address,
             wa_itab.
    wa_address-house = 'House1'.
    wa_address-street = 'Street1'.
    APPEND wa_address TO i_address.
    wa_address-house = 'House2'.
    wa_address-street = 'Street2'.
    APPEND wa_address TO i_address.
    wa_itab-name = 'Test'.
    wa_itab-age  = 10.
    wa_itab-address[] = i_address[].
    APPEND wa_itab TO i_itab.
    Also check structure BSPL_GRID_FIELDCAT field CELL_COLOR

  • Types of tables

    how many types of tables r there? diff?
    diff between at new and on change of?

    Hi,
    Internal Tables as Data Types
    Internal tables and structures are the two structured data types in ABAP. The data type of an internal table is fully specified by its line type, key, and table type.
    Line type
    The line type of an internal table can be any data type. The data type of an internal table is normally a structure. Each component of the structure is a column in the internal table. However, the line type may also be elementary or another internal table.
    Key
    The key identifies table rows. There are two kinds of key for internal tables - the standard key and a user-defined key. You can specify whether the key should be UNIQUE or NON-UNIQUE. Internal tables with a unique key cannot contain duplicate entries. The uniqueness depends on the table access method.
    If a table has a structured line type, its default key consists of all of its non-numerical columns that are not references or themselves internal tables. If a table has an elementary line type, the default key is the entire line. The default key of an internal table whose line type is an internal table, the default key is empty.
    The user-defined key can contain any columns of the internal table that are not references or themselves internal tables. Internal tables with a user-defined key are called key tables. When you define the key, the sequence of the key fields is significant. You should remember this, for example, if you intend to sort the table according to the key.
    Table type
    The table type determines how ABAP will access individual table entries. Internal tables can be divided into three types:
    Standard tables have an internal linear index. From a particular size upwards, the indexes of internal tables are administered as trees. In this case, the index administration overhead increases in logarithmic and not linear relation to the number of lines. The system can access records either by using the table index or the key. The response time for key access is proportional to the number of entries in the table. The key of a standard table is always non-unique. You cannot specify a unique key. This means that standard tables can always be filled very quickly, since the system does not have to check whether there are already existing entries.
    Sorted tables are always saved sorted by the key. They also have an internal index. The system can access records either by using the table index or the key. The response time for key access is logarithmically proportional to the number of table entries, since the system uses a binary search. The key of a sorted table can be either unique or non-unique. When you define the table, you must specify whether the key is to be unique or not. Standard tables and sorted tables are known generically as index tables.
    Hashed tables have no linear index. You can only access a hashed table using its key. The response time is independent of the number of table entries, and is constant, since the system access the table entries using a hash algorithm. The key of a hashed table must be unique. When you define the table, you must specify the key as UNIQUE.
    Generic Internal Tables
    Unlike other local data types in programs, you do not have to specify the data type of an internal table fully. Instead, you can specify a generic construction, that is, the key or key and line type of an internal table data type may remain unspecified. You can use generic internal tables to specify the types of field symbols and the interface parameters of procedures . You cannot use them to declare data objects.
    Internal Tables as Dynamic Data Objects
    Data objects that are defined either with the data type of an internal table, or directly as an internal table, are always fully defined in respect of their line type, key and access method. However, the number of lines is not fixed. Thus internal tables are dynamic data objects, since they can contain any number of lines of a particular type. The only restriction on the number of lines an internal table may contain are the limits of your system installation. The maximum memory that can be occupied by an internal table (including its internal administration) is 2 gigabytes. A more realistic figure is up to 500 megabytes. An additional restriction for hashed tables is that they may not contain more than 2 million entries. The line types of internal tables can be any ABAP data types - elementary, structured, or internal tables. The individual lines of an internal table are called table lines or table entries. Each component of a structured line is called a column in the internal table.
    Choosing a Table Type
    The table type (and particularly the access method) that you will use depends on how the typical internal table operations will be most frequently executed.
    Standard tables
    This is the most appropriate type if you are going to address the individual table entries using the index. Index access is the quickest possible access. You should fill a standard table by appending lines (ABAP APPEND statement), and read, modify and delete entries by specifying the index (INDEX option with the relevant ABAP command). The access time for a standard table increases in a linear relationship with the number of table entries. If you need key access, standard tables are particularly useful if you can fill and process the table in separate steps. For example, you could fill the table by appending entries, and then sort it. If you use the binary search option with key access, the response time is logarithmically proportional to the number of table entries.
    Sorted tables
    This is the most appropriate type if you need a table which is sorted as you fill it. You fill sorted tables using the INSERT statement. Entries are inserted according to the sort sequence defined through the table key. Any illegal entries are recognized as soon as you try to add them to the table. The response time for key access is logarithmically proportional to the number of table entries, since the system always uses a binary search. Sorted tables are particularly useful for partially sequential processing in a LOOP if you specify the beginning of the table key in the WHERE condition.
    Hashed tables
    This is the most appropriate type for any table where the main operation is key access. You cannot access a hashed table using its index. The response time for key access remains constant, regardless of the number of table entries. Like database tables, hashed tables always have a unique key. Hashed tables are useful if you want to construct and use an internal table which resembles a database table or for processing large amounts of data.
    AT NEW and ON CHANGE OF:
    a) When AT NEW occurs,
    the alpha-numeric fields have ******* in their value,
    b) where as in case of ON CHANGE,
    the alpha-numeric fields have their corresponding value,
    of that particular record,
    where the Event gets fired.
    Other differences are :
    ON CHANGE OF can be used any where in the program..
    on change of differs from at new in the following respects:
    1.It can be used in any loop construct, not just loop at. For example, it can be used within select and endselect, do and enddo, or while and endwhile, as well as inside get events.
    2.A single on change of can be triggered by a change within one or more fields named after of and separated by or. These fields can be elementary fields or field strings. If you are within a loop, these fields do not have to belong to the loop.
    3.When used within a loop, a change in a field to the left of the control level does not trigger a control break.
    4.When used within a loop, fields to the right still contain their original values; they are not changed to contain zeros or asterisks.
    5.You can use else between on change of and endon.
    6.You can use it with loop at it where . . ..
    7.You can use sum with on change of. It sums all numeric fields except the one(s) named after of.
    8.Any values changed within on change of remain changed after endon. The contents of the header line are not restored as they are for at and endat.
    while
    AT NEW can be used only within a loop of an INTERNAL TABLE..
    Jogdand M B

  • ABAP XSLT transformation - XML to deep structure/nested standard table

    Hi all,
    I was struggling with this topic recently and couldn't find a single working example or description of a possible solution. So now that I've sorted it out, I did a quick example to elustrate how it works. Here is the code with XML embeded in it and the XSLT follows:
    <HR>
    <PRE>
    *& Report  Z_XML2ABAP
    *& Author: Jayanta Roy
    *& Date: 03/02/2010
    REPORT  z_xml2abap.
    DATA input_xml TYPE string.
    TYPES: BEGIN OF t_address,
            house_no TYPE string,
            street_name TYPE string,
            city_name TYPE string,
            phone_no TYPE string,
          END OF t_address.
    TYPES: t_addresses TYPE STANDARD TABLE OF t_address with NON-UNIQUE KEY house_no.
    TYPES: BEGIN OF t_person,
            firstname TYPE string,
            surname TYPE string,
            addresses TYPE t_addresses,
          END OF t_person.
    input_xml = '&lt;Friends&gt;' &&
      '&lt;People&gt;' &&
        '&lt;FirstName&gt;Homer&lt;/FirstName&gt;' &&
        '&lt;Surname&gt;Simpson&lt;/Surname&gt;' &&
          '&lt;Address&gt;' &&
            '&lt;HouseNo&gt;123&lt;/HouseNo&gt;' &&
            '&lt;Street&gt;Evergreen Terrace&lt;/Street&gt;' &&
            '&lt;City&gt;Springfield&lt;/City&gt;' &&
            '&lt;PhoneNo&gt;011212321&lt;/PhoneNo&gt;' &&
          '&lt;/Address&gt;' &&
          '&lt;Address&gt;' &&
            '&lt;HouseNo&gt;7G&lt;/HouseNo&gt;' &&
            '&lt;Street&gt;Neuclear Power Plant&lt;/Street&gt;' &&
            '&lt;City&gt;Spring Field&lt;/City&gt;' &&
            '&lt;PhoneNo&gt;911&lt;/PhoneNo&gt;' &&
          '&lt;/Address&gt;' &&
      '&lt;/People&gt;' &&
      '&lt;People&gt;' &&
         '&lt;FirstName&gt;Bart&lt;/FirstName&gt;' &&
         '&lt;Surname&gt;Simpson&lt;/Surname&gt;' &&
           '&lt;Address&gt;' &&
             '&lt;HouseNo&gt;123x&lt;/HouseNo&gt;' &&
             '&lt;Street&gt;Evergreen Terracex&lt;/Street&gt;' &&
             '&lt;City&gt;Springfieldx&lt;/City&gt;' &&
             '&lt;PhoneNo&gt;011212321x&lt;/PhoneNo&gt;' &&
           '&lt;/Address&gt;' &&
       '&lt;/People&gt;' &&
    '&lt;/Friends&gt;' .
    DATA lt_person TYPE STANDARD TABLE OF t_person.
    TRY.
        CALL TRANSFORMATION xslt_person
        SOURCE XML input_xml
        RESULT  all_people = lt_person.
      CATCH cx_root.
        WRITE 'Problemo!'.
    ENDTRY.
    WRITE 'Now, debug the program to see the values read from the XML'.
    </PRE>
    <HR>
    and here is the XSLT Transformation program (xslt_person):
    <HR>
    <PRE>
    &lt;xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                        xmlns:sap="http://www.sap.com/sapxsl" version="1.0"&gt;
      &lt;xsl:strip-space elements="*"/&gt;
      &lt;xsl:template match="/"&gt;
        &lt;asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0"&gt;
          &lt;asx:values&gt;
            &lt;ALL_PEOPLE&gt;
              &lt;xsl:apply-templates select="//People"/&gt;
            &lt;/ALL_PEOPLE&gt;
          &lt;/asx:values&gt;
        &lt;/asx:abap&gt;
      &lt;/xsl:template&gt;
      &lt;xsl:template match="People"&gt;
        &lt;ALLMYFRIENDS&gt;  &lt;!This element name is not relevent... needed to just group the loop&gt;
          &lt;FIRSTNAME&gt;
            &lt;xsl:value-of select="FirstName"/&gt;
          &lt;/FIRSTNAME&gt;
          &lt;SURNAME&gt;
            &lt;xsl:value-of select="Surname"/&gt;
          &lt;/SURNAME&gt;
          &lt;ADDRESSES&gt;
            &lt;xsl:for-each select="Address"&gt;
              &lt;ADDRESS&gt; &lt;!This element name is not relevent... needed to just group the loop&gt;
                &lt;HOUSE_NO&gt;
                  &lt;xsl:value-of select="HouseNo"/&gt;
                &lt;/HOUSE_NO&gt;
                &lt;STREET_NAME&gt;
                  &lt;xsl:value-of select="Street"/&gt;
                &lt;/STREET_NAME&gt;
                &lt;CITY_NAME&gt;
                  &lt;xsl:value-of select="City"/&gt;
                &lt;/CITY_NAME&gt;
                &lt;PHONE_NO&gt;
                  &lt;xsl:value-of select="PhoneNo"/&gt;
                &lt;/PHONE_NO&gt;
              &lt;/ADDRESS&gt;
            &lt;/xsl:for-each&gt;
          &lt;/ADDRESSES&gt;
        &lt;/ALLMYFRIENDS&gt;
      &lt;/xsl:template&gt;
    &lt;/xsl:transform&gt;
    </PRE>
    <HR>
    HTH,
    Jayanta.

    thanks a LOT Jayanta..
    I was looking for an XSLT example for some time.. this one atleast got me started in the right direction..
    THANKS

  • Read a csv file, fill a dynamic table and insert into a standard table

    Hi everybody,
    I have a problem here and I need your help:
    I have to read a csv file and insert the data of it into a standard table.
    1 - On the parameter scrreen I have to indicate the standard table and the csv file.
    2 - I need to create a dynamic table. The same type of the one I choose at parameter screen.
    3 - Then I need to read the csv and put the data into this dynamic table.
    4 - Later I need to insert the data from the dynamic table into the standard table (the one on the parameter screen).
    How do I do this job? Do you have an example? Thanks.

    Here is an example table which shows how to upload a csv file from the frontend to a dynamic internal table.  You can of course modify this to update your database table.
    report zrich_0002.
    type-pools: slis.
    field-symbols: <dyn_table> type standard table,
                   <dyn_wa>,
                   <dyn_field>.
    data: it_fldcat type lvc_t_fcat,
          wa_it_fldcat type lvc_s_fcat.
    type-pools : abap.
    data: new_table type ref to data,
          new_line  type ref to data.
    data: xcel type table of alsmex_tabline with header line.
    selection-screen begin of block b1 with frame title text .
    parameters: p_file type  rlgrap-filename default 'c:Test.csv'.
    parameters: p_flds type i.
    selection-screen end of block b1.
    start-of-selection.
    * Add X number of fields to the dynamic itab cataelog
      do p_flds times.
        clear wa_it_fldcat.
        wa_it_fldcat-fieldname = sy-index.
        wa_it_fldcat-datatype = 'C'.
        wa_it_fldcat-inttype = 'C'.
        wa_it_fldcat-intlen = 10.
        append wa_it_fldcat to it_fldcat .
      enddo.
    * Create dynamic internal table and assign to FS
      call method cl_alv_table_create=>create_dynamic_table
                   exporting
                      it_fieldcatalog = it_fldcat
                   importing
                      ep_table        = new_table.
      assign new_table->* to <dyn_table>.
    * Create dynamic work area and assign to FS
      create data new_line like line of <dyn_table>.
      assign new_line->* to <dyn_wa>.
    * Upload the excel
      call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
           exporting
                filename                = p_file
                i_begin_col             = '1'
                i_begin_row             = '1'
                i_end_col               = '200'
                i_end_row               = '5000'
           tables
                intern                  = xcel
           exceptions
                inconsistent_parameters = 1
                upload_ole              = 2
                others                  = 3.
    * Reformt to dynamic internal table
      loop at xcel.
        assign component xcel-col of structure <dyn_wa> to <dyn_field>.
        if sy-subrc = 0.
         <dyn_field> = xcel-value.
        endif.
        at end of row.
          append <dyn_wa> to <dyn_table>.
          clear <dyn_wa>.
        endat.
      endloop.
    * Write out data from table.
      loop at <dyn_table> into <dyn_wa>.
        do.
          assign component  sy-index  of structure <dyn_wa> to <dyn_field>.
          if sy-subrc <> 0.
            exit.
          endif.
          if sy-index = 1.
            write:/ <dyn_field>.
          else.
            write: <dyn_field>.
          endif.
        enddo.
      endloop.
    REgards,
    RIch Heilman

  • How to specify the type of table in the form parameters

    How to specify the type of table in the form parameters. for example, how to specify the type of table "vacancies".
    FORM getcertainday
                       USING
                       vacancies TYPE STANDARD TABLE
                       efirstday LIKE hrp9200-zfirst_day
                       lfristday LIKE hrp9200-zfirst_day.

    Hi
    Are you asking about subroutine program to declare a variable for perform statement etc
    if it so check this coding
    DATA: NUM1 TYPE I,
    NUM2 TYPE I,
    SUM TYPE I.
    NUM1 = 2. NUM2 = 4.
    PERFORM ADDIT USING NUM1 NUM2 CHANGING SUM.
    NUM1 = 7. NUM2 = 11.
    PERFORM ADDIT USING NUM1 NUM2 CHANGING SUM.
    FORM ADDIT
           USING ADD_NUM1
                 ADD_NUM2
           CHANGING ADD_SUM.
      ADD_SUM = ADD_NUM1 + ADD_NUM2.
      PERFORM OUT USING ADD_NUM1 ADD_NUM2 ADD_SUM.
    ENDFORM.
    FORM OUT
           USING OUT_NUM1
                 OUT_NUM2
                 OUT_SUM.
      WRITE: / 'Sum of', OUT_NUM1, 'and', OUT_NUM2, 'is', OUT_SUM.
    ENDFORM.
    If your issue is some other can u explain me clearly
    Regards
    Pavan

  • Search Help for field of standard table used on non standar report

    Hi all.
    I need to know whether is posible to set up a "Search Help" / "Matchcode" for one standard field (LFBK-BKTVP) of a standard table (LFBK) that is going to be used on the selection screen of one new non standard report ZFK01.
    I was wondering if this could be posible under any special attributes, set up, ... for this field in the corresponding screen, but do not really know nor if that would work neither what to set up. Any other workaround would also be welcome.
    Could somebodly help?
    Thanks in advance. Regards,
    Abdali

    Hi ,
    Please try this code .It is working as per your requirement.
    *& Report  ZTESTPRO4                                      *
    REPORT  ztestpro4.
    TYPES:BEGIN OF ty_lfbk,
          bvtyp TYPE lfbk-bvtyp,
          END OF ty_lfbk.
    DATA:gt_lfbk TYPE STANDARD TABLE OF ty_lfbk,
         gs_lfbk TYPE ty_lfbk.
    PARAMETERS:bank TYPE lfbk-bvtyp.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR bank.
      SELECT bvtyp
         FROM lfbk
         INTO TABLE gt_lfbk.
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          retfield    = 'BVTYP'
          dynpprog    = sy-repid
          dynpnr      = sy-dynnr
          dynprofield = 'bank'
          value_org   = 'S'
        TABLES
          value_tab   = gt_lfbk.

  • Purpose of Row type, line type and Table Type..

    Hi All,
    Just I’m started working with OOABAP. Whenever I open some structures, most of the components in the structures have the below three words. What is the exact difference b/w the below words. What is purpose those?
    Row type, line type
    Table type:
    Please let me know.

    hi,
    Line Type
    The line type of an internal table can be any data type. The data type of an internal table is normally a structure. Each component of the structure is a column in the internal table. However, the line type may also be elementary or another internal table.
    Table type
    The table type determines how ABAP will access individual table entries. Internal tables can be divided into three types:
    Standard tables have an internal linear index. From a particular size upwards, the indexes of internal tables are administered as trees. In this case, the index administration overhead increases in logarithmic and not linear relation to the number of lines. The system can access records either by using the table index or the key. The response time for key access is proportional to the number of entries in the table. The key of a standard table is always non-unique. You cannot specify a unique key. This means that standard tables can always be filled very quickly, since the system does not have to check whether there are already existing entries.
    Sorted tables are always saved sorted by the key. They also have an internal index. The system can access records either by using the table index or the key. The response time for key access is logarithmically proportional to the number of table entries, since the system uses a binary search. The key of a sorted table can be either unique or non-unique. When you define the table, you must specify whether the key is to be UNIQUE or NON-UNIQUE. Standard tables and sorted tables are known generically as index tables.
    Hashed tables have no linear index. You can only access a hashed table using its key. The response time is independent of the number of table entries, and is constant, since the system access the table entries using a hash algorithm. The key of a hashed table must be unique. When you define the table, you must specify the key as UNIQUE.
    The key identifies table rows. There are two kinds of key for internal tables - the standard key and a user-defined key. You can specify whether the key should be UNIQUE or NON-UNIQUE. Internal tables with a unique key cannot contain duplicate entries. The uniqueness depends on the table access method.
    At tables with structured row type, the standard key is formed from all character-type columns of the internal table. If a table has an elementary line type, the default key is the entire line. The default key of an internal table whose line type is an internal table, the default key is empty. At tables with non-structured row type, the standard key consists of the entire row. If the row type is also a table, an empty key is defined.
    The user-defined key can contain any columns of the internal table that are no internal table themselves, and do not contain internal tables. References are allowed as table keys. Internal tables with a user-defined key are called key tables. When you define the key, the sequence of the key fields is significant. You should remember this, for example, if you intend to sort the table according to the key.
    Internal tables are always completely specified regarding row type, key and access type
    Hope this helps.

  • Delete by index on type any table

    What is the alternative for the forbidden index operations on a fieldsymbol of type any table?
    I have a table under a fieldsymbol.. can be any table and I want to delete line 2.. how do I do it?
    e.g.
    ps_tabname is a parameter pointing to an internal table (unknown at design time)
    field-symbols: <fs_tab> type any table.
    assign (ps_tabname) to <fs_tab>.
    delete <fs_tab> index 2. -> not possible because of any table.. alternative?

    >
    Koenraad Janssens wrote:
    > field symbol as standard table does the trick... stupid me
    Hello,
    This explains why TYPE STANDARD TABLE solves your problem
    TYPE ANY TABLE --> Can contain any internal table (INDEX tables which can be either STANDARD or SORTED TABLE & HASH table). As already suggested index cannot be used on hash tables so it was giving you an error.
    TYPE INDEX TABLE --> A generic table will be created which allows index access unlike ANY TABLE. Refer: [http://help.sap.com/abapdocu_70/en/ABENINDEX_TABLE_GLOSRY.htm|http://help.sap.com/abapdocu_70/en/ABENINDEX_TABLE_GLOSRY.htm]
    BR,
    Suhas

  • How to declare a workarea of type index table

    Hi Experts,
    I am getting error as CT_RESULT is a generic type.Use of this type is only possible for typing field symbols and formal parameters  when using the below code. Please help me and let me know how to declare it.
      TYPES:BEGIN OF  ty_guid,
            guid TYPE guid,
            END OF ty_guid.
      DATA:it_guid TYPE STANDARD TABLE OF ty_guid INITIAL SIZE 0,
           it_item TYPE STANDARD TABLE OF bbp_pds_sc_item_d INITIAL SIZE 0.
      DATA:wa_guid TYPE ty_guid,
                wa_item TYPE bbp_pds_sc_item_d.
      FIELD-SYMBOLS: <fs_result> like LINE OF ct_result.
      SELECT guid FROM crmd_orderadm_h INTO TABLE it_guid
                  WHERE object_id IN ct_result.
      IF sy-subrc = 0.
        LOOP AT it_guid INTO wa_guid.
          CALL FUNCTION 'BBP_PD_SC_GETDETAIL'
           EXPORTING
              i_guid                           = wa_guid
    *   I_OBJECT_ID                      =
    *   I_ATTACH_WITH_DOC                = ' '
              i_with_itemdata                  = 'X'
    *   I_ITEM_SORTED_BY_HIERARCHY       =
    *   I_WITHOUT_HEADER_TOTALS          =
    *   I_READ_FROM_ARCHIVE              = ' '
    * IMPORTING
    *   E_HEADER                         =
    *   EV_IS_PD                         =
    *   ET_ATTACH                        =
           TABLES
              e_item                     = it_item
    *   E_ACCOUNT                        =
    *   E_PARTNER                        =
    *   E_CONFIRM                        =
    *   E_LONGTEXT                       =
    *   E_LIMIT                          =
    *   E_ORGDATA                        =
    *   E_TAX                            =
    *   E_PRIDOC                         =
    *   E_HCF                            =
    *   E_ICF                            =
    *   E_MESSAGES                       =
    *   E_ACTVAL                         =
    *   E_ACC_ACTVAL                     =
    *   E_HEADER_REL                     =
    *   E_ITMLIM_REL                     =
    *   E_STATUS                         =
        ENDLOOP.
      ENDIF.
      IF it_item[] IS NOT INITIAL.
        LOOP AT it_item INTO wa_item.
          LOOP AT ct_result ASSIGNING <fs_result>.
           <fs_result>-zzpurchase_cat = wa_item-be_tracking_no.
    *        MODIFY ct_result FROM wa_result.
            CLEAR wa_result.
          ENDLOOP.
          CLEAR wa_item.
        ENDLOOP.
      ENDIF.

    Hi,
    i'm not quite sure where ct_result is first introduced. There seems to be no declaration?
    Judging by the name-prefix, it would be a changing parameter of which form?
    Where is it populated, since you intend to loop it?
    And then, from which hat do you draw wa_result? it neither seems to be declared nor is there an assignment of values.
    On the other hand, you're trying to change table ct_result directly by altering a field of an assigned field-symbol. Why do you feel it necessary to follow up with a modify statement?
    After so many question-marks i have lost the point of your initial question.
    Maybe, you can start with a short description of your intention and a more accurate code-snippet.
    Best regards - Jörg

  • Standard table

    hi all,
    i have created a internal table by using the following systax.
    types : begin of ty_itab,
                matnr     type matnr,
                kwmeng type kwmeng,
                audat     type audat,
             end of ty_itab.
    data : itab type standard table of ty_itab with header line.
    i want to fetch all records of the selected document numbers from VBAP table, but it is not taking duplicate entries.
    if matnr, kwmenge and audat values are same than thoes records are not coming to internal table..
    according to me by default standard table should allow duplicate entries which is not happing in my case.....
    kindly, give some solution
    thanks

    Hi florein,
    thanks for the solution....
    but can u explain me ,why the duplicate entries are not coming to internal table....
    standard table should take duplicate entries right..
    for me i required only matnr kwmeng and audat..... when i have created internal table of these fields, duplicate entries of these also should append in the internal table.... but why it is not taking...
    thanks

  • Modify the Field Type of standard Table fields in a Query

    Hello. I have a question.
    Is there a way to "modify" the field type for standard table fields that are included in a Query?
    I made a simple query out of a join of tables, but several fields have a lot of decimals, and I would like to present them in the query without any decimals, just as a regular "N" field.
    I tried the possibility of creating extra local fields where all I do is transfer the value to the new "N" field, but I have many fields like this, so if there's a better way; I'd prefer that.
    Maybe somewhere in the InfoSet there's a way to modify the type of the standard table fields?
    Thank you.

    Hi,
    This document may help you out.
    [http://help.sap.com/saphelp_erp60_sp/helpdata/en/d2/cb4468455611d189710000e8322d00/frameset.htm|http://help.sap.com/saphelp_erp60_sp/helpdata/en/d2/cb4468455611d189710000e8322d00/frameset.htm]
    Cheers,

  • Generic standard table type

    Anybody please resolve my doubt
    types tb_std_type type table of sflight.
    -->this i understand as not a generic table type.'NON-UNIQUE" and DEFAULT KEYS are implicity defined .
    data it_std type tb_std.-->Since i could declare an internal table of tb_std_type,i strongly belive tb_std_type is not a genric table type.
    But when i try to declare another type of same table type tb_std_type ie
    types tb2_type type tb_std_type.
    This is giving me an error saying\
    tb_std_type has a generic type.Use of this type is only possible for typing field symbols and  formal parameters.
    If thats true then how was i able to create a internal table  out of it...
    In case of sorted and hashed tables it behaves as exactly as it is defined.(Like if  generic,can only  be used for typing formal params.field symbold..and if non generic--internal tables declaration and normal typing is possible)
    Please resolve this
    *Would be great if could avoid a copy paste from std.help..because i have been through it..

    Hello Teenu,
    Query#1
    types tb2_type type tb_std_type.
    This is giving me an error saying\
    tb_std_type has a generic type.Use of this type is only possible for typing field symbols and formal parameters.
    Why is the table generic? An excerpt from SAP documentation clearly states that:
    An internal table that has no table key or an incomplete table key is generic with respect to the table key. A table type of this nature can be used only for typing formal parameters or field symbols.
    Query#2
    If thats true then how was i able to create a internal table out of it...
    SAP says:
    A standard table type with a generic primary table key can only be specified after TYPE when DATA is used.
    Source: [http://help.sap.com/abapdocu_70/en/ABAPTYPES_KEYDEF.htm|http://help.sap.com/abapdocu_70/en/ABAPTYPES_KEYDEF.htm]
    BR,
    Suhas

Maybe you are looking for

  • How do I stop family purchases defaulting to my credit card?

    I have set up family sharing and the first thing that happened was that my grown up daughter immediately bought an app for £32 which was charged to my credit card - she hadn't intended to; in fact she thought she was downloading a similar app that I

  • File name modification in a File adapter

    Can I alter the file name via the module bean? I have this snippet code...can I alter the file name the data is being created under. Thank you. try { obj = inputModuleData.getPrincipalData(); msg = (Message) obj; // Get the Supplemental data which is

  • Site not displaying correctly in DW Design View

    This is a weird display problem on one of my sites that I have not seen before. I sometimes log into my server remotely and make changes to the html manually then resave the files. Later I may download the newly edited files and put them in my backup

  • Invoice for different vendor

    Hi, I have created PO for XYZ vendor and when I create Invoice it goes on different vendor as ABC. and it is not regular its happening some time. please suggest me why it is happening. Thanks Shital

  • Need a output based on document no and company code

    Hello All, I am new to BI and appreciate your cooperation I have a requirement where in I need a total count based on Document no and company code in the Report where in a document no can exist in multiple company code Say for eg Doc No CompanyCode 1