Read statement with repeated key field

Hi Experts ,
We  are in the process of UCCHECK in an upgrade program and come across an issue with read statement using repeated key fields which is not allowed in a unicode compatable environment.
            READ TABLE it_vbpa WITH KEY
                                      vbeln = l_vbeln
                                      parvw = '0'
                                      parvw = 'ZN'.
I checked this in 4.6c environment and observed that the Read statement uses the last key value for reading and doesnt consider other values even if the last value is not present in the table  .
I want to know if I can use only that last value for read statement ? If so, what was the use of the repeated key fields in a read statement?
Thanks and Regards
Sanu

Hi,
Your main aim in a upgrade would be to successfully replicate the 4.6x functionalities in the ECC 6 version with the unicode checks. So it would be a safe option to only consider the last key condition. I dont have access to a 4.6C environment. May be it was a mistake corrected by SAP in the new version.
Vikranth

Similar Messages

  • Read statement with duplicate key fields

    Hello,
    I have an internal table(EKBE) with 8 fields
    ebeln ebelp vgabe gjahr belnr budat wrbtr refkey
    populating the first 7 fields from EKBE table with VGABE = 2 and PO#, concatenating the WRBTR and GJAHR to get the Refkey and passing this to the 8th field.
    Using this refkey, getting the document numbers from BKPF.
    I am looping another internal table into a work area and reading the above internal table by passing the ebeln field and I am doing some calculations ,etc.
    A custom table is getting updated from the above work area.
    The issue is-
    The internal table EKBE can have the same PO numbers with the same line item numbers but with different ref key's.
    So, when I am reading the int. tab, it is reading only one record, since I have no other key's to read except EBELN. So for one PO# it is reading only 1 ref key, I cannot use the line item# as a key, as the line item#'s never match, even if they match they could be same PO# with same line item# and different ref key.
    Any inputs highly appreciated.
    Regards,
    Kiran

    Loop on EKBE Internal table as well to fetch all entries of PO. Use Parallel cursor to optmize performance.
    http://wiki.sdn.sap.com/wiki/display/Snippets/ABAPCodeforParallelCursor-Loop+Processing

  • How to use Read table with out key fields

    Hi Experts,
    I need to retrieve the 2 internal tables data into single table.
    I have 3 common fields between the 2 tables but I don't have the Key fields. Then how to use the read table in this.
    Thanks in Advance.
    Edited by: satish4abap on Mar 10, 2010 9:39 AM

    Hi Satish,
    Key fields are nothing but the common fields with which you can pick the data from the second internal table.
    If you can paste your Internal table fields then we will be able to assit you better.
    However, in genral scenarios you can use it as below :
    In this scenario, we are putting data from 3 internal table to another single internal table.
    LOOP AT T_PRGEN INTO WA_PRGEN.
           WA_FINAL-GUID_PR       = WA_PRGEN-GUID_PR.
           WA_FINAL-ATTR20A       = WA_PRGEN-ATTR20A.
           WA_FINAL-ATTR05A       = WA_PRGEN-ATTR05A.
           WA_FINAL-ATTR05B       = WA_PRGEN-ATTR05B.
           WA_FINAL-ATTR05C       = WA_PRGEN-ATTR05C. " + DG1K902190
           WA_FINAL-ATTR10A       = WA_PRGEN-ATTR10A.
        READ TABLE T_V_TCAV201 INTO WA_V_TCAV201 WITH KEY ATTRV20 = WA_PRGEN-ATTR20A BINARY SEARCH.
        IF SY-SUBRC = 0.
          WA_FINAL-TEXT1   = WA_V_TCAV201-TEXT1.    "SUBID-TEXT1
        ENDIF.
        READ TABLE T_PNTPR INTO WA_PNTPR WITH KEY GUID_PR = WA_PRGEN-GUID_PR BINARY SEARCH.
        IF SY-SUBRC = 0.
           WA_FINAL-PRVSY  = WA_PNTPR-PRVSY.   "PROD NO
           WA_FINAL-GRVSY  = WA_PNTPR-GRVSY.   "LOGICAL SYS GROUP
        ENDIF.
      append wa_final to t_final.
    endloop.

  • Read Statement with Single key with multiple values

    Dear Friends,
    In ECC 4.6c, I wrote statement like this.
    Read table message with key type = 'E' or 'S'.
    if sy-subrc = 0.
    Populated the message log to output internal table.
    endif.
    But when i transported to QA which is ECC 6.0, it is giving error.
    Can any one help me in modifying this qurey.
    Plse read my question thoroughly and reply me back.
    Regards,
    Santosh Kumar M

    Hi,
    You can't use OR condition with READ table. it is always AND condition.
    Here 2 ways for ur problem.
    If u want to have just one message in the log then use multiple reads.
    READ TABLE message WITH KEY type = 'E'.
    If sy-subrc IS INITIAL.
    populate log.
    ELSE.
    READ TABLE message WITH KEY type = 'S'.
    If sy-subrc IS INITIAL.
    populate log.
    ENDIF.
    ENDIF.
    If u want all messages then u have to loop through and populate the log as sugested by Vijay but
    Without exit in loop.(Since u need all the messages)
    LOOP AT message into wa WHERE type = 'E' or type = 'S'.
    populate log.
    ENDLOOP.
    Thanks,
    Vinod.

  • READ statement with dynamic key

    Can i READ a dynamic table with a dynamic key combination?
    READ TABLE <dyn_sel_table>
      INTO       <dyn_sel_wa>
      WITH KEY   ? .

    yes i guess u can do it
    READ TABLE <dyn_sel_table>
    <b>ASSIGNING</b> <dyn_sel_wa>
    WITH KEY <field1> eq ...

  • READ statement with binary search

    Hi friends,
    I know that while using the READ statement that we have to sort data and use BINARY SEARCH  for faster search.
    I have a situation
    following are internal table contents
    belnr          agent    action
    9000001   name1    BRW
    9000001   name1    API
    when i use READ statement with where condition (  ( belnr - 9000001 ) and  ( action = 'BRW' ) )  with binary search then the SY_SUBRC value is 4.
    if i remove the binary search then its giving SY-SUBRC value 0.
    Can anybody explain why BINARY SEARCH fails.
    Points will be rewarded for correct answers.
    Thanks and regards,
    Murthy

    try this i am not getting sy-subrc 4
    TYPES:BEGIN OF TY_ITAB,
    BELNR TYPE BELNR,
    AGENT(30),
    ACTION(5),
    END OF TY_ITAB.
    DATA:IT_TAB TYPE TABLE OF TY_ITAB,
         WA_TAB TYPE TY_ITAB.
    WA_TAB-BELNR = 9000001.
    WA_TAB-AGENT = 'name1'.
    WA_TAB-ACTION = 'BRW'.
    APPEND WA_TAB TO IT_TAB.
    CLEAR WA_TAB.
    WA_TAB-BELNR = 9000002.
    WA_TAB-AGENT = 'name 2'.
    WA_TAB-ACTION = 'API'.
    APPEND WA_TAB TO IT_TAB.
    loop at it_tab into wa_tab.
    read table it_tab into wa_tab with key belnr = wa_tab-belnr  binary search .
    write: sy-subrc, wa_tab-agent.
    endloop.

  • JPA - How to map relation with NON-KEY field.

    Hello.
    Problem with mapping is NullPointerException when calling EntityManager em.createNativeQuery:
    Table1 (Bm_Treeassoc):
    MY_ID (Primary Key)
    BOOKMARKID (-> MY_ID in Table2)
    Text
    Table2 (Bm_Bookmark):
    MY_ID ( Primary Key)
    Text
    //CLASS BmTreeassoc
    @OneToMany(targetEntity=BmBookmark.class, mappedBy="treeMaster", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
         private BmTreeassoc treeMaster = null ;
    //CLASS BmBookmark
    @ManyToOne(targetEntity=BmTreeassoc.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL, optional = true)
         @JoinColumn(name="MY_ID", referencedColumnName="BOOKMARKID", unique=true)     
         private ArrayList<BmBookmark> bookmarks = new ArrayList<BmBookmark>() ;
    This Leads to the exception.
    Mapping form MY_ID to MY_ID instead BOOKMARKID will not throw the exception,
    so I assume I have a problem with the KEY Field?
    Any ideas?
    Kind regards
    Frank

    OK,
    after reflecting (after maniacally trying for days).
    Here is the answer by myself:
    I do not use the mapping stuff at all no more.
    I solved my join by using a view:
    CREATE VIEW SAPDEMO.VTree
         AS SELECT t.TreeID, b.MY_ID, b.CLIENTID, b.Nickname, u.URL
         FROM SAPDEMO.BM_TreeAssoc as t
              JOIN SAPDEMO.BM_BOOKMARK as B ON t.BookmarkID = b.MY_ID
              JOIN SAPDEMO.BM_URL as U ON b.URL = u.MY_ID
    Create the entity and then do a:
    select * from VTREE where clientid=1 and treeid=446
    Works great, simple, fast.

  • Multiple entries in a Z table with same key fields

    Hi
    I do have a ZTABLE, with 3 key fields defined earlier. It consists of around 1 lakh records. Later onwards, two of the non keyfields have been made to key fields.
    This table is being populated with records at the time of saving a ztransaction.
    But some times, the system is updating the same records, some times twice, sometimes thrice, etc. I got to know that all fields (both key fields and non-key fields) of the record are same. That is, records are being updated in to the database table n number of times may be depending of some false logic in the program.
    If I tried to enter the same using SM30, it is showing me an error message stating that the record is already existing.
    What can be the reson?

    Hi,
    It seems there is some kind of data inconsistency..try to get all the records and then delete the duplicate entries through program....Now once u r done , from now onwards there won't be any duplicate entiers.,also before updating table use filters to avoid the duplication..
    Regards,
    Nagaraj

  • Sender file adapter Adapter with out Key field

    Hi All
                 i do have have a requirment ,Sender file adapter , for FCC but file is  with out Key field
    HEADER>
    <DATA1>
    <DATA2>
    <DATA3>
    <HEADER>              file structure
    <ITEM>
    <ITEM1>
    <ITEM2>
    <ITEM3>
    <ITEM
    and the file si
    '10001,20081902,US
    10,soda,1
    30,soda,4
    40,soda,5
    10002,20081902,US
    10,steel,1
    30,steel,4
    40,steel,5
    , and i need to identify the Header and Item using there lenght only , please anyone as idea abt this help me

    Why to post the same question TWICE... in 30 min ? you don't like the answers ?
    File content Conversion Issuse for a Sender File Adapter

  • Can we create table maintence generator with out key field

    Hi,
    I have created a ztable in that client is the primary key as I don't want any other field as primary key.
    For this  i have created table maintenace generator but when i open it in sm30 blnak screen is coming.
    Here my question is can we create a table maintenace generator with out key field other than MANDT.
    If it's possible please let me know.
    Regards
    hari

    >
    Mathews Joseph wrote:
    > I agree to the above points , but you can try one thing.
    >
    > When you create the table maintenance screen , from SE11 you assign a function group.
    >
    > Double click on the function group and you can go to the main program and open that in SE80, take screen generated and try manually adjusting the screen and putting the non key field details...
    >
    > Not sure this will work , but may be you can give it a try.
    >
    > Mathews
    But the table could hold at most a single record (per client). The design is lacking.
    Rob

  • How to read from an internal table with multiple key fields.

    Hi All!!
    I want to read from an internal table having keys as k1,k2,k3.
    How can I use read statement to read an entry having this as the key fields.
    Thanks in adavance..
    Prabhas Jha

    hi there
    use:
    sort itab by K1 K2 K3.
    read table itab into wa with key K1 = value 1
                                                  K2 = value2
                                                  K3 = value 3
                                                   BINARY SEARCH.
    where:
    itab is ur internal table
    wa is the work area with the same line type as the itab
    cheers
    shivika

  • Issue with read statement with one more key missing in mapping

    Hi All ,
    I have such data in two internals table :
    IT_bdc
    vbeln            posnr
    90000593     10
    90000576     10
    90000672     10
    90000672     20
    90000672     30
    it_konv
    kbetr          vbeln
    6250          90000576
    12160000          90000593
    500000          90000672
    600000          90000672
    700000          90000672
    My current program statement is :
    LOOP AT it_bdc.
    READ TABLE it_konv WITH KEY
          vbeln = it_bdocs-vbeln.
      currency =   it_konv-waers.
    endloop.
    as you can see the posnr is missing in it_konv how can i modify this read statement so
    that vbeln posnr from it_bdc should get correct kbetr from it_konv.
    Kindly help in this mapping.

    Hi
    sort it_konv by vbeln
    then
    loop at it_bdc.
    read table it_konv with key vbeln = it_bdc-vbeln binary search.
    if sy-subrc = 0.
    perform your logic/task.
    endif.
    endloop.
    also it depends what you want to do after reading it_konv.
    in my logic if there is a vbeln in it_konv which s present in it_bdc then sy-subrc will be 0
    and you can perform your logic.
    and if there will be no matching vbeln in it_konv then sy-subrc will not be 0.
    check the values in debugging.
    Thanks
    Lalit

  • Read statement with key syntax

    Hi all,
    In read statement, is there a possibility to use 'contains string (CS)' instead of '=' in with key?
    I have a requirement to fetch from an internal table, the record whose field1 value contains a particular string.
    Thanks,
    David.

    HI
    it won't accept CS in read table clause. syntax error will be displayed.
    for more clarity just execute the falloing code.
    DATA: BEGIN OF ITAB OCCURS 0,
            MATNR LIKE MARA-MATNR,
            ERSDA LIKE MARA-ERSDA,
            ERNAM LIKE MARA-ERNAM,
          END OF ITAB.
       SELECT MATNR
              ERSDA
              ERNAM
              FROM MARA
              INTO TABLE ITAB
              WHERE ERNAM = 'BOHNSTEDT'.
       IF SY-SUBRC EQ 0.
         SORT ITAB BY MATNR ASCENDING.
         READ TABLE ITAB WITH KEY MATNR CS '3'.
         IF SY-SUBRC EQ 0.
          WRITE: ITAB.
         ENDIF.
       ENDIF.

  • Reading data from BSEG table with Non-key fields in where clause

    Hi All,
        I have to read data from BSEG table based on WBS element field (PROJK). As I'm not passing key fields to WHERE clause system couldnt run the select statement. Since BSEG is a cluster table I cant even create secondary index on PROJK field.
       Could you please tell me, how to improve its performance.
    Regards
    Jaker.

    SELECT bukrs
                 belnr
                 gjahr
                 shkzg
                 dmbtr
                 hkont
                 lifnr
                 matnr
                 werks
                 menge
                 meins
                 ebeln
            FROM bseg
            INTO TABLE it_bseg
            PACKAGE SIZE 10
            FOR ALL ENTRIES IN it_final
            WHERE  bukrs EQ it_final-bukrs
               AND belnr EQ it_final-belnr
               AND gjahr EQ it_final-gjahr
               AND buzei EQ it_final-buzei
               AND hkont EQ it_final-hkont
               AND werks IN s_werks.
    By using package and fetch from BSEG table. gathering all other information to a final internal table.This will reduce the hit to database.And also try to put that data in hashed internal table which is it_bseg....then definetly improve the performance.
    <REMOVED BY MODERATOR>
    Dara.
    Edited by: Alvaro Tejada Galindo on Apr 21, 2008 12:47 PM

  • Read Statement with key

    Hi,
    How can I modify this Read statement as Read with same
    keys is not allowed.
    DATA: BEGIN OF itab OCCURS 0,
          matnr LIKE marc-matnr,
          werks LIKE marc-werks,
          steuc LIKE marc-steuc,
           END OF itab.
    wgc_werk = 'BR10',
    wgc_werk1 ='BR20'.
        READ TABLE itab WITH KEY matnr = it_mvke-matnr
                                         werks = wgc_werk
                                         werks = wgc_werks1
                                         BINARY SEARCH.

    Hi,
    You are trying to use read statement inorder to fetch a single record isn't it? if you are trying to search for a record having either
    WERKS = 'BR10' or WERKS = 'BR20' then you need to modify your code.
    i.e. as below
    DATA: BEGIN OF itab OCCURS 0,
    matnr LIKE marc-matnr,
    werks LIKE marc-werks,
    steuc LIKE marc-steuc,
    END OF itab.
    wgc_werk = 'BR10'.
    wgc_werk1 ='BR20'.
    READ TABLE itab WITH KEY matnr = it_mvke-matnr
    werks = wgc_werk.
    if sy-subrc ne 0.
       READ TABLE itab WITH KEY matnr = it_mvke-matnr
                                                   werks = wgc_werk1.
       if sy-subrc eq 0.
          "your post reading process here
       endif.
    endif.
    BINARY SEARCH.
    Reward points if this helps,
    Kiran

Maybe you are looking for

  • Debug Problem in Indesign cs5.5

       We are having Plugin for adobe indesign cs5.5 and installed adobe indesign debugger.. While debugging our source code we are getting the values of integer data types, but we are not known the values of data types related to PMString, PMMatrix, PMR

  • Obsolete keywords/techniques in ABAP HR

    hi experts, i am working on PY and time implimentation on ECC 6.0 , i need to have a refrence of Obsolete keywords/techniques in ABAP HR. kindly provide me the same or link to source to get the same. regards, Rahul

  • Jar files for tcuseroperation

    I am using tcuseroperation in 11g OIM It is throwing error may be because of the jar files. How to get these jar files from 10g?

  • Document transfer from Solution Manager into ARIS

    We have sucessfully transfer projects content from Solman into ARIS. Unfortunatelly links to documents cannot be found. To my knowledge links from General documentation answell as from Project documentation should be able to find in ARIS after the tr

  • What happens in the background when a job is scheduled!!!

    Hi,    Can anyone tell me what exactly happens in the background in SAP when a job is set to "Scheduled" ( sm37) . Can v see the code executed in the background during the transtion from " Scheduled" state of a job to" Cancelled" to "Complete" state.