Add a Detail Table Row per master row

Hi,
I am currently working on a requirement for a master detail advanced table.
I am trying to add one detail row per master row when the page loads based on the link between the two.
I have a master table with 20 records and I need to create 1 detail row per master row....
I have managed to create an add detail row button which works fine for single additions, but cannot seem to get the detail VO to add a row for each master row through the AM or CO.
I have created a process to insert rows into the VO which based on debug statements seems to work, but nothing shows within the detail table.
in the PR I run the query for the master, which in turn shows the detail row (Detail boolean is set to True).
However any attempt to add it programatically does not seem to work.
Any ideas appreciated.
Patrick
Edited by: patrickmburke on 10/10/2012 19:26

Hi,
Here's some more code :
- The column in a default adf read only table :
                <af:column headerText="Action / State">
                     <af:commandLink actionListener="#{bindings.setCurrentRowWithKey.execute}"
                                              action="#{backingBeanScope.backing_page.validerRSP_action}">
                          <af:image source="/gfx/icon_valid.PNG"/>
                     </af:commandLink>
                 </af:column>- SetCurrentRowWithKey in page def
    <action IterBinding="ViewObject1Iterator"
            id="setCurrentRowWithKey5"
            InstanceName="AppModuleDataControl.ViewObject1"
            DataControl="AppModuleDataControl" RequiresUpdateModel="false"
            Action="setCurrentRowWithKey">
      <NamedData NDName="rowKey" NDValue="${row.rowKeyStr}" NDType="java.lang.String"/>
    </action>I haven't figure out the solution yet.
Regards.
Luc-

Similar Messages

  • More than 5 rows in the detail table for a Master Detail Portlet

    I have a Master Detail Portlet.   I originally had 5 fields in the detail portlet.  I have added a column to the detail portlet and now the last column is wrapped around in the portlet.  I do not see a way to force it to be on the same line as the rest of the columns for the detail table.
    Do I need to just delete it and re-create the portlet?
    Below is the from the browser when executing the portlet.
    function show_context_help(h) {   newWindow = window.open(h,"Help", "menubar=1,toolbar=1,scrollbars=1,resizable=1,width=700, height=500"); }  
    Master action:
    [None]
    Insert
    Update
    Delete
    Carrier
    Carname
    Line Haul Carrier?
    Detail actions
    Warehouse
    Carrier
    Service
    Ship To
    Country Code
    Hold for
    Pickup
    Service?
    Associate LPN
    Required?
    [None]
    Insert
    Update
    Delete
    [None]
    Insert
    Update
    Delete
    [None]
    Insert
    Update
    Delete
    [None]
    Insert
    Update
    Delete
    [None]
    Insert
    Update
    Delete
    [None]
    Insert
    Update
    Delete
    [None]
    Insert
    Update
    Delete
    [None]
    Insert
    Update
    Delete
    [None]
    Insert
    Update
    Delete
    [None]
    Insert
    Update
    Delete

    Easy, The default on the detail field had the Begin on New Line flag set to on.   By unchecking it I got the desired behavior.

  • More than one Detail table in the Master Detail forms!

    Hi,
    I need to have more than one Detail table in Master Detail Forms.
    I want to see the details of the rows of the first Detail table in the Second Detail table. Please guide me to do this.
    Sincerely yours,
    Mozhdeh

    You can do one of two things
    1) Depends on the nature of your data model. I was able to manage many to many
    relationships using views and instead of triggers. This solution is somewhat complex but can work in certain situations.
    2)Works for situations where master record exists. create a page with mulitple portlets syncronized on some related key.
    create the following package to use on the md forms to place on the one page to be rendered.
    -- this package will facilitate the storage and retrieval of keys used by the related forms.
    create or replace package session_var
    IS
    session_parms portal30.wwsto_api_session;
    g_domain varchar2(2000) := portal30.wwctx_api.get_user;
    function get_id (id in varchar2) return number;
    PROCEDURE SET_ID
    (ID in VARCHAR2
    ,p_val in VARCHAR2
    ,P_URL in VARCHAR2
    END SESSION_VAR;
    create or replace package body session_var
    IS
    --pkg body
    function get_id(id in varchar2) return number is
    l_store_session portal30.wwsto_api_session;
    l_id number;
    begin
    l_store_session := portal30.wwsto_api_session.load_session(
    p_domain => session_var.g_domain,
    p_sub_domain => 'your domain');
    l_id := l_store_session.get_attribute_as_varchar2( p_name => id);
    return l_id;
    end get_id;
    PROCEDURE SET_ID
    (ID in VARCHAR2
    ,p_val in VARCHAR2
    ,P_URL in VARCHAR2
    IS
    l_store_session portal30.wwsto_api_session;
    begin
    l_store_session := portal30.wwsto_api_session.load_session(
    p_domain => session_var.g_domain,
    p_sub_domain => 'your domain');
    l_store_session.set_attribute(
    p_name => id,
    p_value => p_val );
    l_store_session.save_session;
    * Redirect to the page using p_url;
    portal30.wwv_redirect.url(P_URL);
    end set_id;
    END SESSION_VAR;
    --the form master detail form, section  before display page enter the following code and publish as portlet.
    declare
    l_fs varchar2(4000);
    l_s varchar2(4000);
    v_con_id number;
    begin
    v_con_id :=rfq.session_var.get_id('CON_ID'); -- primary key and key used to relate details
    p_session.set_shadow_value( p_block_name => 'MASTER_BLOCK',
    p_attribute_name => 'A_CON_ID', -- attribute on form related to primary key
    p_value => '= '|| v_con_id,
    p_language => portal30.wwctx_api.get_nls_language ,
                   p_index => 1
    l_fs := p_session.get_value_as_varchar2(p_block_name => 'MASTER_BLOCK', p_attribute_name => '_FORM_STATE');
    l_s := p_session.get_value_as_varchar2(p_block_name => 'MASTER_BLOCK', p_attribute_name => '_STATUS');
    if l_fs = 'SAVE' and l_s is null then
    WWV_MASTER_GENSYS_1(p_block_name => p_block_name,
    p_object_name => p_object_name,
    p_instance => p_instance,
    p_event_type => p_event_type,
    p_user_args => p_user_args,
    p_session => p_session);
    p_session.save_session;
    end if;
    if l_fs = 'QUERY_AND_SAVE' and l_s is null then
    WWV_MASTER_GENSYS_1(p_block_name => p_block_name,
    p_object_name => p_object_name,
    p_instance => p_instance,
    p_event_type => p_event_type,
    p_user_args => p_user_args,
    p_session => p_session);
    p_session.save_session;
    end if;
    exception
    when others then
    PORTAL30.wwerr_api_error.add(PORTAL30.wwerr_api_error.DOMAIN_WWV,'app','generic','onLink', p1 => sqlerrm);
    raise;
    end;
    --then create other md forms and publish as portlets in a similar manner.
    -- create a form (form_session_vars) to call procedure session_vars and place the following code in the
    addiontional pl/sql tab
    WWV_GENSYS_1(
    p_block_name => p_block_name ,
    p_object_name => p_object_name,
    p_instance => p_instance ,
    p_event_type => p_event_type ,
    p_user_args => p_user_args ,
    p_session => p_session);
    --then create a page and place the md forms created above as portlets on the page.
    --create a link and target the form_session_vars and in the link target inputs
    enter the values for your user parameters
    id= CON_ID --"your primary key name"
    p_url= url/page/"your_page"
    --finally create a report (QBE or standard).
    in the column formation section use the link created earlier to direct the user to the target page.
    How it works.
    When the link is selected the form_session_Var is called and automatically runs setting the primary key values
    in the user session store. The step is required or the resulting page will not render properly. Then the user is redirected to the page where the portlets are rendered. The portlets start rendering, the before display page calls the session vars package to retrieve the key and put the form into query_update mode returning the data.
    The portlets finish in query_and_save mode with details in update mode, the allowable insert, delete and none actions will be available for the details.
    benefits: The session_Var package code is resuable as well as the form form_session_Var and the link. passing the key name and values are done at the report level and detailed in the report links. the md forms will need to reference their related keys.

  • How to expand/collapse detail rows per each row in APEX reports

    Hi
    I want to add functionality to my APEX classic reports which allows me to expand/collapse rows using something like +/- buttons. Please let me know how to achieve this.
    Thanks
    Hina

    Hi,
    This Carls example might help
    http://htmldb.oracle.com/pls/otn/f?p=11933:1
    See also post relating that sample
    Re: Question for Carl Backstrom
    Regards,
    Jari
    http://dbswh.webhop.net/dbswh/f?p=BLOG:HOME:0

  • How to update a bc4j detail table based on master selection

    I have a bc4j table with single selection set.
    When I retrieve the index of the single selection and set the current row in my view object based on that index my detail view object does not update its record.
    Only when I am first populating my master view object does the detail view object update or if I set a small range and change between index ranges.
    I thought by changing the current row in the master view object the detail view object listener would handle cause the detail view to update.
    Please Help.

    This looks like a question better suited for the JDeveloper forum. I'd venture a guess that it's a problem with the setup of your associations.

  • Filter master rows based on attributes in detail view.

    Hi,
    How do I set up VO's so that I can:
    1. filter master records based on attribute values in either the detail or master attribute values.
    and
    2. display each distinct master record with all its associated detail records.
    Stated another way, I want to list all the master records (with their associated detail records) filtered by the existence of qualifying detail records -- give me all departments which have assigned one or more employees who meet some criteria; list the departments and ALL the dept.'s employees (regardless of whether they individually meet the criteria).
    We've been struggling with this for a couple of weeks. I've been trying to accomplish this on 10.1.2, 9.0.5.2 and 9.0.3.3 with pretty much the same results on all three versions.
    To make queries based on values in either the master or detail records we created a database view that denormalizes the tables. This let's us include criteria based on either the master or detail tables, but of course rows from the master table may appear multiple times. We tried a DBMS global temporary table, but the inserted rows were not visible to the client; I'm assuming they're discarded with the session between queries or the queries establish separate sessions. I tried marking only the master record columns as selected and queriable and the detail columns as just queriable, but this causes the detail columns to be defined as transient VO attributes.
    TIA, for ideas or guidance.

    Hi,
    How do I set up VO's so that I can:
    1. filter master records based on attribute values in either the detail or master attribute values.
    and
    2. display each distinct master record with all its associated detail records.
    Stated another way, I want to list all the master records (with their associated detail records) filtered by the existence of qualifying detail records -- give me all departments which have assigned one or more employees who meet some criteria; list the departments and ALL the dept.'s employees (regardless of whether they individually meet the criteria).
    We've been struggling with this for a couple of weeks. I've been trying to accomplish this on 10.1.2, 9.0.5.2 and 9.0.3.3 with pretty much the same results on all three versions.
    To make queries based on values in either the master or detail records we created a database view that denormalizes the tables. This let's us include criteria based on either the master or detail tables, but of course rows from the master table may appear multiple times. We tried a DBMS global temporary table, but the inserted rows were not visible to the client; I'm assuming they're discarded with the session between queries or the queries establish separate sessions. I tried marking only the master record columns as selected and queriable and the detail columns as just queriable, but this causes the detail columns to be defined as transient VO attributes.
    TIA, for ideas or guidance.

  • Button enable/disable in Master-Detail table

    I am using JDeveloper 11.1.1.3.0 and I have a page fragment (.jsff) which includes a Master-Detail table and the Master table has 3 buttons that get enabled/disabled based on the specific string within a column say, if the column has value, 'DRAFT', the buttons should be enabled. In all other cases, the buttons should be disabled.
    The above mentioned scenario works in cases where the table has more than one row in the table; but in two cases the buttons don't get enabled even though the column has 'DRAFT' as its value:
         1. when the table first loads with the data populated in the table; clicking on the first row doesn't trigger the buttons, clicking on any other row triggers the buttons
         2. when there is only one row in the table
    To resolve this, I tried looking at the logs for any specific information regarding the buttons getting enabled or disabled. I couldn't find info on setting up a breakpoint for the commandbutton and the disabled property which would enable me to determine whether it is being triggered as soon as the table gets populated or not.
    How can I get the buttons to work per my requirements? Also, can I set breakpoints for the button and/or evaluate disabled property's EL expression?
    Thanks in advance.

    Navaneeth:
    The buttons are part of panelCollection which exists in panelHeader. As the below code demonstrates,
    1. Buttons are defined in the toolbar (t2) in panelCollection (pc1)
    2. Each buttons' partialTrigger is set to the table (md1)
    3. Tables' (md1) partialTrigger is set to the toolbar (t2).
    <af:panelHeader text="#{viewcontrollerBundle.HISTORIC_PANEL_SPECS__TESTER_S}" id="ph2">
            <af:panelCollection id="pc1" styleClass="AFStretchWidth">
              <f:facet name="menus"/>
              <f:facet name="toolbar">
                <af:toolbar id="t2" partialTriggers="t2">
                  <af:commandButton actionListener="#{bindings.promotePanelSpec.execute}"
                                    text="#{viewcontrollerBundle.PROMOTE_PANEL_SPEC}"
                                    id="cb1" icon="/Images/up16.png"
                                    partialTriggers="md1"
                                    disabled='#{bindings.Status!="DRAFT"}'
                                    immediate="true"/>
                  <af:commandButton text="#{viewcontrollerBundle.ADD_TESTER_SPEC}" id="cb2"
                                    partialTriggers="md1"
                                    icon="/Images/action_add.gif"
                                    actionListener="#{bindings.CreateWithParams.execute}"
                                    action="addTestSpec"
                                    disabled='#{bindings.Status!="DRAFT"}'/>
                  <af:commandButton actionListener="#{PanelSpecTesterSpec.deleteTesterSpec}"
                                    text="#{viewcontrollerBundle.REMOVE_TESTER_SPEC}"
                                    id="cb3" partialTriggers="md1 ::pc2:t1"
                                    icon="/Images/delete.png"
                                    disabled='#{bindings.Status!="DRAFT"}'/>
                </af:toolbar>
              </f:facet>
              <f:facet name="statusbar"/>
              <af:table id="md1"
                        rows="#{bindings.PanelSpecTesterSpecView1.rangeSize}"
                        fetchSize="#{bindings.PanelSpecTesterSpecView1.rangeSize}"
                        emptyText="#{bindings.PanelSpecTesterSpecView1.viewable ? 'No data to display.' : 'Access Denied.'}"
                        var="row"
                        value="#{bindings.PanelSpecTesterSpecView1.collectionModel}"
                        rowBandingInterval="0"
                        selectedRowKeys="#{bindings.PanelSpecTesterSpecView1.collectionModel.selectedRow}"
                        selectionListener="#{bindings.PanelSpecTesterSpecView1.collectionModel.makeCurrent}"
                        rowSelection="single" partialTriggers="::t2"
                        filterVisible="true" displayRow="selected"
                        filterModel="#{bindings.ProductIdPanelSpecVersionToolNameQuery.queryDescriptor}"
                        queryListener="#{bindings.ProductIdPanelSpecVersionToolNameQuery.processQuery}">
                <af:column headerText="#{bindings.PanelSpecTesterSpecView1.hints.ProductId.label}"
                           sortProperty="ProductId" sortable="true" id="c39"
                           filterable="true">
                  <af:outputText value="#{row.ProductId}" id="ot28"/>
                </af:column>
                <af:column headerText="#{bindings.PanelSpecTesterSpecView1.hints.Status.label}"
                           sortProperty="Status" sortable="true" id="c43"
                           filterable="true">
                  <af:outputText value="#{row.Status}" id="ot40"/>
                </af:column>
              </af:table>
         </af:panelCollection>
    </af:panelHeader>The fact that the above code works when there are multiple rows tells me that buttons are having trouble reading the first row of the table.
    Also, I changed the displayRow property for the table from "selected" to "first" but no luck either.

  • TWO MASTER AND ONE DETAIL TABLE

    HI,
    I HAVE TWO SEPARATE MASTER TABLE WITH SAME DETAILS I MADE ONE DETAIL TABLE REFERENCES BOTH OF THE MASTER TABLES(BOTH MASTER HAVE SAME PRIMARY COLUMN NAME) , BUT WHEN INSERT RECORD IN DETAIL IT GIVES ME ERROR THAT PARENT KEY NOT FOUND(ALTOUGH I HAVE INSERTED MASTER DATA IN ONE MASTER TABLE BUT NOT THE SECOND ONE AND IT'S NOT POSSIBLE TO INSERT SAME DATA IN SECOND MASTER TABLE), WHAT I WANT TO ASK THAT HOW IT'S POSSIBLE TO USE SAME DETAIL TABLE WITH DIFFERENT MASTER TABLES. STRUCTURE OF BOTH OF THE TABLES ARE BELOW.
    MASTER ONE
    SQL> DESC INCIDENT
    Name
    REF_NO
    INC_TYPE_CODE
    DISTRICT_CODE
    KV33
    KV11
    INC_DATE
    EMERGENCY
    TRIP
    CAUSE_TYPE_CODE
    SUB_CAUSE
    INC_DESC
    REASON
    OPER_SEQ
    REM_RECOM
    CON_COMP_CODE
    CTRL_ENG_APP
    DELAY_OCCURED
    DELAY_REASON
    SECOND MASTER
    SQL> DESC SWITCHING
    Name
    REF_NO
    INC_TYPE_CODE
    JOB_CODE
    DISTRICT_CODE
    KV33
    KV11
    CON_COMP_CODE
    INC_DATE
    INT_NOTICE_ISSUE
    INTERRUPTION
    REM_RECOM
    CTRL_ENG_APP
    WORK_DESC
    DETAIL TABLE
    SQL> DESC INTERP_DETAIL
    Name
    REF_NO
    INC_TYPE_CODE
    FEEDER_CODE
    VOL_LEVEL
    START_DT_TIME
    GRID_CODE
    END_DT_TIME
    LOAD_AMP
    LOAD_MW
    LOSS_MWHR
    THANKS IN ADVANCE.
    KHAWAR

    Hi,
    When you establish the relations using the references, then oracle will look for the parent key in both the parent tables. Either you need to remove the foreign keys or change your db design to add one more table and have one-one parent child relationships.
    HTH
    Regards,
    Badri.

  • Detail table refreshing without partial trigger!!!

    Hi,
    my Jdeveloper version is 11.1.2.3.0
    I have a master detail structure on my page and i have two weird behaviors (that i guess are related).
    I created the master detail tables in the classic way:
    I dragged the master data control and doped it on the page as an ADF table (id t1)
    Then i dragged the detail data control (from inside the master data control) and drop it as an ADF table (id t2).
    I verified that the partial trigger property of the detail table does not contain the id of the master table (t1).
    however (the first weird behavior), at run time, the detail table shows always the right information of the selected master row.
    How can this happen?
    The second weird behavior is that i have createInsert button (created by drag and drop of the createInsert operation of the dataControl) in the toolbar of the master table.
    If i create a new row and fill the required data then navigate to another row, the detail table is refreshed correctly and shows the details of the newly selected row, but if i go back (re-select) the newly created row the detail table does not refresh and still shows the detail of the previous master row!!! (furthermore, i have input date in this newly create row, so if, at this stage, i click on the calendar icon to open it, the calendar doesn't open)
    I'm i doing something wrong? or should i change any property of the tables?
    Thanks for your help

    Hi Timo,
    Thank you for your reply.
    Actually no, i didn't commit the new record at this point and this is the problem.
    If i commit the new record (using the commit button created from the commit operation of the module), the page refreshes and works correctly.
    The problem occurs if i change the selected row (and then re-selected the newly created row) before committing the changes.
    Concerning the auto PPR, do you think that deactivating it may help? and if yes, how can i deactivated for this page only?
    I tried to change the "change event policy" property of both the master and the detail iterator in the page binding from ppr to "non" but nothing changed. The detail table still refreshes, and the problem with newly created master row still appears.
    One adiitinal note: i downloaded the sample from Andrejus Baranovskis's Blog
    http://andrejusb-samples.blogspot.com/2009/03/jdevadf-sample-create-operation-for.html
    and the page is working correctly. I also created a jsf page in this project with master detail using the same method i used in my project and this pages also works correctly.
    So this means that the problem is with the verision of jdev no? but what what is it???
    Thank you again
    Edited by: 997720 on Apr 5, 2013 8:48 AM

  • Add Row in detail table when check box is checked on a master report table

    Hi,
    How could I detect the click on the check box within a Report and then insert a row in a detail table?
    Many thanks for your help
    jko

    Hi Yogesh,
    That is all handled by the cloneRows() function described in that thread.
    In that function, we first insert a new row:
    var wNew = t.insertRow(ri + 1);ri + 1 = current row + 1 and tells javascript where to add the new row (that is, underneath the current one)
    Then, we loop through all of the cells on the current row and copy its cells into the new row:
    var c;
    var newCell;
    var oldCells = w.getElementsByTagName("TD");
    for (c = 0; c &lt; oldCells.length; c++)
      newCell = wNew.insertCell(c);
      newCell.className = oldCells[c].className;
      newCell.innerHTML = oldCells[c].innerHTML;
    }Next, we search for all INPUT items on the new row and clear the values:
    var inputs = wNew.getElementsByTagName("INPUT");
    var j;
    for (j = 0; j < inputs.length; j++)
      inputs[j].value = "";
    }And, finally, we call the updateInputs() function to rename all of the items on the page. Apex expects all items to have unique "f01_nnnn" etc names, adding in a new row upsets this, so we need to reset them:
    function pad(n)
    var s = '0000' + n;
    return s.substr(s.length-4);
    function updateFields(f)
      var fields = document.getElementsByName(f);
      var j;
      if (fields.length > 0)
        for (j = 0; j < fields.length; j++)
          fields[j].id = f + "_" + pad(j+1);
    function updateInputs()
    updateFields("f01");
    updateFields("f02");
    updateFields("f03");
    updateFields("f04");
    }without doing that, the data may get lost when the page is re-rendered.
    This is all called from a new Derived Column on the report. This column's HTML Expression is:
    &lt;a href="#" onclick="javascript:cloneRow(this)"&gt;&lt;img src="#IMAGE_PREFIX#FNDADD11.gif"&gt;&lt;/a&gt;which generates the + symbols which, when clicked, run the cloneRow() function
    Andy

  • ADF Master Table, Inline Detail Table - How to Scroll Range/Disclose Row

    JDev 10.1.3.2 ADF/BC
    I really need some help here. I've tried as many things as I could think of and I still cannot get this to work.
    Scenario: I have query/result page. User clicks a link in the result table to take him to another page. This page has a Master table, Inline detail table component (bound to a tree in the pageDef). Before the page renders, all I want to do is scroll the Master table to the current row (based on the previous query/result via invokeAction in pageDef) and disclose the inline detail. Simple, right? In addition, I'll need to scroll the inline detail to the current row as well.
    I would like to do this prior to the components rendering but would be interested in any coding to scroll and disclose.
    Thanks in advance,
    Tom

    I've come up with a solution to my problem. Unfortunately I'm not able to manipulate the table prior to rendering but this solution is probably the closest I'm going to get. Here is my code:
    I set up a af:poll component to fire once on my jspx.
        public void poll_PollListener(PollEvent pollEvent) {
            if (this.getFromProcess("unitRowKeyValue") != null) {
                int curIndx = this.getIteratorBinding("UnitsIterator").getRowSetIterator().getCurrentRowIndex();
                this.getUnitTree().setFirst(curIndx);
                if (this.getFromProcess("systemRowKeyValue") != null) {
                    this.getUnitTree().setRowIndex(curIndx);
                    DisclosureEvent de = new DisclosureEvent(this.getUnitTree(), true);
                    this.getUnitTree().queueEvent(de);
                this.storeOnProcess("renderPoll", false);
        }The setFirst method scrolls the table to the index specified. If the user, in my case, has selected a detail item (system), I want to disclose the detail. First I need to setRowIndex to the current index and then I fire a disclose event.
        public void unitTreeDisclosureListener(DisclosureEvent disclosureEvent) {
             if (disclosureEvent.isExpanded()) {
                 CoreTable coreTable = (CoreTable)disclosureEvent.getSource();
                 RowKeySet rks = new RowKeySet();
                 Object test = coreTable.getRowKey();
                 rks.getKeySet().add(coreTable.getRowKey());
                 coreTable.setDisclosureState(rks);
          }If I don't set the rowKey via the setRowIndex method above, the getRowKey does not return a valid rowKey. In my case, I only want one master row to be disclosed at a time.
    This all works great except for a bit of flicker to process the PPR request for the component.
    Next step is to see if I can scroll the Inline Detail table to the detail row selected in the Query/Result page.
    Tom

  • Duplicate rows in Detail Table - Master Detail Relationship

    Hi,
    I have developed the Page it has following components. (Jdeveloper 10g - R12)
    1) Query RN
    It has around 11 parameters, 5 parameters have LOV attached, 2 are mandatory parameters.
    Auto Customization criteria. we don't criteria map defined , where clause is build based on parameters and vo.executeQuery gets called on Go button click.
    2) Sales Order Table RN (Master)
    3) Sales Order Line Table RN (Detail)
    View link is created to maintain the master detail relationship and detail region is attached to AM using view link under master region.
    Page flow works in this way, when user enter the parameters in search region and click on Go button, Sales Order table RN (master) gets populated.
    It has radio button when user click it fires PPR event .
    Process form request gets called and master row gets set (Same code as per developer guide) and Sales Order Line table RN (detail).
    Problem is once detail region gets populate and when user change any parameter which has LOV attached somehow same rows gets added to detail region which is weird because we have not clicked on GO button and radio button on header region is also not touched but detail region is populated somehow.
    Please help
    Thanks.
    Deepak

    Provide the query used for populating the child records. Issue might be due to caching.
    Thanks
    Shree

  • How to insert a row in the detail table of a treeTable (master/detail)?

    Is there any small, working example with JDev 11.1.2.1 on how to programmatically insert a row in the detail table represented by the treeTable component?
    Please don't send links to this example http://jobinesh.blogspot.com/2010/05/crud-operations-on-tree-table.html , which does not work.
    Thanks.

    Erp, why do you keep giving the links to that example or the zip including the project of that example? I explicitly asked to not send any links to that example, which does not work with jdev 11.1.2.1.
    This is the exception from that one when trying to create a new record on the details:
    <UIXEditableValue> <_isBeanValidationAvailable> A Bean Validation provider is not present, therefore bean validation is disabled
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    :bndVarFirstName =null
    <FormRenderer> <_warnUnpoppedContextChanges> ADF_FACES-60095:Durante l'elaborazione del renderer del form, la modifica di contesto trovata non corrisponde al componente previsto.
    <UIXCollection> <processSaveState> è possibile che la chiave di riga non venga reimpostata correttamente alla fine della richiesta. ID componente: :pc1:tt1, ViewId: /treeSample.jspx
    <UIXComponentBase> <processSaveState> Salvataggio dello stato per gli elementi figlio del componente RichPanelCollection[UIXFacesBeanImpl, id=pc1] non riuscito.
    <UIXComponentBase> <processSaveState> Salvataggio dello stato per gli elementi figlio del componente RichPanelGroupLayout[UIXFacesBeanImpl, id=pgl1] non riuscito.
    <UIXComponentBase> <processSaveState> Salvataggio dello stato per gli elementi figlio del componente RichForm[UIXFacesBeanImpl, id=f1] non riuscito.
    <UIXComponentBase> <processSaveState> Salvataggio dello stato per gli elementi figlio del componente RichDocument[UIXFacesBeanImpl, id=d1] non riuscito.
    <LifecycleImpl> <_handleException> ADF_FACES-60098:Il ciclo di vita Faces ha ricevuto eccezioni non gestite nella fase RENDER_RESPONSE 6
    java.lang.NullPointerException
         at oracle.jbo.uicli.binding.JUCtrlHierNodeBinding.findChildNode(JUCtrlHierNodeBinding.java:867)
         at oracle.jbo.uicli.binding.JUCtrlHierBinding.bringNodeToRangeKeyPath(JUCtrlHierBinding.java:788)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding.bringNodeToRangeKeyPath(FacesCtrlHierBinding.java:111)
         at oracle.adfinternal.view.faces.model.binding.RowDataManager.setRowKey(RowDataManager.java:130)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$FacesModel.setRowKey(FacesCtrlHierBinding.java:830)
         at org.apache.myfaces.trinidad.component.UIXCollection.setRowKey(UIXCollection.java:513)
         at org.apache.myfaces.trinidad.component.UIXCollection.processSaveState(UIXCollection.java:270)
         at org.apache.myfaces.trinidad.component.TreeState.saveState(TreeState.java:175)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processSaveState(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.TreeState.saveState(TreeState.java:175)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processSaveState(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.TreeState.saveState(TreeState.java:175)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processSaveState(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.TreeState.saveState(TreeState.java:175)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processSaveState(UIXComponentBase.java:1043)
         at javax.faces.component.UIComponentBase.processSaveState(UIComponentBase.java:1156)
         at org.apache.myfaces.trinidadinternal.application.StateManagerImpl.saveView(StateManagerImpl.java:193)
         at org.apache.myfaces.trinidadinternal.application.StateManagerImpl.getViewState(StateManagerImpl.java:134)
         at oracle.adfinternal.view.faces.renderkit.rich.PprResponseWriter._writeViewState(PprResponseWriter.java:514)
         at oracle.adfinternal.view.faces.renderkit.rich.PprResponseWriter.endDocument(PprResponseWriter.java:83)
         at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer.encodeAll(DocumentRenderer.java:1490)
         at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1659)
         at oracle.adfinternal.view.faces.context.PartialViewContextImpl._processRender(PartialViewContextImpl.java:321)
         at oracle.adfinternal.view.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:152)
         at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:974)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1652)
         at oracle.adfinternal.view.faces.component.AdfViewRoot.encodeAll(AdfViewRoot.java:91)
         at com.sun.faces.application.view.JspViewHandlingStrategy.doRenderView(JspViewHandlingStrategy.java:431)
         at com.sun.faces.application.view.JspViewHandlingStrategy.renderView(JspViewHandlingStrategy.java:233)
         at org.apache.myfaces.trinidadinternal.application.ViewDeclarationLanguageFactoryImpl$ChangeApplyingVDLWrapper.renderView(ViewDeclarationLanguageFactoryImpl.java:350)
         at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
         at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:273)
         at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:165)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:1027)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:334)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:232)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
         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:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:122)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    <RegistrationConfigurator> <handleError> ADF_FACES-60096:Eccezione server durante PPR, n. 1
    java.lang.NullPointerException
         at oracle.jbo.uicli.binding.JUCtrlHierNodeBinding.findChildNode(JUCtrlHierNodeBinding.java:867)
         at oracle.jbo.uicli.binding.JUCtrlHierBinding.bringNodeToRangeKeyPath(JUCtrlHierBinding.java:788)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding.bringNodeToRangeKeyPath(FacesCtrlHierBinding.java:111)
         at oracle.adfinternal.view.faces.model.binding.RowDataManager.setRowKey(RowDataManager.java:130)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$FacesModel.setRowKey(FacesCtrlHierBinding.java:830)
         at org.apache.myfaces.trinidad.component.UIXCollection.setRowKey(UIXCollection.java:513)
         at org.apache.myfaces.trinidad.component.UIXCollection.processSaveState(UIXCollection.java:270)
         at org.apache.myfaces.trinidad.component.TreeState.saveState(TreeState.java:175)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processSaveState(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.TreeState.saveState(TreeState.java:175)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processSaveState(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.TreeState.saveState(TreeState.java:175)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processSaveState(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.TreeState.saveState(TreeState.java:175)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processSaveState(UIXComponentBase.java:1043)
         at javax.faces.component.UIComponentBase.processSaveState(UIComponentBase.java:1156)
         at org.apache.myfaces.trinidadinternal.application.StateManagerImpl.saveView(StateManagerImpl.java:193)
         at org.apache.myfaces.trinidadinternal.application.StateManagerImpl.getViewState(StateManagerImpl.java:134)
         at oracle.adfinternal.view.faces.renderkit.rich.PprResponseWriter._writeViewState(PprResponseWriter.java:514)
         at oracle.adfinternal.view.faces.renderkit.rich.PprResponseWriter.endDocument(PprResponseWriter.java:83)
         at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer.encodeAll(DocumentRenderer.java:1490)
         at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1659)
         at oracle.adfinternal.view.faces.context.PartialViewContextImpl._processRender(PartialViewContextImpl.java:321)
         at oracle.adfinternal.view.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:152)
         at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:974)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1652)
         at oracle.adfinternal.view.faces.component.AdfViewRoot.encodeAll(AdfViewRoot.java:91)
         at com.sun.faces.application.view.JspViewHandlingStrategy.doRenderView(JspViewHandlingStrategy.java:431)
         at com.sun.faces.application.view.JspViewHandlingStrategy.renderView(JspViewHandlingStrategy.java:233)
         at org.apache.myfaces.trinidadinternal.application.ViewDeclarationLanguageFactoryImpl$ChangeApplyingVDLWrapper.renderView(ViewDeclarationLanguageFactoryImpl.java:350)
         at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
         at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:273)
         at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:165)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:1027)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:334)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:232)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
         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:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:122)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    while I get this from my own project based on the above one:
    <UIXEditableValue> <_isBeanValidationAvailable> A Bean Validation provider is not present, therefore bean validation is disabled
    <UIXRegion> <_logIllegalContextChangeMessage> ADF_FACES-10026:Durante l'elaborazione del componente area, non è stata trovata una modifica di contesto oppure la modifica trovata non corrisponde all'istanza impostata dal componente corrente. Prevista oracle.adf.view.rich.component.fragment.UIXRegion$RegionContextChange, trovata UIXCollection.CollectionComponentChange[Component class: oracle.adf.view.rich.component.rich.data.RichTreeTable, component ID: tt1].
    <UIXRegion$RegionSiteImpl> <validate> Attempt to validate an already invalid RegionSite:
    <UIXCollection> <processSaveState> è possibile che la chiave di riga non venga reimpostata correttamente alla fine della richiesta. ID componente: :pt1:r1:pt1:pc1:tt1, ViewId: /main.jspx
    Edited by: user10047839 on 20-ott-2011 7.23

  • JBO 35007 Row Currency has changed - Master Detail Table

    Hi,
    I have a one master table and one detailed table. I can create rows in the master table with no errors. However, when I try to insert rows in the detailed table, I receive JBO-35007 error, Row currency has changed.
    How do I fix this?
    thank you

    We also has exact same error in Hyperion 11.1.1.3 on Windows 2003 with Oracle 11.1.7.0 database .. can someone advise please?
    Regards
    -Naveed-

  • Multi-row insert in master-detail tables

    Hi, I'm using jdev 10.1.3.2 with jheadstart and my problem is:
    I hava a master-detail structure, both are tables and my goal is that I want multi insert (exactly 3) in master and detail table when user makes new order(some business scenario). I cannot create rows in master or detail VO by overriding create() method because its entities have complex primary keys and some part of this key is populated by the user with lov. So I set in jhs new rows to 3 and checked multi-row insert allowed but the problem is that overall I can only create rows in master table after I submit form. I want to create row in master table and fill rows in detail table, and after that I want to have opportunity to create second (or even third) row in master table and fill rows in detail table.
    thanks for help.
    Piotr

    See JHS DevGuide: 3.2.1. Review Database Design:
    If you are in the position to create or modify the database design, make sure all
    tables have a non-updateable primary key, preferably consisting of only one
    column. If you have updateable and/or composite primary keys, introduce a
    surrogate primary key by adding an ID column that is automatically populated.
    See section 3.2.4 Generating Primary Key Values for more info. Although ADF
    Business Components can handle composite and updateable primary keys, this
    will cause problems in ADF Faces pages. For example, an ADF Faces table
    manages its rows using the key of the underlying row. If this key changes,
    unexpected behavior can occur in your ADF Faces page. In addition, if you want
    to provide a drop down list on a lookup tables to populate a foreign key, the
    foreign key can only consists of one column, which in turn means the referenced
    table must have a single primary key column.
    Groeten,
    HJH

Maybe you are looking for