Diff Between Internal Table with Occurs 0 & Field Groups

Hi,
Is there really any difference between just using an internal table with an OCCURS 0 statement-- which would write the entire table to paging space-- and using field-groups? How is Field-Groups is more effective than Internal tables with occurs 0 when it comes to performance?
Could anybody please give some information regarding above question?
Thanks,
Mohan.

hi,
occurs 0 means it wont create any extra memory. based on the records only the memory is allocated to internal tables at run time. but when an internal table is created it can hold data of type to which it is declared.
i.e data: itab like mara occurs 0 with header line.
can take data only from mara table
we can also do in another way as using types keyword we can declare a standard structure and create a internal table of that type. its also not that useful as we have to change the structure depending on changes for storing data.
for this purpose field symbols are used. field symbols can hold any data means that they can point to tables, fields, any standard or user-defined types. field symbols actually points to respective types by which we can directly access to that types using field symbols.
filed symbols works more faster than internal tables.
if helpful reward some points.
with regards,
Suresh.A

Similar Messages

  • Differences between Internal table with Occurs 0 and Field-Groups?

    Is there really any difference between just using an internal table with an OCCURS 0 statement-- which would write the entire table to paging space-- and using field-groups? How is Field-Groups is more effective than Internal tables with occurs 0 when it comes to performance?
    Could anybody please give some information regarding above question?
    Thanks,
    Surya.

    hi,
    occurs 0 means it wont create any extra memory. based on the records only the memory is allocated to internal tables at run time. but when an internal table is created it can hold data of type to which it is declared.
    i.e data: itab like mara occurs 0 with header line.
    can take data only from mara table
    we can also do in another way as using types keyword we can declare a standard structure and create a internal table of that type. its also not that useful as we have to change the structure depending on changes for storing data.
    for this purpose field symbols are used. field symbols can hold any data means that they can point to tables, fields, any standard or user-defined types. field symbols actually points to respective types by which we can directly access to that types using field symbols.
    filed symbols works more faster than internal tables.
    if helpful reward some points.
    with regards,
    Suresh.A

  • How to convert internal table with dynamic fields to XML

    Dear all,
    I met a problem like the following:
    The aim is to transform the following parameter to XML
    IT_FIELD stores the dynamic filed name of the internal table,with these fields, the dynamic internal can be created by cl_abap_tabledescr=>create(it_field)
    IT_VALUE stores the value of the internal table dynamically created with dynamic fields.
    For example
    IT_FIELD =>
    line1: FIELD1
    line2: FIELD2
    line3: FIELD3,
    three lines in this internal table.
    dynamically created internal table structure FIELD1 FIELD2 FIELD3
    And IT_VALUE=>
    1          2          3   (First line)
    11        22        33
    two lines of data.
    Do you have any idea about how to transform the IT_VALUE to XML here? And also the transformed XML to the IT_VALUE.( we may need remember IT_FIELD here for later XML to IT_VALUE.)
    Hope I describe the problem clearly.
    Any inputs will be appreciated.
    Edited by: Max Tang on Jan 12, 2009 3:46 PM
    Edited by: Max Tang on Jan 12, 2009 4:14 PM

    Hi,
    you need to implement a bit of coding for that.
    With the 'do varying' statement abap provides a loop over those fields. Within this loop you can build up a new internal table with one entry for each period and amount.
    kind regards
    Siggi
    PS: I am not very familiar with CO, but I guess there will be a standard extractor for that.

  • Passing internal table with a field of type string to & from BAPI

    Hello ABAP gurus,
    I have a simple BAPI which has to send back an internal table.
    Internal table structure is as follows
    DATA: BEGIN OF itab OCCURS 0,
            config_id(8),
            blobdata like zstring,
    END OF itab.
    where zstring is a string of variable length.
    When I try to activate the BAPI I get a message
    "itab" must be a flat structure. You cannot use internal tables, strings, references or structures as components.
    However, just for testing, I changed blobdata to type of char and I can successfully activate and use the BAPI.
    But, our requirement is to pass a string of variable length.
    How can I resolve this issue? I have searched sdn and other blogs but didn't help so far.
    Any feedback on this will be highly appreciated.
    Thanks
    Ram

    Hi Prasad ,
         Try this way :
    Acc to your requirement ,create a structure with a parameter and a string , create a table type for that structure .
    use that table type in the changing parameter as you need that bapi to accept and return a table .
    for the below example ,  ZTEST_05 is a structure , ZTT_TEST_05 is a table type of ZTEST_05 .
    ZTEST_05 has got 2 fields , one is a param of type char(8) and another is a string of type STRING .
    I created the below mentioned BAPI and I was able to activate it without any errors .
         FUNCTION ZTEST_BAPI_ITAB_01.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(BAPI_P1) TYPE  ZTEST_05
    *"  CHANGING
    *"     VALUE(BAPI_CP1) TYPE  ZTT_TEST_05
    ENDFUNCTION. 
    Revert if any issues .
    Regards,
    Ranjita

  • Dynamic Internal Table with Dynamic Fields

    Hi all,
    My scenario is fairly simple----
    --> End user clicks a button on screen and he gets the list of HR tables.
    --> Then selects a table and list of all the fields for that table gets displayed.
    --> He/she selects the fields they want data to be retrieved for.
    So, the requirement is, the dynamic internal table should get created with the fields selected.
    The select statement should only retrieve fields which were selected by the end user
    and from the table selected by the end user.
    I  believe the fields selected by end user can be passed by a variable of  type string.
    something like this---
    select (fields)
    from (p_table)        " Table selected by end user
    into  dynamic internal table.   " should contain columns selected by end user"
    Appreciate your inputs and guidance.
    Warm regards,
    Hari Kiran

    TYPE-POOLS :ABAP.
    Parameters P_TAB      TYPE        DDOBJNAME.
    DATA  : GO_LINE_TYPE  TYPE REF TO CL_ABAP_STRUCTDESCR,
            GO_TABLE_DESC TYPE REF TO CL_ABAP_TABLEDESCR,
            GS_COMPONENTS TYPE        ABAP_COMPONENTDESCR,
            GT_COMPONENTS TYPE        ABAP_COMPONENT_TAB,
            GR_TAB        TYPE REF TO DATA,
            GT_FIELDS  TYPE TABLE OF DFIES WITH HEADER LINE.
    FIELD-SYMBOLS: <GT_TABLE> TYPE TABLE,
                   <GS_TABLE> TYPE ANY,
                   <GV_VALUE> TYPE ANY.
    CALL FUNCTION 'DDIF_FIELDINFO_GET'
      EXPORTING
        TABNAME              = P_TAB
    *   FIELDNAME            = ' '
    *   LANGU                = SY-LANGU
    *   LFIELDNAME           = ' '
    *   ALL_TYPES            = ' '
    *   GROUP_NAMES          = ' '
    *   UCLEN                =
    * IMPORTING
    *   X030L_WA             =
    *   DDOBJTYPE            =
    *   DFIES_WA             =
    *   LINES_DESCR          =
    TABLES
        DFIES_TAB            =  GT_FIELDS
    *   FIXED_VALUES         =
    EXCEPTIONS
       NOT_FOUND            = 1
       INTERNAL_ERROR       = 2
       OTHERS               = 3.
    IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT GT_FIELDS.
      CLEAR GS_COMPONENTS.
      GS_COMPONENTS-NAME  = GT_FIELDS-FIELDNAME.
      GS_COMPONENTS-TYPE ?= CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_NAME( GT_FIELDS-ROLLNAME ).
      APPEND GS_COMPONENTS TO GT_COMPONENTS.
    ENDLOOP.
    GO_LINE_TYPE  = CL_ABAP_STRUCTDESCR=>CREATE( GT_COMPONENTS ).
    GO_TABLE_DESC = CL_ABAP_TABLEDESCR=>CREATE( GO_LINE_TYPE ).
    CREATE DATA:  GR_TAB TYPE HANDLE GO_TABLE_DESC.
    ASSIGN:  GR_TAB->* TO <GT_TABLE>.
    SELECT * FROM (P_TAB) APPENDING CORRESPONDING FIELDS OF TABLE <GT_TABLE>.
    LOOP AT <GT_TABLE> ASSIGNING <GS_TABLE>.
      NEW-LINE.
      DO.
        ASSIGN COMPONENT SY-INDEX OF STRUCTURE <GS_TABLE> TO <GV_VALUE>.
        IF SY-SUBRC NE '0'.
          EXIT.
        ENDIF.
        WRITE : <GV_VALUE>.
      ENDDO.
    ENDLOOP.

  • Internal Table with variable field lengths

    Hi Guys,
    I have a requirement to populate an internal table whose structure is as follows.
    Internal Table will have 5 lines.
    Line1: 050 char
    Line2: 100 char
    Line3: 100 char
    Line4: 100 char
    Line5: 050 char.
    I have all the required data with me. I just need to populate the table.
    Reward points up for grabs
    Regards,
    Suhas

    Hi,
    Wher do you have the data?
    You can define a work area and internal table of two rows..
    wa-row1 = 'yourdata'
    wa-row2 = 'your data'
    append wa to itab.
    wa-row1 = 'yourdata'
    wa-row2 = 'your data'
    append wa to itab.
    wa-row1 = 'yourdata'
    wa-row2 = 'your data'
    append wa to itab.
    wa-row1 = 'yourdata'
    wa-row2 = 'your data'
    append wa to itab.
    wa-row1 = 'yourdata'
    wa-row2 = 'your data'
    append wa to itab.
    If you have your data in Db table then you need to write a select query..
    select <fields,,,> from DBtable into tableITAb.
    Be clear with your question we can help you...
    rewads if useful,
    regards,
    nazeer

  • Unable to modify the final internal table with month field

    hi everybody
    I am having one material which has a qty  in different months lets say that jan feb mar apr may june..... now i have caluculated the total of the material monthly wise and i have to display in the output. if the material of the first month displayed and then again the same material comes in the loop and that matrial is going to be checked by the month wise and has to diaplyed in the corresponding month fied in the output. so i am using the index in the loop using  the AT new command for the matnr and appending the final output structure and now if the same matrial comes again with different month the final output internal table should modify. but the statement is executing but the value is not coming in the final output structure.
    the syntax which i am using  is
          MODIFY GT_OUTPUT FROM WA_OUTPUT INDEX lv_index TRANSPORTING MATNR.
    OUTPUT FORMAT IS
    MATERIAL NO :      JANQTY   :    FEBQTY    :   MARQTY : ...... :DECQTY.
    THANKS IN ADVANCE

    my issue is....
    lets say that i am having three materials now
    381, 391, 401. and the material 381 has used in jan month 5 times and feb month 6 times like that. each material is used in different months. now i have calculated all the matrerials qty monthly wise and i have to display the material one time only the qty's in jan feb mar and so on....
    material no  383     
    jan     31064
    feb     67312
    mar     65107
    apr     31222
    material no 391
    jan     74677
    feb     8952
    mar     75501
    so my output should be like this
    OUTPUT FORMAT IS
    MATERIAL NO : JANQTY : FEBQTY : MARQTY
    381                   31064         67312     65107      
    391                   74677        8952        75501
    now i have written the code like this
      LOOP AT GT_OUTPUT1 INTO WA_OUTPUT1.
        WA_OUTPUT-MATNR = WA_OUTPUT1-MATNR.
        WA_OUTPUT-MJAHR = WA_OUTPUT1-MJAHR.
        at NEW matnr.
          l_matnr = 'X'.
          lv_index = sy-tabix.
        endat.
        IF L_MATNR = 'X'.
          PERFORM CASE_STATEMENT.
          append wa_OUTPUT to gt_OUTPUT.
          clear :  wa_OUTPUT, l_matnr, WA_OUTPUT1, WA_ZQCALWT.
        ELSE.
          PERFORM CASE_STATEMENT.
          MODIFY GT_OUTPUT FROM WA_OUTPUT. " INDEX lv_index TRANSPORTING MAR. " EQ WA_OUTPUT1-MATNR.
          clear :  wa_OUTPUT, l_matnr, WA_OUTPUT1, WA_ZQCALWT.
        ENDIF.
    endloop.

  • Create an internal table with the rows of another internal table.

    Hi I want to know if posible to create an internal table structure with the  rows of another internal table?
    ex.
    If in i_tab column A has this values: row 1 = first, row 2 = second, row 3 = third.
    Now I want that the structure of my internal table be: first, second, third

    Hi,
    If you do this way then what will be the difference between the two table anyway?? First internal table has the same structure irrespective of which row you select. and you are going to store the data from each row to the rows of the second internal table. In that case, the structure of the internal table is the same as first table. and it would have same rows.
    Am I missing something here? or you want to declare the internal table with each field being the structure of the first table? In this case you'd have to do a dynamic declaration of data as the first table can have any no of rows then the second table would have any no of fields in the structure.
    Now if you know that your first internal table is going to have a fixed no of rows eg 3 rows then it becomes simple. Do the following then
    Data: begin of second_table occurs 0,
    first type <first_table type>,
    second type <first_table type>,
    third type <first_table type>,
    end of second_table.
    Regards
    Prasenjit

  • Create dynamic internal table with deep structure;cell coloring dynamic ALV

    Hi,
    My requirement is to do cell colouring for a dynamic ALV.
    So I am creating a dynamic internal table using the following method.
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = i_fieldcatalog[]
        IMPORTING
          ep_table        = i_output.
    But how do I define field COLORS which should be again an internal table ?
    Is there any other way for cell colouring?
    Putting my problem in another way:
    How do I create a dynamic internal table with one field as another internal table.
    Quick replies are highly appreciated.
    Thanks,
    Nisha Vengal.

    halo Nisha
    Before building the display table . you can add the field in the feild catalog right . This display table gets generated from the field catalog right
    1 Create a global structute say ZEXTEND_FIELDCAT
    2 Have fields like STYLE type lvc_t_styl
                             COLOR type LVC_T_SCOL.
    3 Now you have to extend ur fieldcatalog
      l_fieldcat-fieldname = COLOR'.
      l_fieldcat-ref_field = 'COLOR'.
      l_fieldcat-ref_table = 'ZEXTEND_FIELDCAT'.
      APPEND l_fieldcat TO lt_field_catalog.
      CLEAR l_fieldcat.

  • How to Fill Internal Table with contents of Select-Option

    Hi all:
         There is a select-option s_matnr on the self-made screen.   An internal table t_int is declared in the program. The requirement is that users makes selection with multiple  material numbers.  I want to put the values of s_matnr  into internal table  t_int directly. Would you please tell me how?
         Thank you very much in advance.
    Edited by: dongdong guo on Jun 13, 2008 3:40 AM

    Hi,
    Select option works like an internal table only.
    For table selection you can use it directly using IN operator in where clause
    eg : where matnr IN s_matnr.
    Before that you may need to validate the content of the select-option. For that also you need to transfer the content to a new internal table.
    u can loop at the select-option.
    eq: loop at s_matnr.
          if s_matnr-low = 'MAT1'.
            condition.
          endif.
         endloop.
    if you just want to check whether any single valid material number exist in your user screen, then u can use a select single option with s_matnr directly.
      select single matnr from mara
                where matnr in s_matnr.
      select-option s_matnr behaves like an internal table with four fields.
    sign, option, low, high.

  • How to update database table with key field?

    Hello Experts,
    I have a database table with following fields
    MATNR   - Key
    SSOUR  -  Key
    KUNNR   - Key
    MENG1 
    MENG2
    MENG3
    And this table contains records like...
    MSD50001     R      1000001     5.30    2.30    5.25
    MSD50002     R      1000002     5.30    2.30    5.25
    MSD50003     R      1000003     5.30    2.30    5.25
    MSD50005     R      1000004     5.30    2.30    5.25
    MSD50004     R      1000005     5.30    2.30    5.25
    I have an internal table with same fields of above database table.
    MSD50001     A      1000001     5.30    2.30    5.25
    MSD50002     A      1000002     5.30    2.30    5.25
    MSD50003     A      1000003     5.30    2.30    5.25
    MSD50005     A      1000004     5.30    2.30    5.25
    MSD50004     A      1000005     5.30    2.30    5.25
    MSD50006     A      1000006     5.30    2.30    5.25
    I want to update the DB table with following internal table records.
    If internal table records = db table records are same then Update....else insert from internal table to db table.
    But here, SSOUR is key field so i am not able to use
    MODIFY dbtab from itab.
    It results me , entries in internal table are inserted into db table.
    So i have double records.
    Is there any statement which updates the key field? and if no fields in db table then insert it?
    Regards
    RH

    hi,
    u cannot update akey field.u can update only non key fields by using key field as a selection criteria.For example if u go to sm30 if u enter any table for inserting values, the key field will always be greyed out it is not succumbed to chnges.but u can insert value into ,if ur inserting and in the insert staemnet if  u have key field which is already present in the table it will return sy-subrc = 4 otherwise it will insert the record and return 0.
    eg for update :
    UPDATE zdm_wtyprof  SET upload_status = 'S'
                             WHERE spart = wa_upd-spart.
    here spart is the key field and it will update the status field in the table as S.
    if updated succesfully it will return 0.
    SIMILARLY U CAN USE select.

  • Create Internal table with fields coming as query result of multiple tables

    Hi
    I want to create internal table with the fileds which come as a result of a select query from multiple tables

    My code is something like this. I need  the data from various fields of diff tables depending on the excel file. This data is then to be put in a internal table
    *& Report  Z_EXTC
    report  z_extc.
    type-pools : abap.
    parameter: objname(25) type c.
    data : idetails type abap_compdescr_tab,
           xdetails type abap_compdescr.
    data : ref_table_des type ref to cl_abap_structdescr.
    data: p_table type string.
    data:l_string type string,
         l_filename(200) type c,
         dy_line  type ref to data,
         xfc type lvc_s_fcat,
         ifc type lvc_t_fcat.
    types:begin of itab,
         tabname type dd03l-tabname,
         fieldname type dd03l-fieldname,
         end of itab.
    types:begin of atab,
          tabname type dd03l-tabname,
          cnt type string,
          end of atab.
    field-symbols: <dyn_table> type table,
                   <dyn_table1> type standard table,
                   <dyn_wa>,
                   <dyn_field>.
    data: dy_table type ref to data,
          dy_table1 type ref to data.
    data: itab1 type itab occurs 0 with header line.
    data atab1 type atab occurs 0 with header line.
    data frstrec type i value 0.
    data lastrec type i value 0.
    l_string = ''.
    call function 'GUI_UPLOAD'
      exporting
        filename                      = 'C:\excel_files\FIELDS_CC.TXT'
       filetype                      = 'TXT'
       has_field_separator           = 'X'       .
    if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    *Refresh itab1.
    loop at itab1.
      on change of: itab1-tabname.
        if lastrec = 1.
          move l_string to atab1-cnt.
       move itab1-tabname to atab1-tabname.
          append atab1.
          l_string = ''.
        endif.
        move itab1-tabname to atab1-tabname.
        frstrec = 1.
      endon.
      if frstrec = 1.
        concatenate l_string itab1-fieldname into l_string separated by
    space.
        lastrec = 1.
      endif.
    *write:/ itab1-tabname,40 itab1-fieldname.
    endloop.
    move l_string to atab1-cnt.
    append atab1.
    loop at atab1.
      write:/ atab1-tabname,5 atab1-cnt.
    endloop.

  • How to read an internal table with more than  one (2 or 3) key field(s).

    how to read an internal table with more than  one (2 or 3) key field(s). in ecc 6.0 version

    hi ,
    check this..
    report.
    tables: marc,mard.
    data: begin of itab occurs 0,
          matnr like marc-matnr,
          werks like marc-werks,
          pstat like marc-pstat,
          end of itab.
    data: begin of itab1 occurs 0,
          matnr like mard-matnr,
          werks like mard-werks,
          lgort like mard-lgort,
          end of itab1.
    parameters:p_matnr like marc-matnr.
    select matnr
           werks
           pstat
           from marc
           into table itab
           where matnr = p_matnr.
    sort itab by matnr werks.
    select matnr
           werks
           lgort
           from mard
           into table itab1
           for all entries in itab
           where matnr = itab-matnr
           and werks = itab-werks.
    sort itab1 by matnr werks.
    loop at itab.
    read table itab1 with key matnr = itab-matnr
                              werks = itab-werks.
    endloop.
    regards,
    venkat.

  • Sorting internal table with variable no of fields

    Hi ,
    I want to sort the internal table with variable no of fields . Every time the  report is run the number of fields as well as the sequence by which the table has to be sorted changes . How to do this .
    regards

    Hi,
    Please try this.
    DATA: BEGIN OF ITAB OCCURS 0,
            F1(4),
          END OF ITAB.
    DATA: BEGIN OF ITAB2 OCCURS 0,
            F1(1),
            F2(1),
            F3(4),
          END OF ITAB2.
    ITAB-F1 = '01AC'.
    APPEND ITAB.
    ITAB-F1 = '02AB'.
    APPEND ITAB.
    ITAB-F1 = '01CD'.
    APPEND ITAB.
    ITAB-F1 = '02CA'.
    APPEND ITAB.
    LOOP AT ITAB.
      ITAB2-F1 = ITAB-F1+2(1).
      ITAB2-F2 = ITAB-F1+3(1).
      ITAB2-F3 = ITAB-F1.
      APPEND ITAB2.
    ENDLOOP.
    SORT ITAB2 BY F1 ASCENDING
                  F2 DESCENDING.
    LOOP AT ITAB2.
      WRITE: / ITAB2-F3.
    ENDLOOP.
    REWARD POINTS IF HELPFUL

  • Declare the internal table with only one 10 character  field and use

    Hi,
    I want to declare the internal table with only one 10 character  field and use.
    Jaya

    Hi,
    Go ahead. U can declare IT with only one field
    Example:
    data: begin of zcustlist occurs 1000,
                   custmer(10)  type c,
             end of zcustlist.
    Narendra Reddy.
    Edited by: Narendra Reddy C on Aug 8, 2008 11:39 AM

Maybe you are looking for

  • How to connect DVD player to FIOS TV (with standard TV)

    The Verizon techs installed my FIOS system. I already have the router, DVR and standard TV connected and working. How do I add a DVD player to the mix? I found wiring diagrams for my FIOS DVR, but they do not include my configuration. Here is what I

  • Synchroniz​ation for AI and AO with non-regene​ration of output waveforms

    Hi all, I need to output several analog waveforms, while at the same time acquiring analog input, and synchronise the two. For this, I'm using a cDAQ-9178, a 9264 module for AO, and 9220 for AI. I managed to this all right following this example: htt

  • PI 7.4 Single Stack support for Principle Propagation SAML

    Hi Folks, Que: Does the single stack now support Principle Propagation using SAML? The posts I have read so far conclude that SAML is only supported on the dual stack, not the single stack. SAP Help gives steps for dual stack: Configuring Principal P

  • My MacBook Pro don't boot - Help me please ! :/

    Hi everyone. I've a very ungry bug on my macbook pro early 2008 (not unibody). When i want to boot, screen works, but boot stop process when apple display, and circular advancement was blocked.. - I try to change ram => not works - Try to reset PRAM

  • Using sample lite for 11.1.1.5 -getting error

    Hi Experts, I downloaded the sample lite from OTn and followed the procedure step by step. When I start the BI presentation services. It is showing me the following error . This environment is i linux. Error :--Error 500--Internal Server Error From R