Record level commit in a multi record block

Dear all,
i have a multi record block in my form (only one block)
after entring record the save buttons commites the form
if any error is raised then total commit processs stop for example if DUP_VAL_ON_INDEX is raised
what i want is that the form shoud act record level,i.e; it should commit record wise so that though a excepton is raised atleast record above that are commited.
thank U
Raj
mail : [email protected]

you can have non-database block and write "insert into <table>" statements for each row of block at when-button-pressed of 'commit' button. Commit after each row insertion. This will serve your purpose.

Similar Messages

  • 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

  • Cursor Jumping to last record when query mode for Multi-record block.

    I have a multi-record block. the seq field has this validation to check that there should not be a gap
    in sequence for S_type and cer_dl field.The program unit is as below.
    PROCEDURE seq_validation IS
    --Validation to check that there is no gaps in sequence for S_TYPE and cer_dl fields
    l_value_to_check varchar2(100);
    l_seq_found number;
    l_curr_sequence number;
    l_new_value varchar2(100);
    l_found boolean:=FALSE;
    l_new_set boolean := FALSE; --s_type and cer_dl are different from previous set.
    begin
    if trim(:b1.s_type) is not null
    or trim(:b1.cer_dl) is not null
    then
    -- Program continues here only if all the items are not null
    -- Get information from record that needs to be validated
    l_value_to_check := trim(:b1.s_type) || ':'|| trim(:b1.cer_dl) ;
    l_curr_sequence := :sequence;
    if :SYSTEM.CURSOR_RECORD = '1' then
    ---to check sequence is entered as 1 in the first record
    message('Error:Sequence should start with 1');
    raise form_trigger_failure;
    end if;
    go_item('b1.XYZ');
    else
    FIRST_RECORD;
    while :SYSTEM.LAST_RECORD != 'TRUE'
    loop
    l_found := FALSE;
    l_new_value := trim(:b1.S_type) || ':'|| trim(:cer_dl) ;
    if l_new_value = l_value_to_check then --
    l_new_set:= FALSE;
    l_seq_found := :seq;
    if l_seq_found >= l_curr_sequence then
    go_item('b1.seq');
    l_new_set := FALSE;
    elsif l_seq_found < l_curr_sequence - 1 then
    go_item('b1.sequence');
    l_found := FALSE;
    elsif l_seq_found = l_curr_sequence - 1 then
    l_found:= TRUE;
    go_item('b1.xyz); --go to next item
    end if;
    else
    l_new_set := TRUE;
    end if;
    NEXT_RECORD;
    end loop;
    if l_new_set then
    go_item('b1.xyz'); -- go to next item
    else
    if not l_found then
    message('Error:Sequence should be in order.');
    go_item('b1.seq');
    raise form_trigger_failure;
    end if;
    end if;
    go_item('b1.xyz'); ---go to next item
    end if;
    end if;
    end;     
    In the insert mode its working fine(unless you gurus feel to change to make it more perfect.
    When I say enter-query and put 'IAS' in the s_type field and then do a execute query it brings all the records of 'IAS'.
    Now as I want to update the records, and when I navigate across field(s_type,cer_dl,Seq,xyz) using tab and move the cursor down on second
    record(IAS N 2 N), what happens is when I navigate to sequence field the cursor jumps to LAST RECORD( IAS Y 3 N ) of LAST field XYZ.
    I am putting the sample record
    s_type cer_dl seq xyz
    IAS N 1 N
    IAS N 2 N
    IAS N 3 N
    IAS N 4 N
    IAS Y 1 N
    IAS Y 2 N
    IAS Y 3 N
    The cursor moves to last record --IAS -Y -3-N when I tab across the second record.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    When I say enter-query and put 'IAS' in the s_type field...For your validation to work you must not allow users to enter records in the middle of a block, clear records from the block or query specific records. If you allow the users to enter a query then you are allowing 2 of the rules to be broken.

  • Updating current record using SET_CUSTOM_PROPERTY in a multi-record form

    Hi,
    I have a multi record form and am using the SET_CUSTOM_PROPERTY method in the when validate trigger of an item. The problem is that it updates all records in the form instead of updating just the current record.
    Any inputs to resolve this would be helpful.
    Thanks

    I cannot reproduce the issue here.
    I have modified the sample dialog shipped with th article to have a block that displays 2 records
    <p>See the screenshot here</p>
    Here is the code in the When-Button-Pressed trigger:
      Set_Custom_Property( 'BLZ.BEAN', 1, 'READIMGFILE', 'd:/coyote.jpg' ) ;
      Set_Custom_Property( 'BLZ.BEAN', 2, 'READIMGFILE', 'd:/oracle_community.gif' ) ;So everything is ok for me.
    Francois

  • Use value of multi record in LOV in same multi record

    Hello,
    I have created a multi record tabular form (report actually). Some fields are select lists with of course an LOV. I would like to use a value of each current row to use in the LOV to make it dynamic.
    This is the where clause of the LOV:
    and rda.tsr_code = :P1103_TSR_CODE (TSR_CODE is a column in the multi record)
    But that is not working, it works when I use:
    and rda.tsr_code = 'M' (but that is not very dynamic and I have to make numerous different LOV's...)
    After reading several pages, I could not find a solution...
    Anyone?
    Edited by: 960788 on 23-sep-2012 13:56

    Hello Garcol,
    Search the forum with Cascading LOV, Tabular Form. You will get lot of threads discussing on this.
    See http://dbswh.webhop.net/htmldb/f?p=BLOG:READ:0::::ARTICLE:2003800346210117 blog entry by Jari.
    Regards,
    Hari

  • Restrict duplicate records during data entry in multi record detail block

    I have three fields (empno, edate, deptno) in a block overtime_d. I want to restrict it from duplicate entry. can u plz guide me

    hi,
    It must helpful to you.
    http://sheikyerbouti.developpez.com/duplicates/duplicates.htm
    Mark helpful/correct.
    kanish

  • Fetching the number of records in a multi-record block...

    Hi ,
    In Forms10g runtime-and in previous releases too- there is , as a message, the number of records fetched/inserted in a multi-line block such as Record:5/9. Is it possible to catch these two numbers (i mean 5 and 9 , or at least the number of records)...not only in query but in the insert mode as well...?????
    Many thanks ,
    Simon

    No, you can't capture that text, but you can write your own code to do the same thing.

  • Record Level = Speaker Volume

    Currently my record level is equal to my speaker volume. When I mute the speakers, the record level is 0. No record level controls are visible. How can I fix this?

    Del Capslock wrote:
    -r in the shortcut target box made no difference. Still no record level controls
    In the Audio Mixer, the slider for speaker volume moves in tandem with the Audition slider. They cannot be controlled independently.
    It should be .exe -r (with a space). If you can't get record options at all, then something weird is going on, and we'd need to know more about your particular PC or laptop.

  • Setting the record straight for setting recording levels in Logic

    Hey everyone,
    I asked a similar question a while back and got some great feedback, but I'm still a little confused about how to set a perfect recording level and work with the fader in Logic. A lot of what I've been doing has been trial and error and I would like to ask a few more specific questions:
    I record with a MOTU traveler and have recently, for example, been recording direct with my guitar into the MOTU inputs. I am using "pre-fader metering", which is checked, and I using "software monitoring", which is also checked. When I am watching the fader, what should I be looking for? I always have the fader set at 0.0db. How do I set the perfect level in this situation? Should the fader be hitting red as I record? How do I make sure I don't clip, and what should I be watching for overall? AND, is it all the same process when recording with microphones? I've heard Logic records at a low level with MOTU products, but what exaclty does this mean in terms of setting levels and watching the fader as I record? I have been recording a lot lately and have some good sounding tracks and some that are not so great and I think it has a lot to do with the topic of this post.
    Thanks for the help and clarification.

    the fader position in logic does nothing to affect the recording level. That is totally dependent on the gain setting on your MOTU. The logic fader merely allows you to adjust the level at which you listen to the material you are recording. If you set the gain correctly on your MOTU then you shouldn't see the logic audio object hit the red unless your logic fader is set higher than 0dB. If your logic fader is at 0, and you still see red, then your gain is set too high. Remember, digital distortion is not like analog distortion. Once you have recorded the signal and you are in playback mode, then things change somewhat. The internal headroom of logic allows individual channels to hit the red without causing audible distortion. You should definitely avoid hitting the red on your audio output objects though.
    I haven't heard about low levels with MOTU stuff. My own 896 has three settings on the inputs - mic, line and fixed +4dB. If you have variable gain as well, then you should be able to get healthy gain. If your recording level is very low, then recording at 24bit will help a lot towards a more detailed recording, as 16 bit can get grainy if the recorded levels are low.

  • Ipod  Nano recording level

    Is there a way to control recording level? My ipod nano records too low.
    How would I record Higher?

    At this point, the software people with iPods purchased in EU countries were using to remove the cap do not work on the 2nd gen nano. No word on when it will. So other than maxing your volume limiter and trying more expensive earphones there really isn't anything you can do right now.

  • My recording level wont move

    when ever i open GarageBand...it records just fine and everything works. but when i try to play back what i have recorded i can not hear it. iv put every volume on the programe and my computer on max except the recording level. the button on the recording level wont move from zero...why not? i assume that is the issue.   

    brownboy461 wrote:
    Every time i change anything to use a device in this case a microphone insted of using the built in one, i cant hear anything when it plays back.
    http://www.bulletsandbones.com/GB/GBFAQ.html#usecomputersspeakers
    (Let the page FULLY load. The link to your answer is at the top of your screen)

  • Row level commit using DB adapter

    We have a soa 11g requirement, where a File is polled using File adapter and this is inserted into DB using DB adapter. All the commits should happen
    at the record level, where in if one of the record fails due to improper data, the others should commit. I am using a single DB insert rather than looping for
    each record in the bpel process. I initially tried with XADatasource, later created a non XA datasource and used it in DB adapter. ALso used the property setting
    Idempotent=false. But if one of the record fails, the whole transaction is failed. How to achieve the record level commit?

    kiran4soa wrote:
    But if one of the record fails, the whole transaction is failed.That's the expected behaviour and I'm afraid you won't find any option/property to change this...
    http://docs.oracle.com/cd/E21764_01/integration.1111/e10224/soa_transactions.htm
    How to achieve the record level commit?You'll have to redesign your process... One option would be to split your process in two... have a BPEL1 to read the file and send individual messages to a JMS queue, and a BPEL2 to listen to the queue and process individual messages...
    Cheers,
    Vlad

  • How to do it in multi-record block

    Hi all,
    i have 1 text items in a multi-record block number of record displayed 10
    and i have values like 100 , 50, 30 in first 3 records and in 5th record i want to put some value like
    20 then i want to calculate all values like 100 + 50 + 30 +20 = 200 and i want to put the total value in a single record block.
    but my problem is i cannot able to calculate all the value because for the totale value i have to
    write a for loop to loop through the record
    but go_block() is not working in post_change .
    if any solution is there plz suggest.......

    Hi zeeshan
    my problem is i cannot able to calculate all the value because for the total value
    put the total value in a single record block.
    First pls the following...
    Guidelines for Working with Calculated Items Calculated items_
    1- They are display-only control items.
    2-Calculated items cannot be database items.
    3.While you can set a calculated item's Enabled, Mouse Navigate, and Keyboard Navigable properties to Yes,
    you cannot set the Insert Allowed or Update Allowed properties to Yes
    Second Keyword: TOTAL is a reserved oracle key word... pls read the Details...
    go_block() is not working in post_change .well u can use timers but no need for it u can reference block item but first u have to accumulate the values per record in WHEN-VALIDATE-ITEM TRIGGER in the last calculated item which is inserted by the user and assign it to the display item in ur current multi-record block :*block_name.total_item*.. as follow...
    :block_name.total_item := :item1 + .... ; Then u create a second display item > no of records property = 1 , named e.g. final_summarized_totals
    In order to summarize this total values accumulated in the multi-record display item named e.g. block_name.total_item
    Finally using PRE-INSERT , PRE-UPDATE,PRE-DELETE Triggers to assign the value calculated into the display item * block_name.total_item* into the db_item into the previously mentioned Trigger Block-Level Off-course.
    :block_name.total_db_tem := :i:block_name.final_summarized_totals ; Hope this helps...
    Regards,
    Amatu Allah

  • How can I create a loop in a multi-record block (on the background)

    I have a multi-record block.
    In one item I change a value.
    Upon this change, in the when-validate-item I would like to
    change other records in the same block.
    I planned to loop the block with go_record and to do my things
    in each record. Unfortunately the go_record built-in is
    restricted and cannot be used in a wvi-trigger.
    Another approach can be to update the records in the database
    and to perform an execute_query after this change. Also this
    procedure cannot be used in a wvi.
    How can I easily loop in a multi-record block???

    You can try to put loop with go_record in KEY-NEXT-ITEM on that
    field.
    Or if you change something and then press KEY-COMMIT you can
    update another records in database and after commit do again
    execute_query. Something like :
    on KEY-COMMIT:
    update_another_records;
    commit_form;
    execute_query;

  • Check duplicate data entry in multi record block,which is a mandatory field

    Dear all,
    I have a situation where i have to check duplicate data entry(on a particular field,which is a mandatory field,i.e. it cannot be skipped by user without entering value) while data key-in in a Multi Record block.
    As for reference I have used a logic,such as
    1>In a When-Validate-Record trigger of that block I am assigning the value of that current item in Table type variable(collection type)
    as this trigger fire every time as soon as i leave that record,so its assigning the value of that current time.And this process continues
    then
    2>In a When-Validate-Item trigger of that corresponding item(i.e. the trigger is at item level) has been written,where it compares the value of that current item and the value stored in Table type variable(collection type) of When-Validate-Record trigger.If the current item value is matched with any value stored in Table type variable I am showing a message of ('Duplicate Record') following by raise_form_trigger failure
    This code is working fine for checking duplicate value of that multi record field
    The problem is that,if user enter the value in that field,and then goes to next field,enter value to that field and then press 'Enter Query 'icon,the bolth Validate trigger fires.As result first when-validate record fires,which stores that value,and then when-validate-item fires,as a result it shows duplicate record message
    Please give me a meaningful logic or code for solving this problem
    Any other logic to solve this problem is also welcome

    @Ammad Ahmed
    first of all thanks .your logic worked,but still i have some little bit of problem,
    now the requirement is a master detail form where both master and detail is multirecord ,where detail cannot have duplicate record,
    such as..........
    MASTER:--
    A code
    A1
    A2
    DETAIL:--
    D code
    d1
    d2 <-valid as for master A1 , detail d1 ,d2 are not duplicate
    d2 <--invalid as as for master A1 , detail d2 ,d2 are duplicate
    validation rule:  A Code –D Code combination is unique. The system will stop users from entering duplicate D Code for a A Code. Appropriate error message will be displayed.*
    actually i am facing a typical problem,the same logic i have been applied in detail section ,its working fine when i am inserting new records.problem starts when i query,after query in ' a ' field say 2 records (i.e. which has been earlier saved) has been pasted,now if i insert a new record with the value exactly same with the already present value in the screen(i.e. value populated after query) its not showing duplicate.................could u tell me the reason?and help me out...............its urgent plzzzzzzzzz
    Edited by: sushovan on Nov 22, 2010 4:34 AM
    Edited by: sushovan on Nov 22, 2010 4:36 AM
    Edited by: sushovan on Nov 22, 2010 8:58 AM

Maybe you are looking for