PLSQL logic to insert master detail records

Hi All
I have a requirement where I need to do the following.
1: Have a headers and details table for some data that I need to insert
2: Transactions need atomicity...ie If the header record fails then the details should still be inserted , but with an Error flag
3: Needs good error handling
I'm trying to come up with some logic like so
1: Have a header cursor and a details cursor
2: Have the lines for loop inside the headers for loop and then do the inserts
3: If an exception is thrown for one record it should not error out the other records(this can be done with a begin end block)
Does anyone have a better idea for this...Is it an efficient way of developing header- detail inserts?
If someone has an example that I can go over I would appreciate that or a basic algorithm would do too..
Thanks
D

851866 wrote:
1: Have a headers and details table for some data that I need to insert
2: Transactions need atomicity...ie If the header record fails then the details should still be inserted , but with an Error flagThis is the opposite of atomicity, what you describe is called data corruption.
3: Needs good error handlingGood error handling is specific to the expected error and is defined by the specific business requirements.
1: Have a header cursor and a details cursor
2: Have the lines for loop inside the headers for loop and then do the inserts
3: If an exception is thrown for one record it should not error out the other records(this can be done with a begin end block)
Does anyone have a better idea for this...Is it an efficient way of developing header- detail inserts?No, using a cursor loop is as inefficient as possible.
If someone has an example that I can go over I would appreciate that or a basic algorithm would do too..If you provide an example of the error you expect and what you are supposed to do in that situation then it is possible someone could provide an example algorithm.

Similar Messages

  • BC4J - Inserting Master/Detail records in same transaction.

    I know this is possible, but I seem to be missing something to allow it to happen within BC4J.
    I'm creating a RowSet off of a View Object and inserting new Rows into this RowSet. This RowSet represents my child/detail records for insert into a child table.
    I then create a new Row off of another View Object. This row represents my Master/parent record for insert into a parent table.
    All of the above is being done in the same applicationModule transaction with locking mode set to Optimistic.
    Before I commit the transaction, I grab the next sequence # to use as the primary key for the master record and the foreign key for the child records. I apply those to the newly created child rows and the newly created master row.
    However, when I commit I continue to get a JBO-26041: Failed to post data to database during "Insert": error due to ORA-02291: integrity constraint (CUST_LICENSES_FK4) violated - parent key not found
    If everything was created in the same transaction, why won't this allow me to insert into both tables with the correct primary/foreign keys? It's almost as if the child records are being inserted first prior to the parent record.
    Any ideas?
    Thanks in advance..
    Teri Kemple
    TUSC
    [email protected]

    However, when I commit I continue to get a JBO-26041: Failed to post data to database during "Insert": error due to ORA-02291: integrity constraint (CUST_LICENSES_FK4) violated - parent key not found
    If everything was created in the same transaction, why won't this allow me to insert into both tables with the correct primary/foreign keys? It's almost as if the child records are being inserted first prior to the parent record.This is due to the order of rows being posted. In this case it seems the detail row is getting posted before the master.
    To avoid such situations, either you may implement your own post ordering by making sure that when a detail is to
    be inserted, it's master is inserted or you may use "Composition Association" flag in the association wizard between
    the master and the detail entities to let the framework manage a tight composition relationship between the two entity
    types. BTW, there was another definitive thread recently on inserting master-detail in the
    same transaction, but the forum search engine is so useless I can't find it. Anyone
    have the msgid handy or know how to find that thread again??
    FYI: the help describes the Composition flag functionality in terms of the Master record already existing in the DB. In our problem here, the Master is being inserted in the same transaction. Thus needs to be posted FIRST.
    I got a integrity constraint exception too, then set the composition flag and now I get:
    500 Internal Server Error
    oracle.jbo.InvalidOwnerException: JBO-25030: Failed to find or invalidate owning entity.
         void oracle.jbo.server.EntityImpl.create(oracle.jbo.AttributeList)
         void gov.ga.gdc.otf.bc.JotfWithdrawalsImpl.create(oracle.jbo.AttributeList)
         void oracle.jbo.server.ViewRowStorage.create(oracle.jbo.AttributeList)
         void oracle.jbo.server.ViewRowImpl.create(oracle.jbo.AttributeList)
         oracle.jbo.server.ViewRowImpl oracle.jbo.server.ViewObjectImpl.createInstance(oracle.jbo.server.ViewRowSetImpl, oracle.jbo.AttributeList)
         oracle.jbo.server.RowImpl oracle.jbo.server.QueryCollection.createRowWithEntities(int[], oracle.jbo.server.EntityImpl[], oracle.jbo.server.ViewRowSetImpl, oracle.jbo.AttributeList)
         oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.createRowWithEntities(int[], oracle.jbo.server.EntityImpl[], oracle.jbo.AttributeList)
         oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.createRow()
         oracle.jbo.Row oracle.jbo.server.ViewObjectImpl.createRow()
         void gov.ga.gdc.otf.appmodule.JOtfOffenderAppModuleImpl.insertWithdrawal(java.lang.String, java.lang.String, java.math.BigDecimal, oracle.jbo.domain.Number, java.lang.Integer, int)
         void gov.ga.gdc.otf.appmodule.JOtfOffenderAppModuleImpl.payOneObligation(java.lang.String, java.lang.String, java.lang.Integer, oracle.jbo.domain.Number, java.math.BigDecimal, int)
         void gov.ga.gdc.otf.appmodule.JOtfOffenderAppModuleImpl.payObligations(java.lang.String, java.lang.String, java.math.BigDecimal, oracle.jbo.domain.Number)
         void gov.ga.gdc.otf.appmodule.JOtfOffenderAppModuleImpl.receiveFunds(java.lang.String, java.lang.String, int, java.math.BigDecimal, java.lang.String, java.lang.String, java.lang.String, java.math.BigDecimal, long)TIA much! curt

  • What is the proper way to record line numbers in Master/Detail records?

    Guys and Gals,
    Been thinking about this for awhile, but thought it best to ask the people who really know what they are doing.
    What is the proper way to record & show line numbers in a Master / Detail record set?
    For example, take Master/Detail relationship Orders and OrderItems. Orders has a column Document_Number and OrderItems has Document_Number, Line_Number. Line_Number should contain the row number 1,2,3,4 ... etc. for each row in a document.
    Should I ...
    <ol><li>Add a sequence and a trigger in the database? The FusionOrderDemo does this, but then the sequence never "resets" and I've got row numbers that keep incrementing. So one document has rows 4,5,6 and the next document has 7,8,9 when they should both have 1,2,3.</li>
    <li>Programmatically take care of the row numbers? This seems like I'm asking for trouble. Anytime an insert or delete operation gets done, I'll have to iterate through rows and re-assign row numbers.</li>
    <li>Is there a way to assign row numbers in a table iterator (or data collection?) to an entity?</li></ol>
    Any suggestions would be appreciated. It's looking like #2 is my only option, but if anyone knows different I'd love the input.
    Will

    Thank you both guys.
    As John said, I believe I'm looking for a gap-free sequence per master record.
    The line number of the OrderItems table is the second half of the primary key. The first half of the primary key (DocumentNumber) is the foreign key to the Orders table.
    Think of it like line items on an order or invoice. For example, if you were talking to someone on the phone concerning an invoice, you might say, "The pricing for line item #3 is incorrect." In this case, it's good to have a common reference. Or imagine a Microsoft Excel spreadsheet with no row numbers displayed! You'd never get anywhere if you had to explain something over the phone.
    If this is tricky to perform, I take it using a sequence and trigger such as the Fusion Order Demo is the best way to approach the challenge for simplicity's sake?
    Will

  • Master-Details Record

    I have a Master and two details records. I need to generate report for the Master-Details record.
    I need to include some details from the Master table and some details from each of the detail tables.
    For example :
    In Master table: Employee_Number
    Employee_Name
    Company_Code
    Company_Name
    In Application Detail table: Application_Code
    Application_Name
    In Non-Application Details table: Non-Application_Code
    Non-Application_Name
    I need to include Employee_Name, Company_Name, Application_Name and Non-Application_Name in my report. How should I go about creating the report?and may I know what type of report style should I use?Should I use Tabular or Group Above?
    Thank for your help

    hello,
    you might want to start off with a regular master detail layout and then modify the layout manually to fit your needs.
    when running throught he wizard, you just select whichever fields you want to display.
    regards,
    the oracle reports team --pw                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Spry insert master/detail layout Can't get more than two columns?

    Ive been trying to get more than two columns just experimenting with spry data sets and can't with the layout option "insert master/detail layout"
    What am I doing wrong?
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:spry="http://ns.adobe.com/spry">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <script src="SpryAssets/SpryData.js" type="text/javascript"></script>
    <script src="SpryAssets/SpryHTMLDataSet.js" type="text/javascript"></script>
    <link href="SpryAssets/SpryMasterDetail.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">
    var ds1 = new Spry.Data.HTMLDataSet("benefitsdata.html", "bizben", {firstRowAsHeaders: false});
    </script>
    </head>
    <body>
    <div align="center">
      <div class="MasterDetail">
        <div spry:region="ds1" class="MasterContainer">
          <div class="MasterColumn" spry:repeat="ds1" spry:setrow="ds1" spry:hover="MasterColumnHover" spry:select="MasterColumnSelected">{column0}</div>
        </div>
        <div spry:detailregion="ds1" class="DetailContainer">
          <div class="DetailColumn">{column1}</div>
          <div class="DetailColumn">{column2}</div>
          <div class="DetailColumn">{column3}</div>
        </div>
        <br style="clear:both" />
      </div>
    </div>
    </body>
    </html>

    Hello,
    in addition to Sudarshan's statement about the discontinued support: In my SPRY library I found this "html_dataset_sample". Maybe it could help you. Here the source code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:spry="http://ns.adobe.com/spry">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Untitled Document</title>
    <script src="SpryAssets/SpryData.js" type="text/javascript"></script>
    <script src="SpryAssets/SpryHTMLDataSet.js" type="text/javascript"></script>
    <script type="text/javascript">
    <!--
    var ds1 = new Spry.Data.HTMLDataSet("benefitsdata.html", "bizben", {firstRowAsHeaders: false, useCache: false, tableModeEnabled: false, sortOnLoad: "column0", sortOrderOnLoad: "ascending", rowSelector: "tr.destroyed", dataSelector: "td"});
    ds1.setColumnType("column2", "number");
    ds1.setColumnType("column3", "number");
    ds1.setColumnType("column4", "number");
    //-->
    </script>
    </head>
    <body>
    <div spry:region="ds1">
    <table>
      <tr align="center" valign="middle">
       <th width="100" spry:sort="column0">Name</th>
        <th width="100" spry:sort="column1">Class</th>
       <th width="100" spry:sort="column2">Length(m)</th>
       <th width="100" spry:sort="column3">Crew Size</th>
       <th width="100" spry:sort="column4">Crew 1</th>
    </tr>
      <tr align="center" valign="middle" spry:repeat="ds1">
       <td width="100"><p>{column0.1}{column0.2}{column0.3}</td>
         <td width="100">{column1}</td>
       <td width="100">{column2}</td>
       <td width="100">{column3}</td>
       <td width="100">{column4}</td>
    </tr>
      </table>
    </div>
    </body>
    </html>
    Hans-Günter

  • Foreign key validation while creating master/detail record in document mode

    I am creating master/detail records in the document mode. And I am generating the master primary key in the create() method of the master Entity Object. Now I valdate the foreign key in the detail Entity Object's validateEntity() method by doing a query to the master table through some View Object.
    But since the master record has not yet been posted (since it hasn't been committed) to the database, this query does not return any record and the validation fails in detail object.
    And thus the create fails.
    Please let me know if this is the right approach for doing this. If so where I am going wrong? Else please let me know if there are any better approach to do this.
    Kunal

    Kunal:
    Use a code snippet like the following:
    --- Assuming you're in the detail EO's create method ---
    oracle.jbo.server.EntityDefImpl eDef = oracle.jbo.server.EntityDefImpl.findDefObject(<package-qualified-name-of-the-master-Entity-Object>);
    oracle.jbo.Row masterRow = eDef.findByPrimaryKey(this.getDBTransaction(), <foreign-key>);
    If the row does not exist, masterRow will be null.
    findByPrimaryKey first checks the entity cache (which will include your new master row(s)) and then go out to database (if it's not in cache).
    Thanks.
    Sung

  • Using EJB creating Master/Detail Record

    Hi All
    I would really in need of your help regarding how to show the information of master detail records in a single form
    eg: one text field with department Id and a Search button which should give relevent employees details working in that particular department.
    I tried with ADF business components it works fine..
    I need to do through pure Session Beans and Entity Beans(note : not thru using EJB:UseBean Tag)
    Please i will really appreciate your valuable help..
    Thanks All
    Have a Nice day
    Mohamed Anez

    Kunal:
    Use a code snippet like the following:
    --- Assuming you're in the detail EO's create method ---
    oracle.jbo.server.EntityDefImpl eDef = oracle.jbo.server.EntityDefImpl.findDefObject(<package-qualified-name-of-the-master-Entity-Object>);
    oracle.jbo.Row masterRow = eDef.findByPrimaryKey(this.getDBTransaction(), <foreign-key>);
    If the row does not exist, masterRow will be null.
    findByPrimaryKey first checks the entity cache (which will include your new master row(s)) and then go out to database (if it's not in cache).
    Thanks.
    Sung

  • Generate file with a master-detail records

    Hi everyone,
    I need your help, one more time.
    I want to generate a file in ODI that have two distincts records of the detail, a master-detail records. The first one record contain general data and second one contains a second level information about the previous.
    I got the result using a bad solution, loading the file line by line, but the file is so large and performace was very slow.
    The expected result is:
    001Purchase Order id 99
    002Item 1
    002Item 2
    001Purchase Order id 150
    002Item 1
    002Item 3
    001Purchase Order id 4870
    002Item 3
    Anyone has an alternative for that?
    regards.

    hello
    i belive you need to use pivot operator
    check out this blog
    https://blogs.oracle.com/warehousebuilder/entry/pivoting_data_in_owb
    rgds

  • Master-details records

    Hi Everybody,
    i have a requirement to show master detail records.to show data i have 3 tables
    they are 1) Flat_Master(flat_id,flat_desc,pic)
    2)Flat_Detail(flat_id,flat_face_id,flat_loc)
    3)face_tab(face_id,face_desc)
    in my jsf page i displayed flat_master as master records and flat_detail as detail records
    here flat_detail is updatable.so for flat_face_id i created a lov choice list based on face_tab table(ADF BC level).
    so when master record i changed, my choice list is not getting changed amd even when page load also for the first record also it is not selecting..
    How can i set this choice list value programatically based on master records?
    Any ideas can you please share with me?
    thanks
    KM.
    Edited by: Mr. Murali on Sep 13, 2011 3:21 AM

    pls provide me the detailed view.,
    what ur trying to say and wat s ur use case?

  • Copying master detail records in oracle forms

    Hi,
    Have a master details block , using a copy button i copy the existing contents
    in both the blocks , than primary key and foreign key value of the both blocks are changed and i want to save it as a new record.
    Problem is when i do the above it goes to record status as update
    it is not doing insert with the values.and throwing an error wrt referential integrity
    pls help
    with thanks

    This forum focuses on EBS. For Form specific questions, you can try Forms

  • TooManyObjectsException inserting master-detail composed entities

    Hi all,
    I have read something similar in the blog, but I can't solve my problem.
    I am using JDev 11.1.1.0.2 and I have thi situation:
    1) a page where I can edit data, and pushing a button I can create a new record
    2) clicking on this button, starts a bounded task-flow (train) where I insert master (before) and detail (after) data.
    I have checked composition flag in the associations that links the two entities
    When I try to commit I have this error:
    oracle.jbo.TooManyObjectsException: JBO-25013: Too many objects match the primary key oracle.jbo.Key[... ].
         at oracle.jbo.server.EntityCache.throwTooManyObjectsException(EntityCache.java:431)
         at oracle.jbo.server.EntityCache.addForAltKey(EntityCache.java:818)
         at oracle.jbo.server.EntityCache.add(EntityCache.java:404)
         at oracle.jbo.server.ViewRowStorage.entityCacheAdd(ViewRowStorage.java:2551)
         at oracle.jbo.server.ViewRowImpl.entityCacheAdd(ViewRowImpl.java:3139)
         at oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:2911)
         at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:2764)
         at oracle.jbo.server.QueryCollection.get(QueryCollection.java:1931)
         at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:4508)
         at oracle.jbo.server.ViewRowSetIteratorImpl.doFetch(ViewRowSetIteratorImpl.java:2899)
         at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2755)
         at oracle.jbo.server.ViewRowSetIteratorImpl.refresh(ViewRowSetIteratorImpl.java:2996)
         at oracle.jbo.server.ViewRowSetImpl.notifyRefresh(ViewRowSetImpl.java:2453)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1047)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:873)
         at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2738)
         at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2715)
         at oracle.jbo.server.ViewRowSetIteratorImpl.getAllRowsInRangeInternal(ViewRowSetIteratorImpl.java:2101)
         at oracle.jbo.server.ViewRowSetIteratorImpl.getAllRowsInRange(ViewRowSetIteratorImpl.java:2148)
         at oracle.jbo.server.ViewRowSetImpl.getAllRowsInRange(ViewRowSetImpl.java:2730)
         at oracle.jbo.server.ViewObjectImpl.getAllRowsInRange(ViewObjectImpl.java:9131)
         at oracle.jbo.server.ViewRowSetImpl.findByViewCriteriaWithBindVars(ViewRowSetImpl.java:5191)
         at oracle.jbo.server.ViewRowSetImpl.findByViewCriteria(ViewRowSetImpl.java:4950)
         at oracle.jbo.common.AbstractListBinding.filterList(AbstractListBinding.java:580)
         at oracle.jbo.common.AbstractListBinding.filterList(AbstractListBinding.java:470)
         at oracle.jbo.server.RowImpl.applyListBindings(RowImpl.java:901)
         at oracle.jbo.server.RowImpl.checkAndApplyListBindings(RowImpl.java:601)
         at oracle.jbo.server.ViewObjectImpl.afterRowUpdate(ViewObjectImpl.java:11240)
         at oracle.jbo.server.ViewObjectImpl.sourceChanged(ViewObjectImpl.java:11492)
         at oracle.jbo.server.EntityCache.sendEvent(EntityCache.java:1150)
         at oracle.jbo.server.EntityCache.deliverEntityEvent(EntityCache.java:1164)
         at oracle.jbo.server.EntityCache.notifyColumnAndBlgChange(EntityCache.java:1220)
         at oracle.jbo.server.EntityImpl.notifyAttributesChanged(EntityImpl.java:6781)
         at oracle.jbo.server.EntityImpl.notifyAttributesChanged(EntityImpl.java:6762)
         at oracle.jbo.server.EntityImpl.populateAttribute(EntityImpl.java:6486)
         at oracle.jbo.server.EntityImpl.refreshFKInNewContainees(EntityImpl.java:5575)
         at oracle.jbo.server.OracleSQLBuilderImpl.doEntityDML(OracleSQLBuilderImpl.java:514)
         at oracle.jbo.server.EntityImpl.doDML(EntityImpl.java:7779)
         at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:6162)
         at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:3253)
         at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:3061)
         at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:2180)
         at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:2382)
         at oracle.adf.model.bc4j.DCJboDataControl.commitTransaction(DCJboDataControl.java:1565)
         at oracle.adf.model.binding.DCDataControl.callCommitTransaction(DCDataControl.java:1407)
         at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1293)
         at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2126)
         at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:697)
         at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.executeEvent(PageLifecycleImpl.java:392)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding._execute(FacesCtrlActionBinding.java:159)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding.execute(FacesCtrlActionBinding.java:118)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
         at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
         at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:53)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1227)
         at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:183)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:70)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:274)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:74)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:70)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:274)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:74)
         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:458)
         at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:763)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:640)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:275)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:175)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:181)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:85)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:279)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:239)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:196)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:139)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
         at oracle.security.jps.wls.JpsWlsFilter.doFilter(JpsWlsFilter.java:102)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:65)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(Unknown Source)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

    I have solved.
    I have to flag the composition association in the entity object

  • Insert Master Detail

    Hi all,
    I need to understand which is the fastest way for inserting rows in master-detail tables
    Using a procedure. I often insert lots of details rows and sometimes master-details rows
    Here there is my solution. Is there something faster?
    Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    CREATE TABLE MAIN_TRACING (
       MAINVAL VARCHAR2(10) NOT NULL,
       PAR1    VARCHAR2(10) NOT NULL);
    CREATE TABLE TRACING_DET (
       MAINVAL   VARCHAR2(10) NOT NULL,
       SUBPAR1   VARCHAR2(10) NOT NULL);
    CREATE UNIQUE INDEX MYPK ON MAIN_TRACING(MAINVAL);
    ALTER TABLE MAIN_TRACING ADD ( CONSTRAINT MYPK PRIMARY KEY (MAINVAL) USING INDEX MYPK);
    ALTER TABLE TRACING_DET ADD ( CONSTRAINT MYFK FOREIGN KEY (MAINVAL)  REFERENCES MAIN_TRACING (MAINVAL));
    CREATE OR REPLACE PROCEDURE ADD_TRACE(V_MAINVAL VARCHAR2, V_PAR1 VARCHAR2, V_SUBPAR1 VARCHAR2)
    AS
       PARENT_NOT_FOUND   EXCEPTION;
       PRAGMA EXCEPTION_INIT(PARENT_NOT_FOUND, -2291);
    BEGIN
       INSERT INTO TRACING_DET(MAINVAL, SUBPAR1)
            VALUES (V_MAINVAL, V_SUBPAR1);
       COMMIT;
    EXCEPTION
       WHEN PARENT_NOT_FOUND
       THEN
          INSERT INTO MAIN_TRACING(MAINVAL, PAR1)
               VALUES (V_MAINVAL, V_PAR1);
          INSERT INTO TRACING_DET(MAINVAL, SUBPAR1)
               VALUES (V_MAINVAL, V_SUBPAR1);
          COMMIT;
       WHEN OTHERS
       THEN
          DBMS_OUTPUT.PUT_LINE(' Error code    : ' || TO_CHAR(SQLCODE));
    END ADD_TRACE;
    EXEC ADD_TRACE('m1', 'a', 'suba1');
    EXEC ADD_TRACE('m1', 'a', 'suba2');
    EXEC ADD_TRACE('m1', 'a', 'suba3');
    --exec ADD_TRACE('m1', 'b', 'suba3'); --IMPOSSIBLE!
    EXEC ADD_TRACE('m2', 'b', 'subb1');
    EXEC ADD_TRACE('m2', 'b', 'subb2');
    SELECT * FROM MAIN_TRACING;
    MAINVAL    PAR1
    m1         a
    m2         b
    SELECT * FROM TRACING_DET;
    MAINVAL    SUBPAR1
    m1         suba1
    m1         suba2
    m1         suba3
    m2         subb1
    m2         subb2

    The answer (as Tom Kyte is fond of stating) is "It depends" ;-)
    Is this something that is called scattered over the application? Most of the time it will be called with an existing MAINVAL and just sometimes now and again a new MAINVAL will be inserted? Subsequent calls to ADD_TRACE will typically have a different MAINVAL than the previous call?
    If that is the case, then your method is not a bad one. Many programmers would have first tested for existence of master and decided whether to insert it or not, which would then be wasted effort in 95% of the cases.
    Your method of assuming the master exists and then handle the exception if it does not - that is quite neat. But the key is - it has to be the exception to the rule that the exception handler is invoked.
    But if on the other hand you are calling ADD_TRACE pretty consecutively (sort of like your example) with first several calls with one MAINVAL, then several calls with a new MAINVAL, then several with a new MAINVAL, etc. - say a typical ETL process or loading data from perhaps a flatfile or something like that - then you would do better to do one insert of the parent and then bulk up the children in a bulk insert.
    So it depends on your use case. There is not one generally best way to insert into master-detail - there will be several depending on whether you are bulk loading data to your master-detail or you have scattered calls.
    But just one other thing concerning your code:
    Usually it is not a good idea to issue those COMMIT statements inside your procedure. How do you know if the caller has finished with the transaction or not?
    Either let the client/caller decide when the complete transaction is done.
    Or you may decide that this is tracing/logging and should be logged no matter whether the calling transaction commits or rollbacks, and then you can make ADD_TRACE use an autonomous transaction.
    (All of the above is just my personal opinion and you will likely find other people with different opinions ;-) )

  • Sample code to edit master detail records

    Hi,
    Could anybody please sned me the sample code to edit master and detail records.
    Thanks,
    Kavitha

    Arjuna,
    Thanks for your reply. Unfortunately the 'switcher' code which makes an attribute editable, works on a 'Read-Only table' page but not on 'Master-Detail table' page. The switcher code is:
    <switcher childName="${uix.current.RowID.inputValue == bindings.RowID.inputValue ? 'selected' : 'notselected'}">
    <case name="selected">
    <textInput model="${bindings.RequestedBudget}" columns="14" readOnly="false"/>
    </case>
    <case name="notselected">
    <textInput model="${uix.current.RequestedBudget}" columns="10" readOnly="true"/>
    </case>
    </switcher>
    We do have individual bindings for all table attributes. Any suggestions will be much appreciated.
    Thanks, Ali.

  • How to insert a detail record that has more than one master record

    I have a somewhat complex situation that I am triying to figure out. I have three tables A, B and C. Table C is a detail table that has a foreign key to table A and table B. There are is nothing else in table C (basically it's used to create a many to many relationship between A and B.
    Now I have a application module method that based on some user provided data needs to insert records in tables A and B and link them using table C. I have view links (and associations) between A and C as well as B and C. I can easily go from A and insert (via the view link accessor) a record into C. My problem is that I don't know how to the take that same C row and add it to B as a detail.
    I have kinda hacked it by creating a row in B, using postChanges to get it's primary key ID and set the attribute directly in C. It works but I was hoping to find a way to avoid calling postChanges possibly hundreds of times in a loop. I also cannot commit the AM until the process is completed.
    I tried setting the "composition association" on both associations but that didn't work either.
    Thanks

    I'm not sure if this helps, but here's a web page which talks about Image I/O:
    http://java.sun.com/products/java-media/jai/iio.html
    For your problem, they have a sample solution which can read a specific page of a multi-page tiff file, so perhaps you could make a loop to read all of the pages:
    http://java.sun.com/products/java-media/jai/forDevelopers/samples/MultiPageRead.java
    Good luck!

  • ADF BC : Problem in Inserting a Master - Detail Record

    Hi,
    I am new to ADF Business Components. I am into a project where i use only the ADF BC as ORM/DB Operations and for the front end I use some other framework. The Problem is.
    I have two entity objects and a ViewLink between them. [Relation between "Order" to "Item" is (1 to many relation)].
    [I saw many examples in forums where its explained with View Objects But here I DID NOT create any View Object. I have only Entity Objects]
    (1) OrderEO [Entity Object for Order Table]
    (2) ItemEO [Entity Object for Items Table]
    (3) OrderItemsViewLink [A Viewlink where OrderEO.OrderId = ItemEO.OrderId]
    All The Primary keys (for the "Order" and "Items" table ) are handled by Trigger+Sequence at the time of insert in DB side.
    I created custom method to insert "Order" individually it worked fine.
    I created custom method to insert the "Item" individually it worked fine.
    But...
    When I created and "Order" with some "Items" It failing to insert and throws an
    Error : oracle.jbo.InvalidOwnerException: JBO-25030: Failed to find or invalidate owning entity: detail entity ItemEO, row key oracle.jbo.Key[0 ].
    My Custom Method in the AppModuleImpl is like below :
    public void createNewOrderWithNewItems() {
    String entityName = "com.proj.entities.OrderEO";
    EntityDefImpl orderDef = EntityDefImpl.findDefObject(entityName);
    OrderEOImpl newOrder = (OrderEOImpl)orderDef .createInstance2(getDBTransaction(),null);
    try {
    // 3. Set attribute values
    newOrder .setOrderStatusCode("CREATED");
    RowIterator items = newOrder .getItemEO();
    Row newItemRow = items .createAndInitRow(null);
    items .insertRow(newItemRow );
    newItemRow .setAttribute("itemDate", new Date());
    newItemRow .setAttribute("itemQty", new Number(10));
    // 4. Commit the transaction
    getDBTransaction().commit();
    } catch (SQLException e) {
    e.printStackTrace();
    } catch (JboException ex) {
    getDBTransaction().rollback();
    throw ex;
    Here the "Order" is also new and related Items is also new. What I expect is to save the Order with Items in one transaction. How to achieve this. Please suggest.
    Thanks
    Narayan
    Edited by: 817942 on Dec 3, 2010 8:16 AM

    Read through the blog posts which describes
    why this issue occurs and how it should be resolved.
    http://radio-weblogs.com/0118231/stories/2003/01/17/whyDoIGetTheInvalidownerexception.html
    http://one-size-doesnt-fit-all.blogspot.com/2008/05/jbo-25030-failed-to-find-or-invalidate.html
    Thanks,
    Navaneeth

Maybe you are looking for

  • ITunes not compatible with iPod Touch 4th gen (problem with Windows 64 bit)

    So I've been trying for about a month or so to sync my iPod Touch to iTunes but ever since i updated it to iTunes 11 it has been saying that i need to uninstall it and install the 64 bit version. I've done that twice this week alone and its still not

  • Sharing Violation in Dreamweaver CS4

    hi to Every one i have a problem in Dremweaver CS4 when i am saving my html  pages the error message is displaying "Sharing Violation Occured".After  that every time this error occur page can be rename and save.can any one  tell me how to Slove this

  • Spry transparency question

    Is it possible for the top/parent level of a Spry Menu to have a transparent bkgd but for the drop-down menus to have a colored bkgd? I'd like for that top level to reveal the graphic behind it but would need the lower menu list to cover the page ite

  • Removing SMS registered numbers

    Hi I have 5 numbers in the dropdown of the OPTIONS SMS page. When I send an sms - even though it shows my correct number it sends with a return address of another number.  I have logged onto my account to remove them and there is only one number ther

  • Nokia 808 camera camera keep jerking when zooming.

    Hi Nokia tech, I need help here. I wonder why I have the jerking problem recently when I just notice it. Only happen on the stock camera app. I guess its because it zoom mechanism its abit slow when i hold the volume button up or down that cause it t