Parallel insert blocked on business table

Hi guru, i've got this problem: parallel insert blocked on the same table. This event is periodic and the name table change of time in time.
Version SAP is R/3 Enterprise 4.7 witn DB ORACLE 9.2.0.8 on SO AIX 5.3 ( ML 10)
Thank You for yuor support
MC

You need to provide more info that that.... whats the context?, whats the error?, is this a question or a statement?
Read the "Rules of Engagement"
Regards
Juan

Similar Messages

  • Parallel Insert statements (bulk) to the same table

    Hi,
    I am in need to insert set of insert statements 50000+ in to table and wanted to split them in to tow halves and run in two SQL worksheets.
    Note that both will try to insert on the same table.
    Please let me know whether it is advisable or tell me an alternative way.
    Using...Oracle 11g DB.
    Regards
    Deep.

    935195 wrote:
    I am in need to insert set of insert statements 50000+ in to table and wanted to split them in to tow halves and run in two SQL worksheets.Small number of rows. 50,000 rows can be inserted in seconds. Not sure why you want to split it. Parallel inserts into the same table is not usually a problem. Contention could be around free lists, initrans and so on - especially if using RAC and inserting something like 50,000+ rows every second. But the table defaults usually suffice.
    Note that both will try to insert on the same table.So what? This is exactly what Oracle expects and what it is designed to do.
    Please let me know whether it is advisable or tell me an alternative way.Well, you mentioned SQL worksheets - why? Exactly how does the INSERT statements look like? Where does the data to insert come from? Is shared insert cursors used (bind variables compulsory)? The bottleneck and problem could very well be on your side and not with the actual inserts into the table.

  • How to do parallel processing with dynamic internal table

    Hi All,
    I need to implement parallel processing that involves dynamically created internal tables. I tried doing so using RFC function modules (using starting new task and other such methods) but didn't get success this requires RFC enabled function modules and at the same time RFC enabled function modules do not allow generic data type (STANDARD TABLE) which is needed for passing dynamic internal tables. My exact requirement is as follows:
    1. I've large chunk of data in two internal tables, one of them is formed dynamically and hence it's structure is not known at the time of coding.
    2. This data has to be processed together to generate another internal table, whose structure is pre-defined. But this data processing is taking very long time as the number of records are close to a million.
    3. I need to divide the dynamic internal table into (say) 1000 records each and pass to a function module and submit it to run in another task. Many such tasks will be executed in parallel.
    4. The function module running in parallel can insert the processed data into a database table and the main program can access it from there.
    Unfortunately, due to the limitation of not allowing generic data types in RFC, I'm unable to do this. Does anyone has any idea how to implement parallel processing using dynamic internal tables in these type of conditions.
    Any help will be highly appreciated.
    Thanks and regards,
    Ashin

    try the below code...
      DATA: w_subrc TYPE sy-subrc.
      DATA: w_infty(5) TYPE  c.
      data: w_string type string.
      FIELD-SYMBOLS: <f1> TYPE table.
      FIELD-SYMBOLS: <f1_wa> TYPE ANY.
      DATA: ref_tab TYPE REF TO data.
      CONCATENATE 'P' infty INTO w_infty.
      CREATE DATA ref_tab TYPE STANDARD TABLE OF (w_infty).
      ASSIGN ref_tab->* TO <f1>.
    * Create dynamic work area
      CREATE DATA ref_tab TYPE (w_infty).
      ASSIGN ref_tab->* TO <f1_wa>.
      IF begda IS INITIAL.
        begda = '18000101'.
      ENDIF.
      IF endda IS INITIAL.
        endda = '99991231'.
      ENDIF.
      CALL FUNCTION 'HR_READ_INFOTYPE'
        EXPORTING
          pernr           = pernr
          infty           = infty
          begda           = '18000101'
          endda           = '99991231'
        IMPORTING
          subrc           = w_subrc
        TABLES
          infty_tab       = <f1>
        EXCEPTIONS
          infty_not_found = 1
          OTHERS          = 2.
      IF sy-subrc <> 0.
        subrc = w_subrc.
      ELSE.
      ENDIF.

  • Insert data from a table into 5 different tables

    My application has a data block than display information from another table. From this data block, the user has the option to select the records for upload. The information in the data block is used to insert data into 5 different tables. So if any exception occurs while inserting, the whole process should be rollback, but before this happen a record is inserting in a failed table indicated the reason of the failed.
    For this process I use the following commands:
    1.     sp_name := Get_Application_Property(SAVEPOINT_NAME);
    2.     INSERT DDL
    3.     INSERT DDL
    4.     INSERT DDL
    5.     INSERT DDL
    6.     INSERT DDL
    7.     If Other Exception then ISSUE_ROLLBACK(sp_name) Otherwise FORMS_DDL ('commit')
    The problem the previous insert(s) rollback
    Thanks,

    Hi,
    If you are using FORMS_DDL built-in to insert the data, then after each FORMS_DDL statement, you have to check the values of FORM_SUCCESS or FORM_FAILURE built-ins.
    FORMS_DDL('<insert_statement_1>');
    IF FORM_FAILURE THEN
    <the statement fails. so have to be rollbacked>
    END IF;
    FORMS_DDL('<insert_statement_2>');
    IF FORM_FAILURE THEN
    <the statement fails. so have to be rollbacked>
    END IF;Hope this helps.
    Regards,
    Manu.
    If my response or the response of another was helpful or Correct, please mark it accordingly

  • Error while Inserting data into flow table

    Hi All,
    I am very new to ODI, I am facing lot of problem in my 1st interface. So I have many questions here, please forgive me if it has irritated to you.
    ========================
    I am developing a simple Project to load a data from an input source file (csv) file into a staging table.
    My plan is to achieve this in 3 interfaces:
    1. Interface-1 : Load the data from an input source (csv) file into a staging table (say Stg_1)
    2. Interface-2 : Read the data from the staging table (stg_1) apply the business rules to it and copy the processed records into another staging table (say stg_2)
    3. Interface-3 : Copy the data from staging table (stg_2) into the target table (say Target) in the target database.
    Question-1 : Is this approach correct?
    ========================
    I don't have any key columns in the staging table (stg_1). When I tried to execute the Flow Control of this I got an error:
    Flow Control not possible if no Key is declared in your Target Datastore
    With one of the response (the response was - "FLOW control requires a KEY in the target table") in this Forum I have introduced a column called "Record_ID" and made it a Primary Key column into my staging table (stg_1) and my problem has been resolved.
    Question-2 : Is a Key column compulsary in the target table? I am working in BO Data Integrator, there is no such compulsion ... I am little confused.
    ========================
    Next, I have defined one Project level sequence. I have mapped the newly introduced key column Record_Id (Primary Key) with the Project level sequence. Now I am got another error of "CKM not selected".
    For this, I have inserted "Insert Check (CKM)" knowledge module in my Project. With this the above problem of "CKM not selected" has been resolved.
    Question-3 : When is this CKM knowledge module required?
    ========================
    After this, the flow/interface is failing while loading data into the intermediar ODI created flow table (I$)
    1 - Loading - SS_0 - Drop work table
    2 - Loading - SS_0 - Create work table
    3 - Loading - SS_0 - Load data
    5 - Integration - FTE Actual data to Staging table - Drop flow table
    6 - Integration - FTE Actual data to Staging table - Create flow table I$
    7 - Integration - FTE Actual data to Staging table - Delete target table
    8 - Integration - FTE Actual data to Staging table - Insert flow into I$ table
    The Error is at Step-8 above. When opened the "Execution" tab for this step I found the message - "Missing parameter Project_1.FTE_Actual_Data_seq_NEXTVAL RECORD_ID".
    Question-4 : What/why is this error? Did I made any mistake while creating a sequence?

    Everyone is new and starts somewhere. And the community is there to help you.
    1.) What is the idea of moving data from stg_1 and then to stg_2 ? Do you really need it for any other purpose other than move data from SourceFile to Target DB.
    Otherwise, its simple to move data from SourceFile -> Target Table
    2.) Does your Target table have a Key ?
    3.) CKM (Check KM) is required when you want to do constraint validation (Checking) on your data. You can define constraints (business rules) on the target table and Flow Control will check the data that is flowing from Source File to Target table using the CKM. All the records that donot satisfy the constraint will be added to E$ (Error table) and will not be added to the Target table.
    4.) Try to avoid ODI sequences. They are slow and arent scalable. Try to use Database sequence wherever possible. And use the DB sequence is target mapping as
    <%=odiRef.getObjectName( "L" , "MY_DB_Sequence_Row" , "D" )%>.nextval
    where MY_DB_Sequence_Row is the oracle sequence in the target schema.
    HTH

  • Need to insert data in 2 tables thro stored procedure

    I need to create a stored procedure which will insert data in two tables. The procedure will get
    its inputs from an Oracle Developer Form which will be inserted into the tables.
    The 2 tables structure:
    1.FEES_MASTER
    Name Null? Type
    FEES_ID NOT NULL NUMBER(8) -- Primary Key
    CS_ID NOT NULL NUMBER(8) -- Class Student ID; An enrolled student
    REC_DATE NOT NULL DATE -- Fees receipt date
    REC_AMOUNT NOT NULL NUMBER(6) -- Fees receipt amount
    2.FEES_DETAIL
    Name Null? Type
    FEES_ID NOT NULL NUMBER(8) -- Foreign Key
    MONTH NOT NULL DATE -- First of each month to identify fee month
    Scenario:
    A student submits fees for 3 months through Master/Detail related blocks in a Developer Form as
    Under:
    Fees Master
    Fees ID : 11002
    Class Student ID : 356
    Receipt Date : 06-JAN-2001
    Receipt Amount : 1500
    Fees Detail
    Fees ID Fees Month
    11002 01-JAN-2001
    11002 01-FEB-2001
    11002 01-MAR-2001
    I need to check each fees detail record for fees month duplication as well before inserting new records.
    How can this be achieved?
    Thanks in advance.

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Fan Liu ([email protected]):
    create primary key in the detail table. i think it's FEES_ID + MONTH. then mark the columns in Forms as primary key property true, then call check_record_uniqueness built-in in on-check-unique trigger.<HR></BLOCKQUOTE>
    Thanks very much. But what I need is to ensure transaction integrity thro stored procedure. The system allows a certain CS_ID (i.e. Class Student ID, which is assigned a new one to every student annually) to submit fees for 12 months only, because a student stays in a class for a year. The 2 columns in the FEES_DETAIL table are composite primary key which only ensures that a certain FEES_ID will not be repeated for the same month. But suppose:
    1)this data already exist in the tables:
    Fees Master
    Fees ID : 11002
    Class Student ID : 356
    Receipt Date : 06-JAN-2001
    Receipt Amount : 1500
    Fees Detail
    Fees ID Fees Month
    11002 01-JAN-2001
    11002 01-FEB-2001
    11002 01-MAR-2001
    2)And this data is currently being inserted:
    Fees Master
    Fees ID : 11300
    Class Student ID : 356
    Receipt Date : 04-FEB-2001
    Receipt Amount : 1500
    Fees Detail
    Fees ID Fees Month
    11300 01-JAN-2001
    11300 01-FEB-2001
    11300 01-MAR-2001
    The data in the 2nd condition is perfectly valid but the application can't allow a student to submit fees for a month which he has already submitted. Now only a stored procedure can make sure after checking that the same student doesn't pay fees for duplicate months. Another reason for my emphasis on stored procedure is that what if a user tries to insert data thro an SQL* Plus session instead of the Form.
    PROBLEM: Now the problem I am having is I don't know how the procedure will take input for multiple records from the FEES_DETAIL block in the Form.
    Please assist in this regard. Thanks.

  • Does a truncate table solve corrupt blocks in a table

    Hi Guys,
    Got a question:
    Does a truncate table solve corrupt blocks in a table?
    I have found corrupt blocks in rman, located them, they are in 1 table.
    And contacted the business, and have permission to drop and recreate the table,
    but my question is does truncate table drop storage also solves my problem?
    And will it let me to do a full backup without set max corrupt blocks?
    To my knowledge does a truncate table moves the high watermark to 0 + 1 extend, but I am unsure how this will effect the corrupt blocks.
    Thanks in advance for your advice

    Hi,
    Yes truncate/drop table fixes the corruption at the database level. You may like to take the backup(if you have index on it) of that table so that you may restore it later if anything goes wrong.
    Note: This would not fix any corruption at the disk level (like bad sectors).
    Regards
    Anurag

  • Operate on a Tabular Data Block as a table?

    hi
    i was wondering if it is possible to query a tabular displayed data block like is done with tables. and do updates and inserts. so just to be clear, i dont want to query/insert/update the database table but the values in the form display items. i'm using oracle forms 9i
    the main reason im asking this is because i want to use vaules in different records in the tabular displayed data block to make validations in the same data block... before the form is commited of course
    thanks
    venom_zx

    You cannot query or manipulate blocks like table.
    But you can manually navigate to each record in the block and validate before they are commited to the base table.

  • Many-to-many association: inserting in the detail table fails

    I'm using jdeveloper 11g and configured the many-to-many association as described in the documentation, so I have accessors in both directions, with composition association and a many-to-many link view. Using the business component browser, the link view works for viewing the data in both directions, as one would expect, however inserting in the detail table fails as follows: the key of the master table is the new value of the detail table's key column instead of the intersection table's foreign key column. Is this a known problem, or is there something I have done wrong?

    If your m-m join table has additional fields there best solution is normally to define a class for the join table.
    i.e.
    beforeProgram
    -m-m-> Assumption
    Assumption
    -m-m-> Program (optional/read-only)
    -> after
    Program
    -1-m-> ProgramAssumptionAssociation (private-owned)
    ProgramAssumptionAssociation
    -1-1-> Program (pk)
    -1-1-> Assumption (pk)
    - createByUser
    - etc.
    Program
    -1-m-> ProgramAssumptionAssociation (independent/optional)
    You could also enable batch-reading or joining on the 1-1 relationship to read the target objects efficiently.

  • Do ordering your child block using other tables wihout using views

    Hi all,
    Just need to play with this : Query Data Source Name property for data block
    Benefit : you can do order by child block with other tables without using View
    I have used two tables in this property !!
    and it is working fine.
    e.g. Dept is master block
    and clild block is Emp nad combination with emp_category.
    so now I can order emp block by emp category.
    master block : dept
    Query datasource name : dept
    child block : emp
    Query datasource name : emp a , emp_category b
    From
    Chirag Patel

    Ok, I'd probably go with the two insert method, but as an alternative, here is a method of doing it in a single insert:
    create table emp_info as
    select 1 empno, 'a' empname, 101 deptid, 'aaa' deptname from dual union all
    select 2, 'b' empname, 201 deptid, 'bbb' deptname from dual union all
    select 3, 'c' empname, 101 deptid, 'aaa' deptname from dual union all
    select 4, 'd' empname, 101 deptid, 'aaa' deptname from dual union all
    select 5, 'e' empname, 301 deptid, 'ccc' deptname from dual;
    create table emp (empno number primary key, empname varchar2(3), deptid number);
    create table dept (deptid number primary key, deptname varchar2(3));
    insert all
      WHEN rn = 1 THEN
           into dept (deptid, deptname)
           values (deptid, deptname)
      WHEN rn > 0 THEN
           into emp (empno, empname, deptid)
           values (empno, empname, deptid)
    select empno, empname, deptid, deptname, rn
    from   (select empno,
                   empname,
                   deptid,
                   deptname,
                   row_number() over (partition by deptid order by empno) rn
            from   emp_info);
      8 rows inserted
    commit;
    select * from emp;
         EMPNO EMP     DEPTID
             1 a          101
             3 c          101
             4 d          101
             2 b          201
             5 e          301
    select * from dept;
        DEPTID DEP
           101 aaa
           201 bbb
           301 cccYou should test both methods to see which one is more performant.

  • Pre-insert block level, Seq.Nextval leaving gaps problem

    Hi...form friends,
    I used DB sequence in pre-insert block level trigger.
    SELECT seq1.nextval INTO :abc.log_id FROM dual;
    Everything works fine,except leaving gaps randomly .
    It leaves around 10 no.s gaps in-between. And that happens randomly...
    lets say I insert 5 records..then it will be 1,2,3,4,5.
    Then it may jumps to 15,16,25 like...that....
    I searched for this problem...but some say when form failure occurs, it leaves gap of CACHE no. specified....and some say its not possible to use DB seq. with forms perfectly ..!!!!
    Anybody have any idea about this issue ???
    Thanks....

    Putting that functionality in a row level trigger will cause a mutating data exception.
    Locking the table for update is not sufficient, you need to prevent other users inserting as well.
    I've posted a method a few times before which uses dbms_lock and a table of serial numbers which is used in place of the oracle sequence. This provides maximum concurrency and allows for data to be rolled back, but there is obviously a payoff in terms of performance so it should only be used when absolutely necessary. There is a similar example in the link I posted above (which is a far more considered explanation than I've posted elsewhere!), along with some caveats about using gapless sequences and whether there is truly a need.
    One of mine:
    Re: On commit - sequence increases

  • Can't Insert Into Self Defined Table

    Hi,
    i have been constructed a table and tried to insert data into this table, but get an 'Invalid Code' error. Does anybody know why?
    I'm using Business One 6.5.
    Here is my Java-Code:
    private void insertIntoUserTable(ICompany comp) {
              IUserTables tables;
              IUserTable table;
              try {
                   tables = comp.getUserTables();
                   table = comp.getUserTables().item("atotabelle");
                   table.getUserFields().getFields().item("U_TF0").setValue("Value1");
                   table.getUserFields().getFields().item("U_TF1").setValue("Value2");
                   table.getUserFields().getFields().item("U_TF2").setValue("Value3");
                   table.getUserFields().getFields().item("U_TF3").setValue("Value4");
                   if (table.add() == 0) {
                        System.out.println("Success!");
                   } else {
                        System.out.println("Error occured!");
                        System.out.println(comp.getLastError().getErrorMessage());
              } catch (Exception e) {
                   e.printStackTrace();
    Greetings
    Message was edited by: Ahmet Tokalak

    Hi Ahmet,
    You must set the following properties in the IUserTable object
    setCode - Returns or sets a string that specifies the key value for the current record.
    setName - Returns or sets a string that specifies the value of this record.
    I got these explanation from the DI API Help file.
    I think the code value must be unique for each value
    private void insertIntoUserTable(ICompany comp) {
    IUserTables tables;
    IUserTable table;
    try {
    tables = comp.getUserTables();
    table = comp.getUserTables().item("atotabelle");
    table.setCode("4");
    table.setName("4");
    table.getUserFields().getFields().item("U_TF0").setValue("Value1");
    table.getUserFields().getFields().item("U_TF1").setValue("Value2");
    table.getUserFields().getFields().item("U_TF2").setValue("Value3");
    table.getUserFields().getFields().item("U_TF3").setValue("Value4");
    if (table.add() == 0) {
    System.out.println("Success!");
    } else {
    System.out.println("Error occured!");
    System.out.println(comp.getLastError().getErrorMessage());
    } catch (Exception e) {
    e.printStackTrace();
    Thanks,
    Cormac

  • Please help with multiple insert query into nested table!!!!

    I am having a problem with inserting multiple references to objects into a nested table using the following query:
    INSERT INTO TABLE(SELECT Taken_by FROM courses WHERE course_number= 001)
    (SELECT REF(p) FROM persons p
    WHERE p.enroled_in = 'Computing for Business'
    The database says that p.enroled_in is an invalid identifier. I know why this is. This is because the field enroled_in is part of a subtype of person called student_type and the query above is not accounting for this properly. I would like to know the correct syntax to use so I can insert into the nested table wherever a student is enroled into the 'computing for business' course. My full schema is below:
    CREATE TYPE person_type;
    CREATE TYPE student_type;
    CREATE TYPE staff_type;
    CREATE TYPE course_type;
    CREATE TYPE module_type;
    CREATE TYPE address_type AS OBJECT
    Street VARCHAR2 (30),
    Town     VARCHAR2 (30),
    County VARCHAR2 (30),
    Postcode VARCHAR2 (9)
    CREATE TYPE person_type AS OBJECT
    Name VARCHAR2 (50),
    Address address_type,
    DOB     DATE
    ) NOT FINAL;
    CREATE TYPE staff_type UNDER person_type
    Staff_number NUMBER (2,0)
    ) FINAL;
    CREATE TYPE student_type UNDER person_type (
    Student_number NUMBER (2,0),
    Enroled_in VARCHAR2(50),
    MEMBER FUNCTION getAge RETURN NUMBER
    )NOT FINAL;
    CREATE OR REPLACE TYPE BODY student_type AS
    MEMBER FUNCTION getAge RETURN NUMBER AS
    BEGIN
    RETURN Trunc(Months_Between(Sysdate, DOB)/12);
    END getAge;
    END;
    CREATE TYPE module_type AS OBJECT
    Module_number VARCHAR2(6),
    Module_name VARCHAR2(50),
    Credit NUMBER(2,0),
    Taught_in VARCHAR2(50)
    CREATE TYPE students_tab AS TABLE OF REF person_type;
    CREATE TYPE modules_tab AS TABLE OF REF module_type;
    CREATE TYPE course_type AS OBJECT
    Course_number NUMBER (2,0),
    Course_name VARCHAR2(50),
    Dept_name VARCHAR2(50),
    Taken_by Students_tab,
    Contains Modules_tab
    CREATE TABLE modules OF module_type(
    constraint pk_modules primary key (Module_number)
    CREATE TABLE courses OF course_type(
    constraint pk_courses primary key (Course_number)
    NESTED TABLE Taken_by STORE AS students_nt,
    NESTED TABLE Contains STORE AS modules_nt;

    By the way I am using oracle 9i and trying to insert into the nested table data from a subtype (i.e student is a subtype of person)

  • Which trigger to use for insert data into db table in Forms

    Hi,
    My form is current having a database block with table reference. When enter data into form field and click on save button. Automatically the record is inserted into database table.
    I want to make this as manual insert. I changed the data block to a non-database. Where should i write the insert statement in order to insert data into table.
    Is it Key-commit trigger at form level?
    Please advise.
    Thanks,
    Yuvaraaj.

    Hi Yuvaraaj.
    Insert should happen when we click on the save which is inbuilt in the form. In this case where should i write the insert statement.Forms in built save commit's the form data where block is based on database not non database.
    @2nd reply
    Ypu are right. The reason i chnaged the database block to non-database is Currently i have a database block with form field canvas which insert only 1 record in to >table when we click on standard save button. The requirement was to add a field called CHANNEL which should have multiple values displayed. (i created this channel >field in a seperate datablock (non database) and used the same canvas.) When we insert data in all fields (single record) and channel we should be able to selected >multiple channel (say A,B and C) when we click on save then 3 records should be inserted in to the table which looping values for each channel. This was the actual >requirement and this is the reason why iam changing the block to non-database block.You are talking about two blocks.. 1. Master block and 2. Details block name channel
    You are inserting one record in master block then insert 3 record name A,B,C for that master record.
    Now you want master record should insert to each A,B,C record. Means
    'how are you' --master record
    and you want
    'A'- 'how are you'
    'B'- 'how are you'
    'C'- 'how are you'OR
    ?Ok. If you want master record save in database and then want to save non-database(channel) data into database USE Post-Insert trigger at block level and do the rest.
    Hope this helps...
    Hamid
    Mark correct/helpful to help others to get right answer(s).*
    Edited by: HamidHelal on Jan 26, 2013 1:20 AM

  • Help for "insert data to variable tables"

    hi, guys.
    I want to make a tool to upload mass-data then insert the data to tables of SAP for integrative test.
    for example, to input the object tablename "AAAA" from screen, the program willl find the information of this table then input the data to the "AAAA" tables.
    But i have no idea how to define the internal table to suit various tables ( by define dynamic table? or any other ways) ,could you kindly give me some advice?
    thanks a lot in advance.
    Message was edited by:
            huijuan zhao

    hi zhao,
    welcome to sdn,
    for your requirement u can use bdc to upload file to internal table then u can update these internal table fileds to sap tables.
    or
    use <b>gui_upload</b> function module to upload data to internal table then u can use just <b>insert</b> keyword to update sap tables.
    see this sample code to update the database table <b>edpar</b>,
    report  zsd_edpar_update no standard page heading.
    *&Purpose:
    *&        program will be used to update EDAPR table on a daily basis.
    *&        This update will be based on Customer Sold To / Ship To partner
    *&        functions assignment. Ship To customer(s) will be linked to
    *&        the appropriate Sold To customer using the ?Acct at Cust?
    *&        number as a reference.  Then, Ship To customer(s) will be
    *&        set up withthe appropriate partner function with the Sold
    *&        To customer.it updated the DB tabel and gives the information
    *&        of customer level visibility t account receivable.
    *define database tables...
    tables: edpar,
            knvv,
            knvp.
    *define types...
    types: begin of t_tab_edpar,
           mandt type mandt,
           kunnr type kunnr,
           parvw type parvw,
           expnr type edi_expnr,
           inpnr type edi_inpnr.
    types: end of t_tab_edpar.
    types: begin of t_tab_knvv,
           kunnr type kunnr,
           vkorg type vkorg,
           vtweg type vtweg,
           spart type spart,
           eikto type eikto.
    types: end of t_tab_knvv.
    types: begin of t_tab_knvp,
           kunnr type kunnr,
           vkorg type vkorg,
           vtweg type vtweg,
           spart type spart,
           parvw type parvw,
           kunn2 type kunn2.
    types: end of t_tab_knvp.
    type-pools: slis.
    *define data statments...
    data: g_tab_edpar type standard table of t_tab_edpar,
          g_wa_edpar  like line of g_tab_edpar.
    data: g_tab_edpar1 type standard table of t_tab_edpar,
          g_wa_edpar1  like line of g_tab_edpar1.
    data: g_tab_edpar2 type standard table of t_tab_edpar,
          g_wa_edpar2  like line of g_tab_edpar2.
    data: g_tab_knvv type standard table of t_tab_knvv,
          g_wa_knvv  like line of g_tab_knvv.
    data: g_tab_knvp type standard table of t_tab_knvp,
          g_wa_knvp  like line of g_tab_knvp.
    data: repid like sy-repid,
          l_tab_fieldcat  type slis_t_fieldcat_alv,
          l_tab_fieldcat1 type slis_t_fieldcat_alv,
          l_tab_fieldcat2 type slis_t_fieldcat_alv,
          layout type slis_layout_alv,
          events  type slis_t_event,
          events1 type slis_t_event,
          wa_events  like line of events,
          l_pos type i.
    *selection screen...
    selection-screen begin of block b1 with frame title text-001.
    select-options: s_cust for knvv-kunnr obligatory,
                    s_sorg for knvv-vkorg,
                    s_dcha for knvv-vtweg,
                    s_divi for knvv-spart,
                    s_parf for knvp-parvw.
    selection-screen end of block b1.
    *start-of-selection...
    perform get_data.
    *to update the db table edpar...
    perform update_edpar.
    *display alv block...
    perform alv_block.
    *&      Form  get_data
          text
    -->  p1        text
    <--  p2        text
    form get_data .
      select kunnr
             vkorg
             vtweg
             spart
             parvw
             kunn2
             from knvp
             into table g_tab_knvp
             where
             kunnr in s_cust
             and
             vkorg in s_sorg
             and
             vtweg in s_dcha
             and
             spart in s_divi
             and
             parvw in s_parf.
      loop at g_tab_knvp into g_wa_knvp.
        move: g_wa_knvp-kunnr to g_wa_edpar-kunnr,
              g_wa_knvp-kunn2 to g_wa_edpar-inpnr,
              g_wa_knvp-parvw to g_wa_edpar-parvw.
        append g_wa_edpar to g_tab_edpar.
      endloop.
      if not g_tab_knvp[] is initial.
        select kunnr
               vkorg
               vtweg
               spart
               eikto
               from knvv
               into table g_tab_knvv
               for all entries in g_tab_knvp
               where
               kunnr eq g_tab_knvp-kunnr
               and
               vkorg eq g_tab_knvp-vkorg
               and
               vtweg eq g_tab_knvp-vtweg
               and
               spart eq g_tab_knvp-spart.
        loop at g_tab_knvp into g_wa_knvp .
          sort g_tab_knvv by kunnr.
          clear g_wa_knvv-eikto.
          read table g_tab_knvv into g_wa_knvv with key kunnr = g_wa_knvp-kunnr.
          if sy-subrc eq 0.
            move: g_wa_knvv-eikto to g_wa_edpar-expnr.
            modify g_tab_edpar from g_wa_edpar transporting expnr where kunnr eq g_wa_knvp-kunnr.
          endif.
        endloop.
      endif.
      sort g_tab_edpar by kunnr.
      delete adjacent duplicates from g_tab_edpar comparing kunnr parvw.
    endform.                    " get_data
    *&      Form  update_edpar
          text
    -->  p1        text
    <--  p2        text
    form update_edpar .
      delete from edpar." FROM TABLE g_tab_delete.
      call function 'DB_COMMIT'.
      loop at g_tab_edpar into g_wa_edpar.
        insert into edpar values g_wa_edpar.
        if sy-subrc  eq 0.
          move-corresponding g_wa_edpar to g_wa_edpar1.
          append g_wa_edpar1 to g_tab_edpar1.
        else.
          move-corresponding g_wa_edpar to g_wa_edpar2.
          append g_wa_edpar2 to g_tab_edpar2.
        endif.
      endloop.
    reward points if helpful,
    regards,
    seshu.

Maybe you are looking for

  • Font Not Appearing Correctly

    I've had a font collection Mrs. Eaves for years. It works fine in every application. It is suddenly, for a reason I cannot fathom, not working with pages. Some of the fonts in the collection display the wrong characters. The font files are on the fon

  • Help--How can I open only one java program at one time?

    How can I open only one java program(same program) in Windows at one time?

  • How do I uninstall Garageband 02 and install Garageband 08?

    I just bought a second mini (used) that has Garageband 02 on it, and need to get Garageband 08 on it instead. I have the disks that came with my first mini. How do I get Garageband 02 out of the used mini and Garageband 08 on it? The two disks I have

  • How do I get a previous version 3.6.8

    I currently have Firefox 4. - my backup is from version 3.6.8 and Mozbackup isn't restoring the back up. Where can I get a safe version of 3.6.8 to install? I'll restore and then upgrade again to 4. Thank you.

  • Another color management question

    Hi folks, Apologies for yet another color management question, but Im getting very confused and could do with some help. I use a Canon 10D and Canon 30D. Ive come to LightRoom from Pixmantec Raw Shooter. As Ive gotten more serious about producing hig