Rollback in Master-Detail form - SOLVED

Hellou.
I have 2 blocks Mater-Detail relation. I execute query and make some changes in Items from block 1 and some changes in items in block 2.There are althoug some POSTs. I have Button "Change Back" and i need to use this button to rollback all changes i have made (All post will be rollbacked). But it always rollback me only DETAIL block items, but MASTER block items didn't rollback.
I use Forms_ddl('rollback')
Althoug I change Session_mode to OFF and perform FULL rollback. But always the same. Master block NO ROLLBACK.
Some ideas???
Message was edited by:
zoffob

I want rollback and continue in query.I guess I don't understand what you are trying to do. Do you simply want to be at the same record when a rollback is issued? If so, this can still be accomplished using CLEAR_FORM() built-in. You simply need to capture the pertinent data so you can return to this record after the Form has been re-queried. For example, the user in on record number 75 when they decide they need to rollback the changes. In your Button trigger, you will need to capture that a rollback was performed and store the current record in a parameter or global variable. When the form is re-queried, check to see if a rollback was done and if so use the GO_BLOCK(), GO_ITEM(), and GO_RECORD() built-ins to return the user to the record they were on when they clicked on the Rollback button.
For Example:
When-Button-Pressed trigger
BEGIN
   /**I prefer to use Forms Parameters to capture Forms unique global variables because
      these values only apply to the current form and shouldn't be visible to other Forms
      in the same session. **/
   :parameter.rollback_issued := 'Y';
   :parameter.current_block := :system.current_block;
   :parameter.current_item := :system.current_item;
   :parameter.current_record := :system.current_record;
   /**If you modified the Data Block's Default Where clause you will want to capture this
       information also. **/
   :parameter.curr_blk_def_where := get_block_property(:system.current_block,DEFAULT_WHERE);
   CLEAR_FORM(NO_COMMIT,FULL_ROLLBACK);
END;Now, in your When-New-Form-Instance or When-New-Block-Instance trigger do something like:
BEGIN
   IF (:parameter.rollback_issued = 'Y') THEN
      :parameter.rollback_issued := 'N';
      set_block_property(:parameter.current_block,DEFAULT_WHERE,:parameter.curr_blk_def_where);
      GO_BLOCK(:parameter.current_block);
      EXECUTE_QUERY;
      GO_ITEM(:parameter.current_item);
      GO_RECORD(:parameter.current_record);
   ELSE
      /** Do what you would normally do here.  **/
   END IF;
END;If this is not what you are trying to achieve, please post what you are trying to achieve and why the CLEAR_FORM() method wont work and we'll see if we can help you find a way to achieve what you are trying to do.
Hope this helps.
Craig...

Similar Messages

  • How to determine the ROWNUM in a Master Detail Form

    Hello,
    I am working in a Master Detail Form with Orders and Order Items Information; and I created a process that allows the users to select a Product ID on a tabular form, and the next column is populated automatically with the Product Description.
    To achieve that, I followed some instructions by Denes Kubicek (http://apex.oracle.com/pls/otn/f?p=31517:241), but my case is slightly different:
    <ul>I am using a wizard-created tabular form, instead of a manual tabular form; and </ul>
    <ul>Instead of using another page as a Popup to pass the parameter of the ROWNUM, I am using a plug-in called “Tabular Form Super LOV” which is a modified version of the SkillBuilders’ Super LOV that works on Tabular Forms. </ul>
    The Product ID is returned in the correct row by the plug-in; but in the case of the Product Description, it is always returned into the first row; and my problem is that I don't know how to determine the row where the user clicked to call the plug-in.
    I set up an example in apex.oracle.com in case someone would like to look at it:
    Workspace: ediazjorge
    Username: test
    Password: test
    App Name: Sample App
    App Number: 1550
    BTW, I am using Apex 4.1.1.00.23 and Oracle DB 10.3.2.
    Thanks in advance,
    Erick

    Hello VC,
    Thank you for your time and help.
    Unfortunately, it is still not working properly:
    1. When the Popup LOV opens, the first row of the tabular form is 0, the second row is 1, and so on. How can I assign the values starting with 1 and in the format *0001* ? (I am still a novice on Apex and new to JavaScript :-), sorry about that).
    --2. Also, when I close the Popup LOV, the value of P1_ROWNUM is ‘undefined’ again so I'm not sure if the Product Name column will be populated.--
    3. And finally, you are using the jQuery Selector uPopupLOVIcon, which is an attribute of the Cloudy Theme. In my real application (Apex 4.1.1.00.26), my element looks like: *<img src="/i/lov_16x16.gif" width="16" height="16" alt="Popup Lov" alt="List" style="vertical-align:middle;" align="middle" />*. What do you recommend me to use as a jQuery Selector?
    Again, I really appreciate your help and time. I think you solved the most difficult part.
    Thank you so much,
    Erick
    Update: I just found out that the problem with my comment 2 is because I didn’t delete the previous dynamic action that set the value to P1_ROWNUM.
    Edited by: ediazjorge on Sep 18, 2012 11:20 AM

  • How to set the Master Action of a master detail form?

    Hi,
    I have a regular form navigates to a master detail form in
    insert mode. How do I make the MASTER_ACTION show up
    as "Insert" instead of "None"? If I call the Master detail form
    in auto query mode, it will show up as "Update" in the
    MASTER_ACTION. How do I make the MASTER_ACTION show up as
    "Insert" instead of "None"?
    Any ideas are highly appreciated.
    Thanks;
    Kelly.

    Just have a look over these two statements if it solves your problem
    one time where clause
    Set_Block_Property('BLOCK_NAME',ONETIME_WHERE,your form item);
    dynamic where clause
    set_block_property('BLOCK_NAME'default_where, your form itme)
    you can where clause at run time from any procedure or some triggers

  • How can I insert in the table detail of a master/detail form??

    Hello, I have created a master/detail form from the assistant, and with the code generated by APEX I do not manage to insert a row in the table detail, I press the button 'Add Row' and refill information, when I press the button ' to apply changes ' me the following mistake appears:
    'Error in mru internal routine: ORA-20001: Error in MRU: row= 1, ORA-20001: ORA-20001: Current version of data in database has changed since user initiated update process. current checksum = "C85B64D53C8D63E9D3EE83B82728DFA3", item checksum = "244B1FED90DF5CC5B0DDB6728F4D02DD"., update "CRM_ADMIN"."ASIGNACIONES_AM_CONTACTOS" set "SECUENCIA" = :b1, "CODIGO" = :b2, "NOMBRE_CLIENTE" = :b3, "NOMBRE" = :b4, "COMENTARIOS" = :b5, "CODIGO_COMERCIAL" = :b6'
    How I can solve and be able to insert in the table it detail?
    Thanks

    Hi Law,
    Text in a shape or a text box will not feature in the table of contents.
    To get a colour behind your titles, type them into your document (not a shape). Format as Heading or some other paragraph style the TOC will recognise.
    Select the title text and Format Panel > Text > Font > Gearwheel > Advanced Options.
    Choose Character Fill Color and choose a colour from the palette (left) or colour circle (right).
    Example Titles (all on the same page for a smaller screen shot).
    Chapter 3 (in a coloured Text Box or Shape) does not appear in the TOC:
    Hint for cheats :
    To give the titles a wider Character Fill Colour, add some Tab characters before and after.
    Regards,
    Ian.

  • Problem: trying to update all detail rows on pre-commit (MASTER DETAIL FORM

    Hi:
    I got a MASTER DETAIL form... and I need to update every detail row of this form (if the master was updated) before commiting the changes. the problem is that i cannot do that for instance in PRE-COMMIT or ON-COMMIT... it's an "illegal operation". I achieved part of it by coding KEY-COMMIT... but that did not solve the all problem. first take a look of the kind of code i want execute before commiting.
    form trigger key-commit code is is somehow like this:
    DECLARE
    tot_line NUMBER (3);
    line NUMBER (3);
    begin
    IF NAME_IN ('system.form_status') = 'CHANGED'
    THEN
    GO_BLOCK ('DETAIL');
    LAST_RECORD;
    tot_line := GET_BLOCK_PROPERTY ('DETAIL', current_record);
    FIRST_RECORD;
    line:= 1;
    LOOP
    :detail.quant := :detail.quant + 1;
    EXIT WHEN line= tot_line;
    next_record;
    line:= line+ 1;
    END LOOP;
    FIRST_RECORD;
    GO_BLOCK ('MASTER');
    END IF;
    COMMIT;
    end;
    The problem is for instance when the users close form in the "X" button (right top, near minimize form) ... If they do that Forms ask "Do you want to save changes?" ... and with this i do not execute the update of the detail rows...
    But there are other situations when this happens... for instance if EXECUTE_QUERY when i change a record...
    Anyone help?
    Joao Oliveira

    Use PRE-UPDATE trigger (Master block).
    begin
    update <detail_table>
    set quant + 1
    where <detail_table>.<relaition_column1> = :<Master_block>.<relaition_item1>
    and <detail_table>.<relaition_columnN> = :<Master_block>.<relaition_itemN>
    and <detail_block_WHERE>;
    EXCEPTION WHEN OTHERS THEN NULL;
    end;

  • Cannot delete record in master detail form in apex 4.0.1

    Dear all,
    I've created a master detail form in apex 4.0.1. Inserting and updating records is working. But when i want to delete a detail or master record, nothing is happening. The delete button is just not working.
    Can someone please tell me if this is a bug, and if so, is there a work around to solve this problem?
    Thanks,
    Diana

    Hi,
    Am I the only one having this problem?
    Thanks,
    Diana

  • JTable problem in master detail form

    I've created a master detail form. There is only one Navigation bar for both master and detail. Detail has a JTable component. JTable doesn't get focus when it doesn't have any row and I am uanble to insert new rows. To cope with this problem I've added two new buttons in Navigation Bar to travers to the next and previous iterBinding.
    When I start my form cursor apperas in the first field of master view when I press Next Button nothing happens ( Status Bar should show the next iterbinding/view). I've addes some debug mesgs in iterBindingChanged method of NavitaionBar class and it seems by looking the mesgs that detail/Jtable's iterBinding get focus two times but at last focus has been returned to the master iterBinding.
    Is there any suggestion to solve this problem.
    Regards
    Aamir

    Hi,
    I'm using 1.4.0 for my JClient and, due to the improved focus management provided in the new JDK, I am able to properly manage master-details configuration with only one navigation bar (of course, the JTable must be able to receive the focus, but this also is much easier in 1.4.0...)
    Nevertheless, the solution I found is quite complex and I would happily discard it.
    If you could find a solution that works "naturally" on frames with only one navigation bar, it would be great! I think that the buttons in the nav bar should apply to the "current" iterator binding (the iterator binding for the control having the focus).
    Thanks,
    Adrian

  • Master-Detail forms no longer work in Access

    Hi
    We have migrated an Access 2000 application into an Oracle 9i database successully. However, the application has a master-detail form that functioned correctly before migration. Since migration the child form does not appear, thus preventing the entering of a new child record.
    Before migration the detail form appeared as a totally blank form. Now the detail form simply doesn't appear. The detail form is based on a select statement which selects data from a stored query. I am suspicious that this is the cause as during tests I have tried manually creating a simple master-detail form and can see this working. I was able to get the test form to fail to produce a blank subform when the subform was based on a select statement however, attempts to change the real form to look at a table rather than a select statement don't solve the problem.
    We have looked on the Oracle forums, but the only error matching our requirements was posted in March 2001 with no real answer (Q: unable to launch subform after migration
    This seems a problem that would not be uncommon so surely we have omitted doing something obvious.
    Any help greatly appreciated.
    Regards
    Tim Broome

    Hello.  I believe I found the answer to the problems yesterday.  After trying everything I could from different forums and getting nowhere, I looked at the Adobe Properties by right clicking on the program.  Once in Properties, there is a compatability tab.  I run Windows 7 Pro 32bit.  Nevertheless, I selected the box that says "Run this program in compatability mode for" and then selected Windows 7.  It seems ridiculous to run the program in compatability mode for the OS I actually have on my system but it has done the trick.  All forms work now and my other PDF issues around the office have been resolved.  The only downside is that some PDF documents are printing slowly, but at least everything works. 
    ps: I first tried running compatabiilty mode for XP but it caused several credentialing issues with my systyem and our network, allowed forms to work, but only if they originated from my system (not the network) and did not allow other PDFs to open. 

  • Master-Detail Forms (Populating a Foreign Key Automatically)

    Master-Detail Form
    When inserting a MD Form, the Master ID (e.g. Deptno,the Primary Key) is generated.
    How is it possible for this also to be generated in the Detail Form (as the Foreign Key)? The requirement is for the foreign key to be populated automatically.
    Any help would be much appreciated.
    Thanks.

    This item is discussed earlier in this group.
    It's solved in version 3.0.8
    Regards,
    Anna

  • Master Details form (LOV based on Detail Column of Join Condition)

    I have created a master detail form where user_id is joining master and details.
    I have created one dynamic lov based on child user_id in detail block to diplay all user who works under current user.
    Problem : When i want to select Insert detail action in detail block the dynamic lov should read the user_id which is going to be inserted when you press Save button. Means as its not getting populated till one click on save button my lov is not getting refereshed.
    Please advice what should i do.
    Thanks
    Bakulesh

    I solved myself by modifing some guru's script from this forum little bit. I am adding here for feedback or use to any.
    htp.p('<script language="JavaScript1.3">
    function getMstFieldValue(form,fieldName)
    var objName = "";
    var tmp = "";
    var dAction = "";
    var sel_idx = 0;
    var cnt = 0;
    var instance = 0;
    var slicedName;
    var fillData = new Array();
    var blkname;
    for(var i = 0; i < form.length; i++)
    slicedName = form.elements.name.split(".");
    tmp = slicedName[2];
    instance = parseInt(slicedName[3],10);
    blkname = slicedName[1];
    //alert("Fld "+tmp+" blk "+blkname+ " instance "+instance);
    if (!tmp)
    continue;
    objName = tmp;
    if (objName == fieldName && blkname == "MASTER_BLOCK")
    return form.elements[i].value;
    function setDetFieldValue(form,fieldName,value)
    var objName = "";
    var tmp = "";
    var dAction = "";
    var sel_idx = 0;
    var cnt = 0;
    var instance = 0;
    var slicedName;
    var fillData = new Array();
    var blkname;
    for(var i = 0; i < form.length; i++)
    slicedName = form.elements[i].name.split(".");
    tmp = slicedName[2];
    instance = parseInt(slicedName[3],10);
    blkname = slicedName[1];
    //alert("Fld "+tmp+" blk "+blkname+ " instance "+instance);
    if (!tmp)
    continue;
    objName = tmp;
    if (objName == fieldName && blkname == "DETAIL_BLOCK")
    form.elements[i].value = value;
    </script>');
    thanks
    Bakulesh

  • Having problem with creating Master Detail form , please help

    I have to work on a project to create a survey system using APEX, as am new on using this tool , am still facing some problems to finish my job..
    i created Master/Detail form using wizard, the master form is working fine but am when i try to add data using the detail form its giving me error :
    Error in mru internal routine: ORA-20001: Error in MRU: row= 1, ORA-20001: ORA-20001: Current version of data in database has changed since user initiated update process. current checksum = "A884FA378C851786DDFE3A33709CB23C", item checksum = "5F8B1EE5CD3D46437455F43B37B9A6A0"., update "ABA"."ABA_SURVEY_SUBCATEGORY_MAST" set "ASCM_CATEGORY_ID" = :b1, "ASM_SURVEY_CODE" = :b2, "ASSM_SUBCATEGORY_ID" = :b3, "ASSM_SUBCATEGORY_DESC" = :b4
    i tried to go through the posts from others but i still dunno what is this error !!!& how to solve it..
    my master data table have 2 primary keys.. the details data table have 3 primary key all of them using trigger to fire a sequence to get the next_val!!
    am desperate & need help urgently for this ASAP.

    hello
    here is the solution,i hope this might help u.
    go to the code of your button and change write the following
    go_block('name of your master block');
    execute_query(no_validate);
    and in the object navigator make the first item in the master
    block that it should be displayed in the canvas and it must be a
    navigable item too.not a display item.
    thank you
    Zeeshan Ahmad

  • Inconsistent inserts into detail table of master-detail form

    Hello,
    [I am not sure if this is a bug or user error, so I've also put this in the bug tracking system.  Apologize for the 'duplication']
    I have a master-detail form: Orders is the master, and Order_Details is the detail. I have noticed some inconsistent behavior when inserting the detail information.
    On occasion, the row will be inserted, and a null value will get inserted into the database for the first column of the detail table; all the other data values will be inserted fine. There doesn't seem to be any pattern to when it happens. I wrote down the following test steps:
    1. Enter new order information and click 'Create'
    2. Click 'Add Row' button so can add order detail info
    3. Enter detail row information
    4. Click 'Add Row' (I do this so I can see the success message that the detail data was actually inserted)
    5. Click 'Apply Changes' at the master level.
    I ran a query on the order details table and saw that the data inserted correctly. Then I ran the following test:
    1. Enter new order information and click 'Create'
    2. Click Add Row button so can add order detail info
    3. Enter detail row information
    4. Click 'Add Row' (success message appears that detail was inserted)
    5. Enter second detail row information
    6. Click 'Add Row' (success message appears that detail was inserted, however, now in the first column of that second detail row - the product name field/column - the data does not appear. I only see my null text value. The data in the first detail row is all correct)
    7. Enter third row detail information
    8. Click 'Add Row' (success message appears that detail was inserted, and this row's information appears correctly, as does the first row's, but the second row is still showing a null value for the product name column)
    9. Click 'Apply Changes' to get out of the form
    A query of the order details table shows that a null value (-) has indeed been inserted into the table for the product name column of the second detail row.
    This behavior also happens when I don't have a null value for the LOV (i.e., it defaults to the first row of the lookup table).
    Has anyone seen this before? Am I entering the data incorrectly?
    Thanks.
    -melissa
    Message was edited by:
    mblakene

    having the some problem. Any help with this ??
    milowski were you able to solve it ? can you share the information.
    Thanks

  • Trouble Creating a Master-Detail Form

    I am trying to create a Master-Detail Form for two tables: Employee and Employee tools. I am using the wizard to create the form. I am just using the defaults and haven't added any code. The form updates the detail rows fine, but I get an error every time I add a new row. Below is an excerpt of the error. It appears that the Checksum is changing. Since this is generated code, is there a bug in APEX. Any thoughts on how to overcome this?
    Thanks,
    JOhn
    Error in mru internal routine: ORA-20001: Error in MRU: row= 1, ORA-20001: ORA-20001: Current version of data in database has changed since user initiated update process. current checksum = "A884FA378C851786DDFE3A33709CB23C", item checksum = "EF2E77BFA1386ECCC11B7C3B2A464E60"., update "EMPLOYEES"."GLASSES" set "FK_PAYROLL_NUMBER" = :b1, "PURCHASE_DATE" = :b2, "OPTICIAN" = :b3, "COST" = :b4, "CHECK_NUMBER" = :b5

    Hi,
    You can have multiple regions with data from different tables on a single page.
    It all depends on the design of your database and pages, how you're going to solve this. Sometimes you need to create a database view to select data from multiple tables, sometimes you'll just create more than 1 region on your page.
    Just try and play a little with Apex to learn some of the tricks. Also the built-in help is very good. You can select a 2-day developer guide to get a feeling of what is possible.
    Good luck!

  • Wizard generated Master-Detail form issues

    The wizard-generated master/detail forms have several severe usability issues when the "Choose Layout" option is set to "Builder master detail with: edit detail as tabular form on same page".
    Some of these issues are:
    - The form has two Apply Changes buttons, one to save the master row and one to save the detail row. Users find this very confusing. If you save the master row changes, any changes to the detail rows are lost and vice versa.
    - The form has two Delete buttons, one to delete the master row and one to delete the checked detail rows. Users find this confusins also. Clicking the lower delete button discards any other changes that were made.
    - The Add Row button also discards any other changes that were made.
    The first two issues are easily fixed. With a few simple changes to the generated page, I can make it so there is a single "Apply Changes" button that 1) saves any changes to the master row, 2) saves any changes to detail rows and 3) deletes any checked detail rows.
    I cannot figure out how to solve the third issue (that the add row button discards any changes). I can make it so the "Add Row" button saves the changes, but this isn't user friendly either; I don't think any changes should be comitted unless the user specifically presses 'Apply Changes'.
    So far, I thought of several ways to possibly fix this but can't get any of them to work. Some of the ideas were:
    1. The 'Add Row' button could run the automatic row processing and MRU processes, but not do a commit untill/unless Apply Changes is pressed. I don't think this is feasible because http is stateless and connection pooling may be used, so we can't have a transaction that spans http requests.
    2. Move the Add Row process to page rendering so that the detail table always has an empty "add row" row thereby making the Add Row button unnecessary. I tried this, but it looks like the add row process was designed to run during the page processing, not during rendering, and it fails with a divide by 0 error when it is run during page rendering.
    3. Use client-side DHTML (instead of the HTML DB add row process) to add an empty row to the html table (i.e. add row button does not do a submit, it is handled entirely on the client). I tried this, but the MRU process fails because it doesn't expect the added row.
    If anyone has any other ideas on how to fix this problem, they would be greatly appreciated.
    HTML DB solves this problem in the SQL workshop create table wizard.
    In HTML DB 1.6, the "Add Column" button does a submit but somehow saves any changes that were entered.
    In HTML DB 2.0 beta, client-side DHTML is used (my approach 3 above).
    Can someone from Oracle share how the HTML DB create table wizard solves this problem?

    Eric,
    Thanks for your feedback. I’ll add your suggestions to our list of tabular form enhancement request.
    The wizard generates a regular form for the master record and a tabular form for the detail records. As you pointed out, it’s quite easy to customize this to your individual needs.
    Unlike regular forms, there’s currently no session state concept for tabular forms, so you either need to write your data to the database, or you will loose any changes if you e.g. paginate. For the same reason, the “Add Row” button and the associated process is generated so that any changes are saved to the database before adding a new row. Of course the MRU process that is executed on “Add Row” can be removed, if that is the preferred behavior.
    A work around would be to code the DML processes for tabular forms manually, and temporary store the data in HTML DB collections to simulate a stateful behavior.
    In HTML DB 2.0 we started adding DHTML features, such as the create table wizard you’re referring to. Some features, like the pull down menus, will be available to be used in your own applications. Other features, like the DHTML tabular form, won’t be available for custom applications in 2.0.
    Regards,
    Marc

  • Unable to View records in a master-detail form

    In a master-detail form, I am not able to view records of the master/detail table
    by accepting the values of the PK of the header table items.
    Please tell me the exact steps, so that I can view the detail table records based on the header table PK items.
    Thanks.

    Yes I wrote the LOV code in a different procedure. Now, the view is showing correctly. But I am now trying to update the viewed records.
    The steps I am following in View Option is as below:
    go_block('header');
    clear_block(no_validate);
    execute_query;
    proc_lov;
    go_block('item');
    execute_query;
    I am unable to commit the changes made in the blocks
    The reason it is showing is : UNABLE TO update.....I saw the display_error.
    The system is trying to update the PK part also..Why....Though PK party is clearly defined in the table as well as property palette. Pl. explain how to go about it. Uregent help is required once again.

Maybe you are looking for

  • Cannot see itunes library in Photos slideshow

    When creating a slideshow with PHOTOS, I compiled and edited the pictures. When trying to include music from my iTunes library, I get the following message: "Open iTunes to populate this list". No way of seeing my iTunes library within Photos, hence

  • Can't run sidecar AIR installer on Mac OS X from UDF 1.0.2 image

    I'm experiencing another AIR installer issue, this time trying to run an AIR 2.5 sidecar installer for Mac OS X that is placed on a UDF 1.0.2 image (created with Toast 10). The error in the Console when double-clicking the installer.app is: udf error

  • How can I get the run time of a method?

    I click a button "draw" to invoke a method such as draw many shades. It hangs a long time. I want to get the information of how long it spent. How can I do it? I'm new guy, more detailed please . one example would be much better ThankS all :)

  • Problem while using:RSDRC_CUBE_DATA_GET

    Hi ,   I am extracting data from a basic infocube using fm :RSDRC_CUBE_DATA_GET . Unfortunately it is extracting the data from F-facttable only, and not extracting compressed data. Following are my selections in the function module. Please advice if

  • Whare we assign number range fi document

    Hi Friends,                             Iam posting J1is but in this Fi document is not genarated  where assign the mumber ranges for this Fi document