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

Similar Messages

  • 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

  • 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.

  • Dynamic creation of table with variable field-names

    HI
    I am looking for a way in order to create a table during runtime. The problem is that the field names of the table are provided in another table.
    TO illustrate the case at hand, an example:
    The initial table contains the fields
    UserID - attribut_name - attribute_value
    Example Data
    d00587 - first_name    - Jon
    d00587 - last_name     - Smith
    d00587 - age           - 48
    d00127 - first_name    - Jack
    d00127 - last_name     - Daniels
    d00127 - position      - Manager
    Now I need to create a table per User that looks as follows:
    for user d00587
    first_name  -  last_name  -  age
    **Values
    Jon         -  Smith      -  48
    for user d00127
    first_name  -  last_name  -  positioin
    Jack        -  Daniels    -  Manager
    I split the initial table by sorting it according to userID and then looping into an itab with an AT END OF userid, thus I receive the table per user:
    Example iTab
    UserID - attribut_name - attribute_value
    Example Data
    d00587 - first_name    - Jon
    d00587 - last_name     - Smith
    d00587 - age           - 48
    However I have no clue on how to create a new internal table with field-names = attribute_name.
    Does anybody have an idea or example code for this?
    Thanks a lot for your help,
    Kind regards,
    Mingolo

    Hello Minima
    Here is some sample coding:
    DATA:
      gt_fcat  type lvc_t_fcat,
      gdo_data TYPE REF TO data.
    FIELD-SYMBOLS:
      <gt_itab> TYPE table.
    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
      EXPORTING
    *     I_BUFFER_ACTIVE              =
        i_structure_name             = 'MARA'
    *     I_CLIENT_NEVER_DISPLAY       = 'X'
    *     I_BYPASSING_BUFFER           =
      CHANGING
        ct_fieldcat                  = gt_fcat
      EXCEPTIONS
        inconsistent_interface       = 1
        program_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.
    CALL METHOD cl_alv_table_create=>create_dynamic_table
      EXPORTING
    *      I_STYLE_TABLE             =
        it_fieldcatalog           = gt_fcat
      IMPORTING
        ep_table                  = gdo_data
    *      E_STYLE_FNAME             =
      EXCEPTIONS
        generate_subpool_dir_full = 1
        OTHERS                    = 2.
    IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ASSIGN gdo_data->* TO <gt_itab>.
    In your case, you would call the function module with your tables (D00587, D00127). Remove all fields from the fieldcatalog that you do not need before calling the static method.
    Regards
      Uwe

  • Internal table with variable no of columns

    Hi All,
    I have to create an internal table with some fixed columns and rest of the table should be dynamic. The total no of columns depends on a field of some other table. hence, the number of columns of the table are unknown. How to create such a table.
    Thanks,
    Neha

    Execute this program .. we will get a fair idea about how the dyanmic column are populated in the table. Based on that u can write ur sceond table with 92 columns
    *& Report  ZTEST009
    REPORT  ztest009 NO STANDARD PAGE HEADING LINE-SIZE 60 LINE-COUNT 2(1).
    TYPE-POOLS : slis.
    TYPES : BEGIN OF internal,
            matnr(18),
            werks(4),
            qtyn(20),
            desc(20) TYPE c,
            qty TYPE i,
            END OF internal.
    DATA : it TYPE TABLE OF internal,
           wa TYPE internal.
    DATA : fieldcat  TYPE lvc_t_fcat,
           lcat      TYPE lvc_s_fcat,
           final_cat TYPE slis_t_fieldcat_alv,
           fcat      TYPE slis_fieldcat_alv,
           top       TYPE slis_t_listheader,
           events    TYPE slis_t_event,
           layout    TYPE slis_layout_alv.
    DATA : newfield  TYPE REF TO data,
           newdata   TYPE REF TO data.
    FIELD-SYMBOLS : <fs1>,
                    <dynamic_value>,
                    <dynamic_cat> TYPE STANDARD TABLE.
    START-OF-SELECTION.
      PERFORM popudate.
      PERFORM buildcat.
      PERFORM loadata.
      PERFORM events USING events.
      PERFORM header USING top.
      PERFORM layout.
    END-OF-SELECTION.
      PERFORM display.
    *&      Form  popudate
          text
    -->  p1        text
    <--  p2        text
    FORM popudate .
      DEFINE popu.
        wa-matnr = &1.
        wa-werks = &2.
        wa-qtyn = &3.
        wa-desc = &4.
        wa-qty = &5.
        append wa to it.
        clear wa.
      END-OF-DEFINITION.
      popu 'material1' 'pla1' 'QTY1' 'quantity1' 100.
      popu 'material1' 'pla1' 'QTY2' 'quantity2' 200.
      popu 'material1' 'pla1' 'QTY3' 'quantity3' 300.
      popu 'material2' 'pla2' 'QTY1' 'quantity1' 400.
      popu 'material2' 'pla2' 'QTY2' 'quantity2' 500.
      popu 'material2' 'pla2' 'QTY3' 'quantity3' 600.
      popu 'material3' 'pla3' 'QTY1' 'quantity1' 700.
      popu 'material3' 'pla3' 'QTY2' 'quantity2' 400.
      SORT it BY matnr.
    ENDFORM.                    " popudate
    *&      Form  buildcat
          text
    -->  p1        text
    <--  p2        text
    FORM buildcat .
      lcat-fieldname = 'MATNR'.
      lcat-datatype = 'CHAR'.
      lcat-seltext = 'Material'.
      lcat-intlen = 18.
      APPEND lcat TO fieldcat.
      CLEAR lcat.
      lcat-fieldname = 'WERKS'.
      lcat-datatype = 'CHAR'.
      lcat-seltext = 'Plant'.
      lcat-intlen = 4.
      APPEND lcat TO fieldcat.
      CLEAR lcat.
      LOOP AT it INTO wa.
        READ TABLE fieldcat INTO lcat WITH KEY fieldname = wa-qtyn.
        IF sy-subrc <> 0.
          lcat-fieldname = wa-qtyn.
          lcat-datatype = 'CHAR'.
          lcat-seltext = wa-desc.
          lcat-intlen = 10.
          APPEND lcat TO fieldcat.
          CLEAR lcat.
        ENDIF.
      ENDLOOP.
      CLEAR lcat.
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
       i_style_table             =
          it_fieldcatalog           = fieldcat
       i_length_in_byte          =
        IMPORTING
          ep_table                  = newfield
       e_style_fname             =
    EXCEPTIONS
       generate_subpool_dir_full = 1
       others                    = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      ASSIGN newfield->* TO <dynamic_cat>.
      CREATE DATA newdata LIKE LINE OF <dynamic_cat>.
      ASSIGN newdata->* TO <dynamic_value>.
    ENDFORM.                    " buildcat
    *&      Form   loadata
          text
    -->  p1        text
    <--  p2        text
    FORM  loadata .
      DATA flag TYPE i.
      LOOP AT it INTO wa.
        flag = 0.
        ASSIGN COMPONENT 'MATNR' OF STRUCTURE <dynamic_value> TO <fs1>.
        <fs1> = wa-matnr.
        ASSIGN COMPONENT 'WERKS' OF STRUCTURE <dynamic_value> TO <fs1>.
        <fs1> = wa-werks.
        CALL FUNCTION 'AIPC_CONVERT_TO_UPPERCASE'
          EXPORTING
            i_input  = wa-qtyn
            i_langu  = sy-langu
          IMPORTING
            e_output = wa-qtyn.
        ASSIGN COMPONENT wa-qtyn OF STRUCTURE <dynamic_value> TO <fs1>.
        <fs1> = wa-qty.
        AT END OF matnr.
          APPEND <dynamic_value> TO <dynamic_cat>.
          CLEAR : <dynamic_value>.
        ENDAT.
        CLEAR : wa.
      ENDLOOP.
    ENDFORM.                    "  loadata
    **&      Form  display
          text
    -->  p1        text
    <--  p2        text
    FORM display .
      LOOP AT fieldcat INTO lcat.
        fcat-fieldname = lcat-fieldname.
        fcat-outputlen = lcat-intlen.
        fcat-seltext_l = lcat-seltext.
        APPEND fcat TO final_cat.
      ENDLOOP.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
         i_callback_program             = sy-repid
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = ' '
         is_layout                      = layout
         it_fieldcat                    = final_cat
      IT_SORT                        =
      I_SAVE                         = ' '
      IS_VARIANT                     =
         it_events                      = events
        TABLES
          t_outtab                       = <dynamic_cat>
    ENDFORM.                    " display
    Regards,
    Aswin.

  • 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.

  • 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.

  • Reg - Reading internal table with multiple record in a single field

    Dear Guru's,
                        i want to read a internal table with field having mutilple entries like
    read table READ TABLE LT_T2 INTO LT_T2_WA WITH KEY HKONT IN ( '0001152430', '0001152930', '0001152410' ).
    But it says comma without preceding colon (after READ?).
    please guide me.....
    thanks & Regards,
    Balaji.S

    ya this is inside the loop.
    plz check....
    loop at lt_t2 into lt_t2_wa.
    READ TABLE LT_T2 INTO LT_T2_WA WITH KEY HKONT IN ( '0001152430', '0001152930', '0001152410' ).
    endloop.
    thanks & Regards,
    Balaji.S

  • 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

  • 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

Maybe you are looking for