How to restrict the records in source qualifier?

What is your source system?If it's Oracle, you could use the following trick:Wrap your original SQL query (which retrieves all the columns which you need plus "ROWNUM AS row_num") into a "common table expression" which returns records based on this "row_num", like this: SELECT a1, a2, a3,... an FROM(select *, rownum as row_num FROM tab1, tab2 WHERE...)WHERE row_num between 11 and 15 Other than that I would recommend you insert an Expression transformation into your mapping right after the Source Qualifier. Within this EXP, define a variable port "v_rownum" of type BigInt with this expression:  v_rownum + 1Then define an output port ROWNUM of type BigInt and set it to this expression:  v_rownumForward all the data from the SQ plus "ROWNUM" from the EXP into a Filter.Define two mapping parameters $$FIRST_ROW and $$LAST_ROW of type BigInt (if possible, I can't try myself at this moment).Set the Filter expression like this:  ROWNUM >= $$FIRST_ROW AND ROWNUM <= $$LAST_ROW This works for all sorts of source systems. Regards,Nico

I Have loading 10 record on first run , inserted in DB,and again load 5 records in second run in this restrict the first 10 records in source qualifier and took only 5 records to the target?

Similar Messages

  • How to restrict the record selection for PLPO table .

    Hi,
    Am selecting 'plnnr' and 'vornr' from PLPO table . For one Plnnr their are multiple Vornr including 0001 & 9999.
    I want to select only those entries which have only Vornr 0001 & 9999.
    Ex : 1) Plnnr - 5689
               Vornr - 0001,2536,8989,9999
           2) Plnnr - 8787
               vornr -  0001
           3) Plnnr - 5936
               vornr -  9999
           4) Plnnr - 2345
               vornr -  0001,9999
    Here for this example i want to select only the entry with Plnnr = 2345 as it only contains 0001 & 9999.
    Can any one let me know how to get this in a select query.
    Your help is much appreciated.
    Thanks in advance.   
    Ravi Kasnale.

    Hi
    Try with below code
    RANGES:r_vornr FOR plpo-vornr.
    TYPES:BEGIN OF ty_plpo,
    plnnr TYPE plpo-plnnr,
    vornr TYPE plpo-vornr,
    END OF ty_plpo.
    DATA:it_plpo_temp TYPE STANDARD TABLE OF ty_plpo.
    DATA:it_plpo TYPE STANDARD TABLE OF ty_plpo.
    DATA:it_plpo_temp1 TYPE STANDARD TABLE OF ty_plpo.
    DATA:wa_plpo_temp1 TYPE ty_plpo.
    DATA:v_line TYPE sy-tabix.
    START-OF-SELECTION.
      r_vornr-sign = 'I'.
      r_vornr-option = 'EQ'.
      r_vornr-low = '0000'.
      CLEAR:r_vornr-high.
      APPEND r_vornr.
      r_vornr-sign = 'I'.
      r_vornr-option = 'EQ'.
      r_vornr-low = '9999'.
      CLEAR:r_vornr-high.
      APPEND r_vornr.
      SELECT plnnr vornr FROM plpo INTO TABLE it_plpo_temp1 WHERE vornr IN r_vornr.
      CLEAR:it_plpo[].
      LOOP AT it_plpo_temp1 INTO wa_plpo_temp1.
        CLEAR:it_plpo_temp[].
        it_plpo_temp[] = it_plpo_temp1[].
        DELETE it_plpo_temp WHERE plnnr <> wa_plpo_temp1-plnnr.
        DESCRIBE TABLE it_plpo_temp LINES v_line.
        IF v_line EQ '2'.
          APPEND LINES OF it_plpo_temp TO it_plpo.
        ENDIF.
      ENDLOOP.
      SORT it_plpo BY plnnr.
      DELETE ADJACENT DUPLICATES FROM it_plpo COMPARING plnnr.
    Regards
    Srilaxmi

  • How to restrict the last record and not moving to next reocrd

    1) how to restrict the last record and not moving to next reocrd.
    2) Also for the F6 key(for new record).

    When you are on the last record, next-record will create a new one, so that my question is do you want to forbid new record creation.
    Francois

  • How to restrict the number of Records into the Table?

    Is there any way that I can restrict the number of records can be entered into the table?
    For example I have created a table TAB1 with size category 0( zero).
    User dont want to enter more than 100 values, How to restrict the number entries? Whether Basis can do it?
    Regards,
    Prathap

    Hi Prathap,
    You can write a code in table maintenance events to restrict the number of Records added into the Table to constant.
    Solution:
    Se11 -> enter table name (TAB1) -> F6 -> Utlities -> Table maint. generator -> Envirnment -> modification -> events -> write here the form routine name.
    Double click on routine name. You will get into include section of the code. Write here code like:
    IF current_rec_num > 100.
       messgae error 'Entry restriceted to 100'
    ENDIF.
    Somewhat this way you can achieve your target.
    Regards,
    Sachin

  • How to restrict the no of rows to be displayes in ALV in webdynpro

    Hi All,
    Can any one suggest how to restrict the no of records to be displayed in the portal in the ALV through webdynpro ABAP.
    Thanks & Regards,
    Sreelatha Gullapalli.

    HI,
    If you want to change the Source (Design time) then you can do that via the alv configuration.
    Something like this in the component SALV_WD_COLUMNS_UI
    lr_available_model->if_salv_wd_table_settings~set_visible_row_count( lc_row_count ).

  • Regarding how to delete the record in internal table

    Hi experts ,
    how to delete the record in intarnal table after validating the data,
    if record contains invalid fields?
    i am giving my code see this and give me the answer?
    loop at it_data into wa_data .
    Validate  Cost Center
        READ TABLE it_kostl INTO wa_kostl WITH KEY kostl = wa_data-kostl BINARY SEARCH.
        IF sy-subrc NE 0.
          PERFORM update_error_log USING wa_data
                                         text-004.
        ENDIF.
    Validate source file material ( material number )
    loop at it_mara into wa_mara .
      read table it_ausp into wa_ausp with key atwrt = wa_data-i_matnr .
               if sy-subrc NE 0 .
       PERFORM update_error_log USING wa_data
                                           text-002.
    delete it_data-objek .
         else.
      read table it_mara into wa_mara with key  matnr = wa_ausp-objek .
           if sy-subrc EQ 0 .
           wa_data-objek = wa_mara-matnr.
           wa_data-matkl = wa_mara-matkl.
         ENDIF.
         Modify it_data from wa_data  .
      endif.
    *endloop.
    Validate unit of measure (unit)
        READ TABLE it_t006 INTO wa_t006 WITH KEY msehi = wa_data-unit .
        IF sy-subrc NE 0.
          PERFORM update_error_log USING wa_data
                                         text-003.
        endif.
    Validate delivery location ( storage location )
        READ TABLE it_lgort INTO wa_lgort WITH KEY del_loc = wa_data-del_loc.
        IF sy-subrc NE 0.
          PERFORM update_error_log USING wa_data
                                         text-001.
             if wa_data-flag ='x' .
          delete it_data from  wa_data .
        endif.
        ENDIF.
    endloop.

    Hi Naren,
    First get the index number of the IT_data table and store it in one variable whose declaration like this.
    data: tabix type sy-tabix.
    while reading the internal table it_data set the tabix variable.
    tabix = sy-tabix.
    Instead of  the above use below one.
    Delete it_data-objek
    Use the Below statement it will delete  the row from the internal table.
    Delete it_data-objek index tabix
    Thanks,
    Chidanand

  • How to restrict the duplicate values in lov column of VO based Adv Table

    Hi Gurus,
    I want to restrict the duplicate values at lov which is a colunm in an Adv Table.
    If user enters duplicate values then first it should show an error msg that Duplicate values have been entered.
    After the duplicate values have been removed, then the user can save all the values in the table.
    My Adv Table is based on a VO.
    The link how to restrict the duplicate values at form level
    talks about Adv Table based on a EoVO, which doesnot work in my case.
    My Approach,
    I am iterating through RowSetIterator and committing through PROCEDURE.
    I am able to avoid duplicate entry through a function checkRespId. (given below)
    Below code is for iterating and committing.
    public void saveline(String reqid,String userid)
    System.out.println("RequestId/saveline"+reqid);
    System.out.println("UserId/saveline"+userid);
    OAViewObject vo = (OAViewObject)getRespLineVO1();
    RespLineVORowImpl row = null;
    int fetchedRowCount = vo.getFetchedRowCount();
    RowSetIterator deleteIter = vo.createRowSetIterator("deleteIter");
    if (fetchedRowCount > 0)
    deleteIter.setRangeStart(0);
    deleteIter.setRangeSize(fetchedRowCount);
    for (int i = 0; i < fetchedRowCount; i++)
    System.out.println("Inside the for LOOP");
    row = (RespLineVORowImpl)deleteIter.getRowAtRangeIndex(i);
    String respoidid = row.getAttribute("ResponsibilityId")+"";
    String respname = row.getAttribute("ResponsibilityName")+"";
    String stdate = row.getAttribute("StartDate")+"";
    String enddate = row.getAttribute("EndDate")+"";
    String linestatus ="A";
    if(userid!=null)
    if(!(respoidid.equals("null")) && respoidid!=null)
    String checkingrespid=null;
    checkingrespid = checkRespId(userid,respoidid);+contains no if not duplicate and yes if its duplicate+
    System.out.println("checkingrespid for Resp with ID :"+respoidid+"exists or not "+checkingrespid);
    if(checkingrespid.equals("No"))
         String message, result = null;
    Connection txn = getOADBTransaction().getJdbcConnection();
    try
    calling PROC ...
    catch(Exception e)
    message = "Error in Inserting into line" + e;
    throw new OAException(message, OAException.ERROR);
    else
    throw new OAException("You have entered duplicate no. of values", OAException.ERROR);
    else
    System.out.println("respoidid is null");
    break;
    deleteIter.closeRowSetIterator();
    public String checkRespId(String userid,String respoidid)
    String createRow="No";
    OAViewObject vo = (OAViewObject)findViewObject("CheckRespVO1");
    if (vo != null)
    vo.setWhereClauseParams(null);
    vo.setWhereClauseParam(0, userid);
    vo.setWhereClauseParam(1, respoidid);
    vo.executeQuery();
    System.out.println("ROW COUNT IS "+vo.getRowCount());
    if(vo.getRowCount()>0)
    createRow="Yes";
    else
    createRow="No";
    return createRow;
    Problem:
    I remove the duplicate entries and click on save and get this error.
    Unable to perform transaction on the record. \nCause: The record contains stale data. The record has been modified by another user.
    \nAction: Cancel the transaction and re-query the record to get the new data.
    Thanks,
    Sombit

    Hi Anil,
    I am trying out your code but stuck in inserting the rows
    using your code in URL: http://oracleanil.blogspot.com/2010/09/oaf-passing-table-type-object-to-oracle.html
    I am always getting the same exception i.e COde blast in when I run.
    My modified code is:
    String[] as = null;
    Number[] vNumber = null;
    Number[] vNumberrespid = null;
    Number reqidnumber = null;
    reqidnumber = new Number(Integer.parseInt(reqid));
    Connection txn = getOADBTransaction().getJdbcConnection();
    String mCreateSearchRequestStatement = null;
    OAViewObject vo = (OAViewObject)findViewObject("RespLineVO1");
    int j = vo.getFetchedRowCount();
    try
    System.out.println("abouce try");
    vo.reset();
    if (vo.getFetchedRowCount() > 0)
    System.out.println(String.valueOf("Fetched row count ").concat(String.valueOf(vo.getFetchedRowCount())));
    int i = 0;
    as = new String[j];
    vNumber = new Number[j];
    vNumberrespid = new Number[j];
    while (vo.hasNext())
    vo.next();
    System.out.println(String.valueOf("Inisde the do while loop").concat(String.valueOf(i)));
    vNumber[i] = (reqidnumber);
    vNumberrespid = ((Number)vo.getCurrentRow().getAttribute("ResponsibilityId"));
    as[i] = String.valueOf(vo.getCurrentRow().getAttribute("ResponsibilityName")).concat(String.valueOf(""));
    System.out.println("Request ID "+reqidnumber[i]);//getting null even there is some value selected
    System.out.println("ResponsibilityId "+vNumberrespid[i]);//getting null even there is some value selected
    System.out.println("Resp Name "+as[i] );//getting null even there is some value selected
    i++;
    CallableStatement cs = txn.prepareCall("{call XX_PassTableType.XX_PassTableType_prc(:1, :2,:3)}");
    ARRAY array = new ARRAY(new ArrayDescriptor("APPS.JTF_NUMBER_TABLE", txn), txn, vNumber);
    ARRAY arraynew = new ARRAY(new ArrayDescriptor("APPS.JTF_NUMBER_TABLE", txn), txn, vNumberrespid);
    ARRAY array1 = new ARRAY(new ArrayDescriptor("APPS.JTF_VARCHAR2_TABLE_100", txn), txn, as);
    cs.setArray(1, array);
    cs.setArray(2, arraynew);
    cs.setArray(3, array1);
    cs.registerOutParameter(3, 2003, "JTF_VARCHAR2_TABLE_100");
    cs.execute();
    ARRAY error = null;
    error = (ARRAY)cs.getArray(2);
    if ((error != null) && (error.length() > 0))
    System.out.println(String.valueOf("Error is ").concat(String.valueOf(error.getArray())));
    String[] retError = new String[j];
    retError = (String[])error.getArray();
    System.out.println(String.valueOf("Error in saving data").concat(String.valueOf(retError[0])));
    cs.close();
    catch (Exception exception)
    throw new OAException("code blast", OAException.ERROR);
    Thanks,
    Sombit

  • How to restrict the delivery quantity not more than target quantity?

    Dear Gurus,
    How to restrict the delivery quantity not more than target quantity in a scheduling agreement? I think there are 2 methods.
    1. I found that setting 0 in Overdelivery Tolerance Limit in Info Record is not effective. Why?
    2. I want to set E for the message but can't find the place. The message is generated when entering and saving quantity as delivery quantity that is larger than target quantity. How can I set E to a message (067, as I remember)
    Any other effective method? Please advice. Thanks.
    Regards,
    David

    Dear all,
    It is not OK after checking everywhere you mentioned. I tested in 2 clients. In the development enviroment client, it works whatever E or W. In test enviroment, it does not work (meassge is W).
    I think there must be somewhere besides of those you menetioned.
    I notes that SAP help for the overdelivery tollerance setting of scheduling agreement: 
    Overdelivery Tolerance Limit
    Percentage (based on the order quantity) up to which an overdelivery of this item will be accepted.
    Dependencies
    If you have set the indicator in the Partial delivery/Item field to 'D' (partial delivery allowed), this takes priority. It makes no sense to define a tolerance limit for overdelivery in such case.
    Where can I see: 'the indicator in the Partial delivery/Item field to 'D' (partial delivery allowed)'? I want to check it.
    Pls help! Thanks.
    Regards,
    David

  • How to do the Record Level commit in DB Adapter

    Hi,
    I am using Oracle JDeveloper 11.1.1.6.0 and SOA server 11.1.1.6
    Problem Description_
    I am fetching multiple records using File Adapter in BPEL process, After Fetching I am writing those records in Database using Database Adpter.
    If any error records comes the database adpater rollback the complete transaction and none of the records is inserted into the Database.
    **Can anyone please tell me how to do the record level commit in Database Adapter so that All the success records can be inserted into the database except the Failure record*.*
    I dont want to call the Database adpater in loop multiple times to insert each record as it hampers the performance.
    Thanks in Advance
    Sunil

    I believe you are polling a file and inside the BPEL, inserting the records into the database using the database adapter.
    so according to your requirement you can do any one of the following things...
    1. Instead of using the database adapter for inserting the record, you can call a Stored Procedure which it takes the record fields as input and it inserts the record into the table and does a commit at the end. when you follow this approach, make sure your data source is defined as Non-XA, otherwise you will face some errors.
    2. If you are using the database adapter insert operation only, inside the BPEL, for the partnerlink of the database adapter, go to the properties and for the property "idempotent", give a value of false.
    by doing this, what happens means, after calling the database adapter from BPEL through the invoke activity, the transaction is committed and from the next activity i mean after the invoke, a new transaction will be started but it will use the same thread though
    3. If you are using the database adapter insert operation only, inside the BPEL, for the partnerlink of the database adapter, go to the properties and for the property "NonBlockingInvoke", give a value of true.
    by doing this, what happens means, the database adapter insert operation will happen in a separate transaction and it will be committed, inside the BPEL after the invoke activity, a new thread and transaction will be started
    4. Also, if you are using the database adapter insert operation, don't follow the steps as mentioned in either 2 or 3, you can simply put a dehydrate activity after the invoke activity.
    According to your requirement, all the four approaches works. But my personal feeling, don't go for 4, instead 1 is better, 2 or 3 is also good.
    Hope this helps,
    N

  • How to restrict Overwritten records of Info-Cube  in Query

    Hi ,
    In query i am able to see the overwritten/replaced records with Zero values as well the same records with new values i.e. same record with in 2 lines one with zero value and other with replaced value.How i can restrict that only new record should be shown in Query.
    With regards,
    Abhishek Kumar

    As in InfoCube if a new record is inserted with same key fields it add the previous record with -ve values and new record with new values having same key fields.Now i can see these records in Info-Cube but when it comes to query it shows all the records ,one with the zero value and the same with the new values.Question is how i can restrict the record with zero value.
    Abhishek Kumar

  • How to restrict the changes in Relesed PO?.

    Hi all,
    How to restrict the users to make a changes in the Released PO?. User should make the changes only if it is unreleased by the respective codes.
    1. Is there any user parameters like functional authorisation?
    2. I have already suggested two solutions to the clients that
        1. To restrict the authorisation of TCodes ME22n at the user level, but it's not a suitable solution, if user want to make any changes before releasing, then system is not allow to do the changes.
        2. I have made release indicator as a 1 - not changeable if it is released, in release strategy settings. But the system is not allowing the all the users including release codes to make the changes?.
    If there is any solution, please reply immediately.
    with regards,
    Raja.

    hi,
    if u set release indicator 1, after release is taken place, for any changes, u need to revoke the release. and then change the PO.
    even u cant directly block the changes to already released PO, because, in future if at all qty or some changes is required to change, it should allow u to change!

  • How to edit the records in error stock.

    Hi Experts,
                 i have error records in error stack and the remaining records are loaded successfuly . here my doubt is how to edit the records in error stack because its not giving the edit option .
    i want to get the edit option means i need to delete the request in target r wt ?
    and there are two more targets is there below this process .
    Advance Thanks.
    Regards
    SAP

    HI
    If you have less number records in this request(which you extracted now), delete that request from all the targets and reload again with option Valid records update, reporting not possible.
    this is the option which is recommended.
    follow the below 2 docs as well.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/80dd67b9-caa0-2e10-bc95-c644cd119f46?QuickLink=index&overridelayout=true
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/007f1167-3e64-2e10-a798-e1ea456ef21b?QuickLink=index&overridelayout=true
    Regards,
    Venkatesh
    Edited by: Venkateswarlu Nandimandalam on Jan 24, 2012 4:35 PM

  • How to delete  the record  of saved HRA Details...

    Hi Experts,
    I have put the details of HRA Correctly.But while updating HRA In 0008 Infotype i wrongly updated the wagetype,How should i change the Wagetype.
    When i m trying to delete it is showing  RECORD CAN NOT BE DELETED (TIME CONSTRAINT 1).
    How can delete the record.
    Thanking u .
    Sai

    Hi
         Hope doing well ........ No need to delete any infotype but u can go to PA30 and in change mode their u can delete the wagetype which is wrongly entered
    Rajeshk

  • HOw to view the records in a structure qaqee ?

    hi every one ,
    we can view the tble through SE16 
    HOw to view the records in a structure qaqee ?
    Thanks in advance

    Hello,
    Please check the link
    http://help.sap.com/saphelp_erp60_sp/helpdata/EN/90/8d7301b1af11d194f600a0c929b3c3/content.htm
    You can view the struture in SE11 t-code for its components.
    Regards,
    Shailesh

  • How to restrict the job start conditions (only "Immediate" type) ?

    Hi,
    We allow our users to schedule and execute in background mode transactions (example IP19, IW38). We gave them for that authorizations (object S_BTCH_JOB with LIST, PROT, RELE and SHOW - objetct S_PROGRAM with BTCSUBMIT).
    We would like that users can schedule and execute their jobs only with the u201CImmediateu201D job start condition (in the Start Time screen for the type of start condition : Immediate, Date/Time, After job, After event, or At operation mode).
    Another solution: prohibit the scheduling and the execution background job in a certain time interval ...
    How can restrict the job start conditions ?
    Thank you.
    Patrice.

    Hi Jan,
    Yes, sa38 makes it possible indeed to execute in background into immediate mode a job but
    the user have to know the name of the program to be carried out ...
    The user knows only the name of these transactions trade. For example, IW38.
    In the menu of this transaction, SAP gives the possibility to execute in background :
    Program --> Execute in Background --> display of Start Time screen for the type of start condition :
    Immediate, Date/Time, After job, After event, or At operation mode).
    It is at this time there that we want that the user can only choose the "immediate" mode.
    We must thus prohibit the other choices (Date/Time, After job, After event, or At operation mode) ... and
    and we don't know how to restrict these other options in this screen "Start Time screen for the type of start condition".
    Thank you.
    By.

Maybe you are looking for

  • Oracle 10g on suse 9.1 Professional

    I recently moved to Linux suse 9.1 from the Windows background and I need to install Oracle 10g Database on Suse. I'll be glad to get a step by step instruction on installing oracle10g on suse Linux 9.1

  • Extending customer and vendor master idoc

    Hi, Please explain me for what fields or data debmas and cremas should be extended. Thanks. Moderator message: please do your own research before asking. Edited by: Thomas Zloch on Jan 5, 2011 1:49 PM

  • What resolution does Pages export Images to EPUB?

    I was wondering what resolution Pages09 Exports images to EPUB (which are then readable in iBooks2?) In other programs from Adobe and others you can control the Image conversion Resolution before you Click "Export" to EPUB?

  • Broadcasting Bex Report via email

    Hi I just want to know how can we broadcast Bex report from EP Portal to Email.  When I execute a Bex report, upon rt click I get to see Broadcast and Export Option. Can anybody explains me in detail how can we broadcast a Bex Query via email. Please

  • Change src of iframe in web page widget (CP 8)

    Hi there. I would like to know how can I dynamically change the src attribute of <iframe> defined in Web Widget in CP 8. I have tried  many things (for example getElementsById() command, written as an action of CP button) but it didn´t work. I´ve hea