Combos Master-detail UIX Jdev 9i
Hi,
How can I do mastar-detail with two combos and without submitting the page?
I´m using bc4j and did get the second combo to work, but only when I submit the page. But if I submit the page I get another problem: the first combo is setted to the first "option" and the second is rendered by the parameter setted in the first combo, previous page. Anyone knows how do I fix this?
Thanks.
Hello,
You still need to do the submit, but you need to save the options that are selected between form submits.
Jeanne
Similar Messages
-
UIX Master-Detail - Find button does not display detail lines
Hello,
We have a master-detail UIX page. Master has one attribute only. When 'Next' or 'Previous' buttons are pressed, the next master-detail records are displayed.
However, when master attribute's value is changed by the user and the 'Find' button is pressed, the new detail lines are not displayed. Also we get following error:
JBO-26080: Error while selecting entity for <ViewObject>
Has anyone experienced this issue before?
Thanks, Ali.Please dis-regard this post. The correct sequence is to click on Find button, enter new value then click on Execute button to query new values.
Thanks, Ali. -
Error trying to run a sample master-detail JSF form in Jdev 10.1.3
I've tried JDeveloper 10.1.3 folowing a tutorial , master-detail one , involving Adf Faces which I found it here http://www.oracle.com/technology/products/jdev/101/tutorials/e2ebcfaces/buildmaster-detailpagewithjdevandadfbc.htm.
1. I dowloaded JDeveloper 10.1.3
2. I made -in Jdeveloper- a connection to OE8 schema
2. I created an application with web application template ; in my new workspace i had 2 projects Model and ViewController
3. In model i choose Business Tier - ADF Bussiness Components - Business Components from Tables and I followed instructions in tutorial
4. In ViewController I created Web Tier - JSF - JSF JSP , with the JSF-JSP wizard a jsp page browseCustomerOrders.jsp. For building a master detail form i folowed instructions in tutorial
However ...
5. When I tried to run i received ....
" [Starting OC4J using the following ports: HTTP=8988, RMI=23891, JMS=9227.]
**** Unable to obtain password from principals.xml. Using default.
D:\jdevstudio1013\jdev\system\oracle.j2ee.10.1.3.34.12\embedded-oc4j\config>
D:\jdevstudio1013\jdk\bin\javaw.exe -ojvm -classpath D:\jdevstudio1013\j2ee\home\oc4j.jar;D:\jdevstudio1013\jdev\lib\jdev-oc4j-embedded.jar -Xverify:none -DcheckForUpdates=adminClientOnly -Doracle.application.environment=development -Doracle.j2ee.dont.use.memory.archive=true -Doracle.j2ee.http.socket.timeout=500 -Doc4j.jms.usePersistenceLockFiles=false oracle.oc4j.loader.boot.BootStrap -config D:\jdevstudio1013\jdev\system\oracle.j2ee.10.1.3.34.12\embedded-oc4j\config\server.xml
[waiting for the server to complete its initialization...]
05/11/30 12:04:16 Exception in thread "OC4J Launcher" oracle.classloader.util.AnnotatedNoClassDefFoundError:
Missing class: oracle.core.ojdl.logging.LoggingConfiguration
Dependent class: com.evermind.server.XMLApplicationServerConfig
Loader: oc4j:10.1.3
Code-Source: /D:/jdevstudio1013/j2ee/home/lib/oc4j-internal.jar
Configuration: <code-source> in boot.xml in D:\jdevstudio1013\j2ee\home\oc4j.jar
The missing class is not available from any code-source or loader in the server.
05/11/30 12:04:16 at oracle.classloader.PolicyClassLoader.handleClassNotFound (PolicyClassLoader.java:2073) [D:/jdevstudio1013/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@7]
at oracle.classloader.PolicyClassLoader.internalLoadClass (PolicyClassLoader.java:1681) [D:/jdevstudio1013/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@7]
at oracle.classloader.PolicyClassLoader.loadClass (PolicyClassLoader.java:1633) [D:/jdevstudio1013/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@7]
at oracle.classloader.PolicyClassLoader.loadClass (PolicyClassLoader.java:1618) [D:/jdevstudio1013/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@7]
at java.lang.ClassLoader.loadClassInternal (ClassLoader.java:319) [jre bootstrap, by jre.bootstrap]
at com.evermind.server.XMLApplicationServerConfig.initJ2eeLogging (XMLApplicationServerConfig.java:243) [D:/jdevstudio1013/j2ee/home/lib/oc4j-internal.jar (from <code-source> in boot.xml in D:\jdevstudio1013\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at com.evermind.server.XMLApplicationServerConfig.postInit (XMLApplicationServerConfig.java:255) [D:/jdevstudio1013/j2ee/home/lib/oc4j-internal.jar (from <code-source> in boot.xml in D:\jdevstudio1013\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at com.evermind.xml.XMLConfig.init (XMLConfig.java:200) [D:/jdevstudio1013/j2ee/home/lib/oc4j-internal.jar (from <code-source> in boot.xml in D:\jdevstudio1013\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at com.evermind.xml.XMLConfig.init (XMLConfig.java:117) [D:/jdevstudio1013/j2ee/home/lib/oc4j-internal.jar (from <code-source> in boot.xml in D:\jdevstudio1013\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at com.evermind.server.ApplicationServerLauncher.run (ApplicationServerLauncher.java:74) [D:/jdevstudio1013/j2ee/home/lib/oc4j-internal.jar (from <code-source> in boot.xml in D:\jdevstudio1013\j2ee\home\oc4j.jar), by oc4j:10.1.3]
at java.lang.Thread.run (Thread.java:595) [jre bootstrap, by jre.bootstrap]
05/11/30 12:04:16 Fatal error: server exiting
Process exited with exit code 1. "
Where do you think i am wrong?
Many thanksHi,
the problem seems not to be within your application but in missing files on your embedded OC4J. Just try and unzip the JDeveloper 10.1.3 install again.
Frank -
Hi:
How can i do a master-detail in UIX-JSP similar in functionality BC4J-JSP?. I haven't found an HOW-TO or guide.
Thanks
MarcoYes this is easily done.
If you have a BC4J project with say Emp and Dept View Objects which are linked via
a foreign key (there should be a BC4J FKDeptnoLink created), then all you have to do
is generate a BC4J UIX JSP application.
In a separate empty project, open the New gallery and select UIX-JSP -> Business Components JSP Application.
Generate a default JSP application for your BC4J components. You can then run main.jsp
to see the app.
To see a master detail view of your app which is based on the Bc4J Link (FKDeptno) just click
on link "FkDeptnoLink" on the left side..
-Chris -
UIX Master-Detail search criteria
When dropping a data control, Drag and Drop As Master-Detail, into a UIX page it wires up search inputs for Master data attributes only. Is it possible to include or define search inputs for detail data attributes? If so, please can you show me how to do it and provide an example if possible?
what do you mean by
" it wires up search inputs for Master data attributes only"?
No search form inputs are created by default when you drag'n'drop a master-detail widget. -
Views master-detail-detail by view links -- ADF UIX
Hi,
I have 3 views: master, detail of master, and detail of detail....then i want to create 2 viewlinks to relate them and so show them in the DATA CONTROL PALETTE....
Any Suggestion ??
Thanks...
S.J.
PD...When i use 3 tables, it is possible because they are foreign keys.You can find it in
Re: Parent-Child using <messageChoice> to <table> -
JDev 11g unable to refresh master-detail-detail using WebService proxy
Hello,
I need to access multiple webservice operations and display them in a master -> detail -> detail2 tables. I've created web service proxy and javabean data control on top of the operations. All three tables are loaded fine on the initial call. When I select a new row in the master table, the detail gets refreshed but when I click the a new row in the detail, detail2 does not get refreshed based on the row selected in detail. It always shows the records for the first row in the detail table.
master table is for projects
|
|_ detail table is for tasks
|
|_ detail2 table is for employees
Since this logic is built on top of web service proxy that requires complex type as parameter, I've add getProject, getTask method as shown in http://susanduncan.blogspot.com/2006/09/dealing-with-complex-input-params-in.html. What I have noticed that getTask always returns first row values.
Any pointers?One more thing I have noticed is that even if I click on the row in detail table, the web service that connects master table with detail table gets called. The response back from webservice is what goes into the detail table.
-
Detail-Disclosure problem with Master- Detail VO
Hi,
I have UIX pages based on Master - Detail VO, detail data being shown when you press Detail button on the left, detail data display in the BC4J Table correctly, but I am able to update only the last record of the rowset. when I click on the first master detail and press update button i get Null Pointer Exeception error and other problem is that my detail data has sorted headers, when i click on the sorted column header, it close the Detail portion on the Table.
Here is UIX page listing, please any one review the code and let me what is wrong
Thanks
View Page
<?xml version="1.0" encoding="windows-1252" ?>
<page xmlns="http://xmlns.oracle.com/uix/controller"
xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
xmlns:ui="http://xmlns.oracle.com/uix/ui"
xmlns:bc4j="http://xmlns.oracle.com/uix/bc4j"
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns:viewpage="http://www.example.org/siriusbilling/templates">
<ctrl:head xmlns="http://www.w3.org/TR/REC-html40">
<title>View Properties</title>
</ctrl:head>
<templates xmlns="http://xmlns.oracle.com/uix/ui">
<templateImport source="templates/SiriusBilling.uit"/>
</templates>
<bc4j:registryDef>
<bc4j:rootAppModuleDef name="PropertiesForeignKeyLink1AppModule"
definition="siriusbilling.SiriusBCModule"
releaseMode="stateful" >
<bc4j:viewObjectDef name="PropertyTypesMasterView"
rangeSize="2" />
<bc4j:viewObjectDef name="PropertiesDetailView"
rangeSize="5" />
</bc4j:rootAppModuleDef>
</bc4j:registryDef>
<ctrl:content xmlns="http://xmlns.oracle.com/uix/ui"
xmlns:data="http://xmlns.oracle.com/uix/ui">
<viewpage:siriusPageLayout>
<pageHeader>
<globalHeader selectedIndex="0">
<contents>
<link text="View Properties" />
</contents>
</globalHeader >
</pageHeader>
<contents>
<try xmlns="http://xmlns.oracle.com/uix/ui"
xmlns:data="http://xmlns.oracle.com/uix/ui" >
<catch>
<displayException />
</catch>
<contents>
<!-- this will contain any validation errors after form
submission -->
<messageBox automatic="true" />
<bc4j:rootAppModuleScope name="PropertiesForeignKeyLink1AppModule" >
<contents>
<header text="Properties Search" >
<contents>
<form name="search" method="POST" >
<contents>
<inlineMessage prompt="Search by:" vAlign="middle" >
<contents>
<bc4j:viewObjectScope name="PropertiesDetailView" >
<contents>
<flowLayout>
<contents>
<choice name="attrName"
data:selectedValue="attrName@ctrl:page"
shortDesc="Search Column">
<contents>
<option text="Property Id" value="PropertyId" />
<option text="Property Name" value="PropertyName" />
<option text="Property Description" value="PropertyDescription" />
<option text="Unit Of Measure" value="UnitOfMeasure" />
</contents>
</choice>
<textInput prompt="Criteria" name="attrValue" columns="20"
data:text="attrValue@ctrl:page"
shortDesc="Search Criteria for Propeties"/>
</contents>
</flowLayout>
</contents>
</bc4j:viewObjectScope>
</contents>
<end>
<submitButton text="Go" ctrl:event="search" />
</end>
</inlineMessage>
</contents>
</form>
</contents>
</header>
<spacer width="10"/>
<separator />
<header text="Property Types" >
<contents>
<form name="viewForm" method="POST" >
<contents>
<bc4j:viewObjectScope name="PropertyTypesMasterView" >
<contents>
<bc4j:table name="viewPropertyTypeTable" automatic="false"
width="100%" alternateText="No rows found"
formSubmitted="true"
partialRenderMode="self"
data:detailDisclosure="tableDetails@ctrl:eventResult">
<!-- the key identifying the current row in the table -->
<bc4j:keyStamp>
<bc4j:rowKey name="key" />
</bc4j:keyStamp>
<contents>
<!-- placing the region in automatic mode will cause the key
named child to be rendered, followed by each attribute
in the ViewObject using the attrStamp named child. -->
<!-- A bc4j:column element is added for each attribute
in the ViewObject. -->
<bc4j:column attrName="PropertyType">
<columnHeader>
<bc4j:sortableHeader text="Property Type"/>
</columnHeader>
<contents>
<bc4j:input readOnly="true"/>
</contents>
</bc4j:column>
<bc4j:column attrName="TableName">
<columnHeader>
<bc4j:sortableHeader text="Table Name"/>
</columnHeader>
<contents>
<bc4j:input readOnly="true"/>
</contents>
</bc4j:column>
<bc4j:column attrName="Comments" >
<columnHeader>
Comments
</columnHeader>
<contents>
<bc4j:input readOnly="true"/>
</contents>
</bc4j:column>
</contents>
<detail>
<flowLayout>
<contents>
<header text="Properties Detail">
<contents>
<spacer width="10"/>
<bc4j:viewObjectScope name="PropertiesDetailView" >
<contents>
<!-- placing the table in automatic mode will cause the table
to contain the keyStamp named child followed by the
columnStamp named child for each attribute in the
ViewObject. -->
<bc4j:table name="viewTable" automatic="false"
width="100%" alternateText="No rows found"
formSubmitted="true"
partialRenderMode="self">
<tableSelection>
<!-- single selection for each row in the table -->
<singleSelection selectedIndex="0" text="Select Row and ...">
<contents>
<submitButton text="Create" ctrl:event="create" />
<!-- the update button causes the currently selected
row to be sent to the update page -->
<submitButton text="Update"
ctrl:event="update" />
<!-- the delete button causes the currently selected
row to be removed -->
<submitButton text="Delete"
ctrl:event="delete" />
</contents>
</singleSelection>
</tableSelection>
<!-- the key identifying the current row in the table -->
<bc4j:keyStamp>
<bc4j:rowKey name="key" />
</bc4j:keyStamp>
<contents>
<!-- A bc4j:column element is added for each attribute
in the ViewObject. -->
<bc4j:column attrName="PropertyId">
<columnHeader>
<bc4j:sortableHeader text="Property Id"/>
</columnHeader>
<contents>
<bc4j:input readOnly="true"/>
</contents>
</bc4j:column>
<bc4j:column attrName="PropertyName">
<columnHeader>
<bc4j:sortableHeader text="Property Name"/>
</columnHeader>
<contents>
<bc4j:input readOnly="true"/>
</contents>
</bc4j:column>
<bc4j:column attrName="PropertyDescription">
<columnHeader>
<bc4j:sortableHeader text="Property Description"/>
</columnHeader>
<contents>
<bc4j:input readOnly="true"/>
</contents>
</bc4j:column>
<bc4j:column attrName="UnitOfMeasure">
<columnHeader>
<bc4j:sortableHeader text="Unit of Measure"/>
</columnHeader>
<contents>
<bc4j:input readOnly="true"/>
</contents>
</bc4j:column>
</contents>
</bc4j:table>
</contents>
</bc4j:viewObjectScope>
<formValue name="disclosed" value="true" />
</contents>
</header>
</contents>
</flowLayout>
</detail>
</bc4j:table>
</contents>
</bc4j:viewObjectScope>
</contents>
</form>
</contents>
</header>
</contents>
</bc4j:rootAppModuleScope>
</contents>
</try>
</contents>
</viewpage:siriusPageLayout>
</ctrl:content>
<handlers>
<event name="search" >
<!-- using the ApplicationModule causes it to be checked out from the
ApplicationPool. It is released using stateful mode. -->
<bc4j:findRootAppModule name="PropertiesForeignKeyLink1AppModule" >
<!-- establish the ViewObject scope -->
<bc4j:findViewObject name="PropertiesDetailView" >
<!-- search for the view criteria -->
<bc4j:findByExample>
<bc4j:exampleRow ignoreCase="true" >
<bc4j:exampleAttribute>
<bc4j:nameBinding><bc4j:parameter name="attrName" /></bc4j:nameBinding>
<bc4j:valueBinding><bc4j:parameter name="attrValue" /></bc4j:valueBinding>
</bc4j:exampleAttribute>
</bc4j:exampleRow>
</bc4j:findByExample>
<bc4j:executeQuery/>
<!-- store the current search criteria as page properties -->
<bc4j:setPageProperty name="attrName" >
<bc4j:parameter name="attrName" />
</bc4j:setPageProperty>
<bc4j:setPageProperty name="attrValue" >
<bc4j:parameter name="attrValue" />
</bc4j:setPageProperty>
</bc4j:findViewObject>
</bc4j:findRootAppModule>
</event>
<event name="first" >
<!-- using the ApplicationModule causes it to be checked out from the
ApplicationPool. It is released using stateful mode. -->
<bc4j:findRootAppModule name="PropertiesForeignKeyLink1AppModule" >
<!-- establish the ViewObject scope -->
<bc4j:findViewObject name="PropertyTypesMasterView" >
<!-- navigate to the first department -->
<bc4j:first/>
</bc4j:findViewObject>
</bc4j:findRootAppModule>
</event>
<event name="previous" >
<!-- using the ApplicationModule causes it to be checked out from the
ApplicationPool. It is released using stateful mode. -->
<bc4j:findRootAppModule name="PropertiesForeignKeyLink1AppModule" >
<!-- establish the ViewObject scope -->
<bc4j:findViewObject name="PropertyTypesMasterView" >
<!-- navigate to the previous department -->
<bc4j:previous/>
</bc4j:findViewObject>
</bc4j:findRootAppModule>
</event>
<event name="next" >
<!-- using the ApplicationModule causes it to be checked out from the
ApplicationPool. It is released using stateful mode. -->
<bc4j:findRootAppModule name="PropertiesForeignKeyLink1AppModule" >
<!-- establish the ViewObject scope -->
<bc4j:findViewObject name="PropertyTypesMasterView" >
<!-- navigate to the next department -->
<bc4j:next/>
</bc4j:findViewObject>
</bc4j:findRootAppModule>
</event>
<event name="last" >
<!-- using the ApplicationModule causes it to be checked out from the
ApplicationPool. It is released using stateful mode. -->
<bc4j:findRootAppModule name="PropertiesForeignKeyLink1AppModule" >
<!-- establish the ViewObject scope -->
<bc4j:findViewObject name="PropertyTypesMasterView" >
<!-- navigate to the last department -->
<bc4j:last/>
</bc4j:findViewObject>
</bc4j:findRootAppModule>
</event>
<event name="sort" source="viewTable" >
<!-- using the ApplicationModule causes it to be checked out from the
ApplicationPool. It is released using stateful mode. -->
<bc4j:findRootAppModule name="PropertiesForeignKeyLink1AppModule" >
<!-- establish the ViewObject scope -->
<bc4j:findViewObject name="PropertiesDetailView" >
<!-- sort by the submitted attribute name -->
<bc4j:sort/>
</bc4j:findViewObject>
</bc4j:findRootAppModule>
</event>
<event name="sort" source="viewPropertyTypeTable" >
<!-- using the ApplicationModule causes it to be checked out from the
ApplicationPool. It is released using stateful mode. -->
<bc4j:findRootAppModule name="PropertiesForeignKeyLink1AppModule" >
<!-- establish the ViewObject scope -->
<bc4j:findViewObject name="PropertyTypesMasterView" >
<!-- sort by the submitted attribute name -->
<bc4j:sort/>
</bc4j:findViewObject>
</bc4j:findRootAppModule>
</event>
<event name="goto" source="viewPropertyTypeTable" >
<!-- using the ApplicationModule causes it to be checked out from the
ApplicationPool. It is released using stateful mode. -->
<bc4j:findRootAppModule name="PropertiesForeignKeyLink1AppModule" >
<!-- establish the ViewObject scope -->
<bc4j:findViewObject name="PropertyTypesMasterView" >
<!-- navigate to the submitted range -->
<bc4j:goto/>
</bc4j:findViewObject>
</bc4j:findRootAppModule>
</event>
<event name="goto" source="viewTable" >
<!-- using the ApplicationModule causes it to be checked out from the
ApplicationPool. It is released using stateful mode. -->
<bc4j:findRootAppModule name="PropertiesForeignKeyLink1AppModule" >
<!-- establish the ViewObject scope -->
<bc4j:findViewObject name="PropertiesDetailView" >
<!-- navigate to the submitted range -->
<bc4j:goto/>
</bc4j:findViewObject>
</bc4j:findRootAppModule>
</event>
<event name="create" >
<!-- forward to the create page -->
<ctrl:go name="InsertProperties" redirect="true" />
</event>
<event name="update" >
<!-- forward to the update page, passing the selected key
as a page property -->
<ctrl:go name="UpdateProperties" redirect="true" >
<ctrl:property name="key" >
<ctrl:selection name="viewTable" key="key" />
</ctrl:property>
</ctrl:go>
</event>
<event name="delete" >
<!-- using the ApplicationModule causes it to be checked out from the
ApplicationPool. It is released using stateful mode. -->
<bc4j:findRootAppModule name="PropertiesForeignKeyLink1AppModule" >
<!-- establish the ViewObject scope -->
<bc4j:findViewObject name="PropertiesDetailView" >
<!-- find the selected Row -->
<bc4j:findRowByKey>
<bc4j:keyBinding>
<bc4j:selectionKey name="viewTable" key="key" />
</bc4j:keyBinding>
<bc4j:handlers>
<!-- remove the selected ViewObject row -->
<bc4j:removeRow />
<!-- execute the query to eliminate dead row access -->
<bc4j:executeQuery/>
</bc4j:handlers>
</bc4j:findRowByKey>
</bc4j:findViewObject>
<!-- commit the transaction, forwards to self automatically -->
<bc4j:commit/>
</bc4j:findRootAppModule>
</event>
<event name="show">
<method class="servlet.showDetails" method="doHideShowEvent" />
</event>
<event name="hide">
<method class="servlet.showDetails" method="doHideShowEvent" />
</event>
</handlers>
</page>
Update View
<?xml version="1.0" encoding="windows-1252" ?>
<page xmlns="http://xmlns.oracle.com/uix/controller"
xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
xmlns:ui="http://xmlns.oracle.com/uix/ui"
xmlns:bc4j="http://xmlns.oracle.com/uix/bc4j"
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns:updatepage="http://www.example.org/siriusbilling/templates">
<ctrl:head xmlns="http://www.w3.org/TR/REC-html40">
<title>Update Properties</title>
</ctrl:head>
<templates xmlns="http://xmlns.oracle.com/uix/ui">
<templateImport source="templates/SiriusBilling.uit"/>
</templates>
<bc4j:registryDef>
<bc4j:rootAppModuleDef name="PropertiesForeignKeyLink1AppModule"
definition="siriusbilling.SiriusBCModule"
releaseMode="stateful" >
<bc4j:viewObjectDef name="PropertiesDetailView" >
<bc4j:rowDef name="UpdatePropertiesDetailView" autoCreate="false" usesCurrency="true">
<bc4j:propertyKey name="key" />
</bc4j:rowDef>
</bc4j:viewObjectDef>
<!-- Display only 20 rows -->
<bc4j:viewObjectDef name="PropertyTypesView" rangeSize="20" >
<bc4j:rowDef name="UpdatePropertyTypesView" autoCreate="false">
<bc4j:propertyKey name="key" />
</bc4j:rowDef>
</bc4j:viewObjectDef>
</bc4j:rootAppModuleDef>
</bc4j:registryDef>
<ctrl:content xmlns="http://xmlns.oracle.com/uix/ui"
xmlns:data="http://xmlns.oracle.com/uix/ui">
<updatepage:siriusPageLayout>
<pageHeader>
<globalHeader selectedIndex="0">
<contents>
<link text="Update Property" />
</contents>
</globalHeader >
</pageHeader>
<contents>
<try xmlns="http://xmlns.oracle.com/uix/ui"
xmlns:data="http://xmlns.oracle.com/uix/ui" >
<catch>
<displayException />
</catch>
<contents>
<switcher childName="default">
<boundAttribute name="childName">
<if>
<comparison type="equals">
<dataObject select="key" source="ctrl:page"/>
<dataObject source="ui:null"/>
</comparison>
<fixed text="error"/>
</if>
</boundAttribute>
<case name="error">
<header text="Required page property 'Property Type' missing. Cannot display page."/>
</case>
<case name="default">
<flowLayout>
<contents>
<!-- this will contain any validation errors after form
submission -->
<messageBox automatic="true" />
<script>
<contents>
function UOMLovCallBack(lovwin, event)
var value = lovwin.returnUOMValue;
if (value!=(void 0))
document.updateForm.UnitOfMeasure.value = lovwin.returnUOMValue;
</contents>
</script>
<form name="updateForm" method="POST" >
<contents>
<!-- we cannot implicitly determine that events
will be triggered because submit buttons are
outside the form scope, so add the placeholder
explicitly -->
<formParameter name="event" />
<!-- layout the fields in two columns -->
<spacer width="10"/>
<tableLayout width="80%"
cellPadding="2"
hAlign="center">
<contents>
<bc4j:rootAppModuleScope name="PropertiesForeignKeyLink1AppModule" >
<contents>
<bc4j:viewObjectScope name="PropertiesDetailView" >
<contents>
<bc4j:rowScope name="UpdatePropertiesDetailView" >
<contents>
<bc4j:messageChoice prompt="Property Type" attrName="PropertyType" name="PropertyType">
<contents>
<bc4j:optionList voName="PropertyTypesView" attrName="PropertyType" textAttributeName="PropertyType" size="30"/>
</contents>
</bc4j:messageChoice>
<bc4j:messageInput prompt="Property Id" vAlign="left" attrName="PropertyId" size="30"/>
<bc4j:messageInput prompt="Property Name" attrName="PropertyName" size="30"/>
<bc4j:messageInput prompt="Property Description" attrName="PropertyDescription" size="30" />
<bc4j:messageLovField prompt="Unit Of Measure"
attrName="UnitOfMeasure"
name="UnitOfMeasure"
onClick="openWindow(window,
'UOMLov.uix',
'lovwin',
{width:480, height:300},
true,
'dialog',
UOMLovCallBack);
return false;" />
</contents>
</bc4j:rowScope>
</contents>
</bc4j:viewObjectScope>
</contents>
</bc4j:rootAppModuleScope>
</contents>
</tableLayout>
</contents>
</form>
</contents>
<contents>
<contentFooter>
<contents>
<html:center>
<!-- place a row of buttons below the content -->
<pageButtonBar>
<contents>
<!-- the cancel button performs a transaction rollback -->
<button text="Cancel" ctrl:event="cancel" />
<!-- the update button submits the user-entered
form data -->
<submitButton text="Update" formName="updateForm"
ctrl:event="apply" />
</contents>
</pageButtonBar>
</html:center>
</contents>
</contentFooter>
</contents>
</flowLayout>
</case>
</switcher>
</contents>
</try>
</contents>
</updatepage:siriusPageLayout>
</ctrl:content>
<handlers>
<event name="cancel" >
<!-- using the ApplicationModule causes it to be checked out from the
ApplicationPool. It is released using stateful mode. -->
<bc4j:findRootAppModule name="PropertiesForeignKeyLink1AppModule" >
<!-- rollback the current transaction -->
<bc4j:rollback/>
<!-- forward to the summary page -->
<ctrl:go name="ViewProperties" redirect="true" />
</bc4j:findRootAppModule>
</event>
<event name="apply" >
<!-- using the ApplicationModule causes it to be checked out from the
ApplicationPool. It is released using stateful mode. -->
<bc4j:findRootAppModule name="PropertiesForeignKeyLink1AppModule" >
<!-- establish the ViewObject scope -->
<bc4j:findViewObject name="PropertiesDetailView" >
<!-- find the row by key, falling back on a new default
row if the key is not found -->
<bc4j:findRow name="UpdatePropertiesDetailView" >
<!-- set each attribute explicitly -->
<bc4j:setAttribute name="PropertyId" />
<bc4j:setAttribute name="PropertyType" />
<bc4j:setAttribute name="PropertyName" />
<bc4j:setAttribute name="PropertyDescription" />
<bc4j:setAttribute name="UnitOfMeasure" />
<!-- commit the transaction -->
<bc4j:commit/>
<bc4j:executeQuery/>
<!-- forward to the summary page -->
<ctrl:go name="ViewProperties" redirect="true" />
</bc4j:findRow>
</bc4j:findViewObject>
</bc4j:findRootAppModule>
</event>
</handlers>
</page>I think the detailDisclosure state needs to be saved and retrieved from the session.
I'm not sure using a table with singleSelection inside a detail disclosure is supported. Are you doing master-detail inside of detail disclosure? Detail disclosure is not really meant for that. In jdev 10g preview we make hooking up a master-detail easy. Here's a link to some doc about it.
http://otn.oracle.com/products/jdev/collateral/tutorials/9050/adfuix_tut.html#Create%20a%20Master-Detail%20page -
Master-Detail Relationship problem
I've spent 1.5 days already trying to solve this problem. I'm creating a JClient application using BC4J with a Master-Detail relationship. The relationship between tables is a many-to-many thru an intersection table. I've gotten my master and detail data to show with columnar form data in the top(master) panel and table data in the lower(detail) panel. My problem is that each time I get a master record that contains more than one detail record, each time I click the next navigation button in the master pane it will remain on the master record for the number of detail entries. For example, if a master record has 3 children, then I must click the next button 3 times to move to the next master record. I know that it has something to do with the way the entities are joined but I can't figure out how to join them any other way. Can anyone give me a hint how I can make the master panel only show one record for each Master-Detail relationship (even though the intersection table says its a many-to-many)?
Thanks,
MarkApparently, I was making things much more complicated than they needed to be (rather, JDev was). My first attempt at MD relationships, I followed the examples in the help files. JDev created VO's, Entities, Assoc's, View Links, etc... Everything but the kitchen sink! After researching a bunch more, I found that the only thing I needed to do was to create my view objects to display exactly what I wanted to see in my panel regardless of whether it was a parent or a child. Once I had the view objects straight, then I could connect them using a view link and JDev handled the rest. Pretty slick but, I wish there was some better documentation. My next problem is that I'm trying to make this a Master-Detail-Detail-Detail window. The master needs to be a JComboBox, displays only a date, and needs to appear in the same panel as it's child. The 1st child will have a navbar that cycles through a bunch of orders based on the date from the combo box. The order panel's child is in the lower panel and displays the order detail items. It also has a navbar. The lower detail panel needs to have a split pane with the upper part showing the order detail and the lower part showing the materials used in making up that order detail item.
So far, I've got the first 3 parts done (ie. combobox, orders, and details). For the combobox, I used a JComboBox navigationbinding. It shows the correct date, but my control is always disabled. I can't figure out why the combobox is always disabled. The enabled property is set to true. Anbody have any clues?
Thanks,
Mark -
EJB - Master Detailing Help.
Hi,
I am new to EJB & to JDeveloper.
I am tring to use EJB to display table information where one table is the master and second table displays the info according to the master.
Here is what I have done so far:
I created EJB Diagram using drag & drop method from connection, then I created EJB Entity Facade Objects, just like ADF, it created view & link.
In pageflow, I created uix page to display the results. But the problem is that when I use master detail (one to many, etc), and run the page, I get full information from both tables rather than record by record like ADF does.
The example I followed is on the following link.
http://www.oracle.com/technology/products/jdev/collateral/tutorials/9050/adfuix_tut.html
Thank you.This is not a clustering issue. Pls post your question to relevant newsgroup.
FWIW, NoClassDefFoundError means the corresponding class is not found
in the classpath.
Kumar
F40 wrote:
> EJB : Test .Unable to initialize method info for remote or home interface.The error is java.lang.NoClassDefFoundError: [Lcom/borland/dx/dataset/DataSetData;
-
ADF master-detail master selection not updating detail tables properly
Hi All,
I am using JDev version : 11.1.2.0.0
I created new Fusion Web Application Module. In that module I created a master-detail data model and added them to a page fragment with a query panel. When I run it as a separate module, It works perfectly and Master selection correctly updates detail tables.
But when I integrate that module to another Fusion Application(Add application jar file to the Master Application libraries), Master-details master selection not updating detail tables properly. This problem occurred sequentially.
The problem is that.
After the page load, first selection of the Master Table works correctly and detail tables update correctly.
But second selection doesn't work, means detail table doesn't get update according to the Master table.
And again in the third selection works correctly.
This happens in a sequential manner. I monitor the behavior using Firebug. Observations are as follows,
When running correctly, Response of the Post Definition is
<?xml version="1.0" ?> <partial-response><changes><update id="pt1:t1"><![CDATA[<div tabindex="0" id="pt1:t1" class="xpa xpi" _leafColClientIds="['pt1:t1:c1','pt1:t1:c2','pt1:t1:c3','pt1:t1:c4','pt1:t1:c5','pt1:t1:c6','pt1:t1:c7','pt1:t1:c8','pt1:t1:c9','pt1:t1:c10','pt1:t1:c11','pt1:t1:c12','pt1:t1:c13']"><div id="pt1:t1::ch" style="overflow:hidden;position:relative;width:1365px;" _afrColCount="13" class="xz4"><table class="xz6" summary="This table contains column headers corresponding to the data body table below" id="pt1:t1::ch::t" style="position:relative;table-layout:fixed;width:1365px" cellspacing="0"><tr><th style="padding:0px;padding-left:5px;width:100px;"></th><th style="padding:0px;padding-left:5px;width:100px;"></th><th style="padding:0px;padding-left:5px;width:100px;"></th><th style="padding:0px;padding-left:5px;width:100px;"></th><th style="padding:0px;padding-left:5px;width:100px;"></th><th style="padding:0px;padding-left:5px;width:100px;"></th><th style="padding:0px;padding-left:5px;width:100px;"></th><th style="padding:0px;padding-left:5px;width:100px;"></th><th style="padding:0px;padding-left:5px;width:100px;"></th><th style="padding:0px;padding-left:5px;width:100px;"></th><th style="padding:0px;padding-left:5px;width:100px;"></th><th style="padding:0px;padding-left:5px;width:100px;"></th><th style="padding:0px;padding-left:5px;width:100px;"></th></tr><tr><th id="pt1:t1:c1" _d_index="0" _afrLeaf="true" _afrRoot="true" align="left" class="xz7"><div style="position:relative; float:right"><table id="pt1:t1:c1::afrSI" _afrHoverable="true" style="display:none" class="xzs" cellpadding="0" cellspacing="0"><tr><td _afrSortAsc="1"><a tabIndex="-1" class="xza" title="Sort Ascending"></a></td><td _afrSortDesc="1"><a tabIndex="-1" class="xzb" title="Sort Descending"></a></td></tr></table></div><div class="x19d">DateFormat</div></th><th id="pt1:t1:c2" _d_index="1" _afrLeaf="true" _afrRoot="true" align="left" class="xz7"><div style="position:relative; float:right"><table id="pt1:t1:c2::afrSI" _afrHoverable="true" style="display:none" class="xzs" cellpadding="0" cellspacing="0"><tr><td _afrSortAsc="1"><a tabIndex="-1" class="xza" title="Sort Ascending"></a></td><td _afrSortDesc="1"><a tabIndex="-1" class="xzb" title="Sort Descending"></a></td></tr></table></div><div class="x19d">DefinisionId</div></th><th id="pt1:t1:c3" _d_index="2" _afrLeaf="true" _afrRoot="true" align="left" class="xz7"><div style="position:relative; float:right"><table id="pt1:t1:c3::afrSI" _afrHoverable="true" style="display:none" class="xzs" cellpadding="0" cellspacing="0"><tr><td _afrSortAsc="1"><a tabIndex="-1" class="xza" title="Sort Ascending"></a></td><td _afrSortDesc="1"><a tabIndex="-1" class="xzb" title="Sort Descending"></a></td></tr></table></div><div class="x19d">FieldId</div></th><th id="pt1:t1:c4" _d_index="3" _afrLeaf="true" _afrRoot="true" align="left" class="xz7"><div style="position:relative; float:right"><table id="pt1:t1:c4::afrSI" _afrHoverable="true" style="display:none" class="xzs" cellpadding="0" cellspacing="0"><tr><td _afrSortAsc="1"><a tabIndex="-1" class="xza" title="Sort Ascending"></a></td><td _afrSortDesc="1"><a tabIndex="-1" class="xzb" title="Sort Descending"></a></td></tr></table></div><div class="x19d">FieldLabel</div></th><th id="pt1:t1:c5" _d_index="4" _afrLeaf="true" _afrRoot="true" align="left" class="xz7"><div style="position:relative; float:right"><table id="pt1:t1:c5::afrSI" _afrHoverable="true" style="display:none" class="xzs" cellpadding="0" cellspacing="0"><tr><td _afrSortAsc="1"><a tabIndex="-1" class="xza" title="Sort Ascending"></a></td><td _afrSortDesc="1"><a tabIndex="-1" class="xzb" title="Sort Descending"></a></td></tr></table></div><div class="x19d">FieldLength</div></th><th id="pt1:t1:c6" _d_index="5" _afrLeaf="true" _afrRoot="true" align="left" class="xz7"><div style="position:relative; float:right"><table id="pt1:t1:c6::afrSI" _afrHoverable="true" style="display:none" class="xzs" cellpadding="0" cellspacing="0"><tr><td _afrSortAsc="1"><a tabIndex="-1" class="xza" title="Sort Ascending"></a></td><td _afrSortDesc="1"><a tabIndex="-1" class="xzb" title="Sort Descending"></a></td></tr></table></div><div class="x19d">FieldOffset</div></th><th id="pt1:t1:c7" _d_index="6" _afrLeaf="true" _afrRoot="true" align="left" class="xz7"><div style="position:relative; float:right"><table id="pt1:t1:c7::afrSI" _afrHoverable="true" style="display:none" class="xzs" cellpadding="0" cellspacing="0"><tr><td _afrSortAsc="1"><a tabIndex="-1" class="xza" title="Sort Ascending"></a></td><td _afrSortDesc="1"><a tabIndex="-1" class="xzb" title="Sort Descending"></a></td></tr></table></div><div class="x19d">FieldOrder</div></th><th id="pt1:t1:c8" _d_index="7" _afrLeaf="true" _afrRoot="true" align="left" class="xz7"><div style="position:relative; float:right"><table id="pt1:t1:c8::afrSI" _afrHoverable="true" style="display:none" class="xzs" cellpadding="0" cellspacing="0"><tr><td _afrSortAsc="1"><a tabIndex="-1" class="xza" title="Sort Ascending"></a></td><td _afrSortDesc="1"><a tabIndex="-1" class="xzb" title="Sort Descending"></a></td></tr></table></div><div class="x19d">FieldStatus</div></th><th id="pt1:t1:c9" _d_index="8" _afrLeaf="true" _afrRoot="true" align="left" class="xz7"><div style="position:relative; float:right"><table id="pt1:t1:c9::afrSI" _afrHoverable="true" style="display:none" class="xzs" cellpadding="0" cellspacing="0"><tr><td _afrSortAsc="1"><a tabIndex="-1" class="xza" title="Sort Ascending"></a></td><td _afrSortDesc="1"><a tabIndex="-1" class="xzb" title="Sort Descending"></a></td></tr></table></div><div class="x19d">FieldType</div></th><th id="pt1:t1:c10" _d_index="9" _afrLeaf="true" _afrRoot="true" align="left" class="xz7"><div style="position:relative; float:right"><table id="pt1:t1:c10::afrSI" _afrHoverable="true" style="display:none" class="xzs" cellpadding="0" cellspacing="0"><tr><td _afrSortAsc="1"><a tabIndex="-1" class="xza" title="Sort Ascending"></a></td><td _afrSortDesc="1"><a tabIndex="-1" class="xzb" title="Sort Descending"></a></td></tr></table></div><div class="x19d">FieldTypeLen</div></th><th id="pt1:t1:c11" _d_index="10" _afrLeaf="true" _afrRoot="true" align="left" class="xz7"><div style="position:relative; float:right"><table id="pt1:t1:c11::afrSI" _afrHoverable="true" style="display:none" class="xzs" cellpadding="0" cellspacing="0"><tr><td _afrSortAsc="1"><a tabIndex="-1" class="xza" title="Sort Ascending"></a></td><td _afrSortDesc="1"><a tabIndex="-1" class="xzb" title="Sort Descending"></a></td></tr></table></div><div class="x19d">IgnoreField</div></th><th id="pt1:t1:c12" _d_index="11" _afrLeaf="true" _afrRoot="true" align="left" class="xz7"><div style="position:relative; float:right"><table id="pt1:t1:c12::afrSI" _afrHoverable="true" style="display:none" class="xzs" cellpadding="0" cellspacing="0"><tr><td _afrSortAsc="1"><a tabIndex="-1" class="xza" title="Sort Ascending"></a></td><td _afrSortDesc="1"><a tabIndex="-1" class="xzb" title="Sort Descending"></a></td></tr></table></div><div class="x19d">IsMandatory</div></th><th id="pt1:t1:c13" _d_index="12" _afrLeaf="true" _afrRoot="true" align="left" class="xz7"><div style="position:relative; float:right"><table id="pt1:t1:c13::afrSI" _afrHoverable="true" style="display:none" class="xzs" cellpadding="0" cellspacing="0"><tr><td _afrSortAsc="1"><a tabIndex="-1" class="xza" title="Sort Ascending"></a></td><td _afrSortDesc="1"><a tabIndex="-1" class="xzb" title="Sort Descending"></a></td></tr></table></div><div class="x19d">RecordType</div></th></tr></table></div><div id="pt1:t1::db" class="xyx" style="position:relative;width:100%;overflow:hidden" _afrColCount="13"></div><div id="pt1:t1::sm" class="xzt" style="position:absolute;display:none"></div><div id="pt1:t1::ri" class="xyz" style="position:absolute;display:none;overflow:hidden"></div><div id="pt1:t1::dataW" style="display:none"></div></div>]]></update><update id="f1::postscript"><![CDATA[<span id="f1::postscript"><span id="f1::postscript:st"><input type="hidden" name="javax.faces.ViewState" value="!-75cc188st"></span></span>]]></update><update id="d1::iconC"><![CDATA[<span id="d1::iconC" style="display:none"><span id="af_table::disclosed-icon"></span><span id="af_table::undisclosed-icon"></span></span>]]></update><update id="javax.faces.ViewState"><![CDATA[!-75cc188st]]></update><eval><![CDATA[AdfPage.PAGE.__handleRichResponseAction('/MillenniumCSD-ViewController-context-root/faces/FileDefinition?_adf.ctrl-state=cmpl0ptfg_7');]]></eval><eval><![CDATA[AdfPage.PAGE.sendStreamingRequest("pt1:t1");]]></eval><extension id="adf-script-library">/MillenniumCSD-ViewController-context-root/afr/partition/gecko/default/opt/dnd-SHERMAN-1147.js</extension><extension id="adf-script-library">/MillenniumCSD-ViewController-context-root/afr/partition/gecko/default/opt/nav-SHERMAN-1147.js</extension><extension id="adf-script-library">/MillenniumCSD-ViewController-context-root/afr/partition/gecko/default/opt/menu-SHERMAN-1147.js</extension><extension id="adf-script-library">/MillenniumCSD-ViewController-context-root/afr/partition/gecko/default/opt/table-SHERMAN-1147.js</extension><eval>AdfPage.PAGE.addResource('javascript','/MillenniumCSD-ViewController-context-root/JarLoaderPages/jquery-1.7.1.min.js');</eval><eval>AdfPage.PAGE.addResource('javascript','/MillenniumCSD-ViewController-context-root/JarLoaderPages/dis_contx.js');</eval><eval>AdfPage.PAGE.addResource('javascript','/MillenniumCSD-ViewController-context-root/js/floating_bar_bottom.js');</eval><eval>if(self.window.name != "MillenniumDepository"){ self.location = "mcsd.html"; }</eval><eval><![CDATA[AdfDhtmlLookAndFeel.addSkinProperties({"af|table-tr-column-scroll-animation-duration":"300","af|table-tr-column-reorder-animation-duration":"600","af|table-tr-hover-highlight-row":"true"});AdfPage.PAGE.addComponents(new AdfRichTable('pt1:t1',{'rowSelection':'single','rowBandingInterval':0,'editingMode':'none','afrSelListener':true}),new AdfRichColumn('pt1:t1:c1',{'sortProperty':'DateFormat','sortable':true,'minimumWidth':12,'rowHeader':false}),new AdfRichColumn('pt1:t1:c2',{'sortProperty':'DefinisionId','sortable':true,'minimumWidth':12,'rowHeader':false}),new AdfRichColumn('pt1:t1:c3',{'sortProperty':'FieldId','sortable':true,'minimumWidth':12,'rowHeader':false}),new AdfRichColumn('pt1:t1:c4',{'sortProperty':'FieldLabel','sortable':true,'minimumWidth':12,'rowHeader':false}),new AdfRichColumn('pt1:t1:c5',{'sortProperty':'FieldLength','sortable':true,'minimumWidth':12,'rowHeader':false}),new AdfRichColumn('pt1:t1:c6',{'sortProperty':'FieldOffset','sortable':true,'minimumWidth':12,'rowHeader':false}),new AdfRichColumn('pt1:t1:c7',{'sortProperty':'FieldOrder','sortable':true,'minimumWidth':12,'rowHeader':false}),new AdfRichColumn('pt1:t1:c8',{'sortProperty':'FieldStatus','sortable':true,'minimumWidth':12,'rowHeader':false}),new AdfRichColumn('pt1:t1:c9',{'sortProperty':'FieldType','sortable':true,'minimumWidth':12,'rowHeader':false}),new AdfRichColumn('pt1:t1:c10',{'sortProperty':'FieldTypeLen','sortable':true,'minimumWidth':12,'rowHeader':false}),new AdfRichColumn('pt1:t1:c11',{'sortProperty':'IgnoreField','sortable':true,'minimumWidth':12,'rowHeader':false}),new AdfRichColumn('pt1:t1:c12',{'sortProperty':'IsMandatory','sortable':true,'minimumWidth':12,'rowHeader':false}),new AdfRichColumn('pt1:t1:c13',{'sortProperty':'RecordType','sortable':true,'minimumWidth':12,'rowHeader':false}));AdfPage.PAGE.__recordSessionTimeout(1800000, 120000, "http://127.0.0.1:7101/MillenniumCSD-ViewController-context-root/faces/FileDefinition");AdfPage.PAGE.__initPollingTimeout(600000);AdfPage.PAGE.clearMessages();AdfPage.PAGE.clearSubtreeMessages('pt1:t1');AdfPage.PAGE.clearSubtreeMessages('pt1:resId1');]]></eval></changes></partial-response>
When not running correctly, Response of the Post Definition is
<?xml version="1.0" ?> <partial-response><changes><update id="f1::postscript"><![CDATA[<span id="f1::postscript"><span id="f1::postscript:st"><input type="hidden" name="javax.faces.ViewState" value="!-75cc188st"></span></span>]]></update><update id="javax.faces.ViewState"><![CDATA[!-75cc188st]]></update><eval><![CDATA[AdfPage.PAGE.__handleRichResponseAction('/MillenniumCSD-ViewController-context-root/faces/FileDefinition?_adf.ctrl-state=cmpl0ptfg_7');]]></eval><eval>AdfPage.PAGE.addResource('javascript','/MillenniumCSD-ViewController-context-root/JarLoaderPages/jquery-1.7.1.min.js');</eval><eval>AdfPage.PAGE.addResource('javascript','/MillenniumCSD-ViewController-context-root/JarLoaderPages/dis_contx.js');</eval><eval>AdfPage.PAGE.addResource('javascript','/MillenniumCSD-ViewController-context-root/js/floating_bar_bottom.js');</eval><eval>if(self.window.name != "MillenniumDepository"){ self.location = "mcsd.html"; }</eval><eval><![CDATA[AdfPage.PAGE.__recordSessionTimeout(1800000, 120000, "http://127.0.0.1:7101/MillenniumCSD-ViewController-context-root/faces/FileDefinition");AdfPage.PAGE.__initPollingTimeout(600000);AdfPage.PAGE.clearMessages();AdfPage.PAGE.clearSubtreeMessages('pt1:t1');AdfPage.PAGE.clearSubtreeMessages('pt1:resId1');]]></eval></changes></partial-response>
I could not figure out what went wrong when integrating to another module.
Can you please help me to rectify this problem.
Thanks
dkHi,
sound to be an implementation specific issue that is hard to comment on without knowing how to reproduce it. If you have a rerooducible test case based on the Oracle HR schema using JDeveloper 11.1.1.6, zip it up, rename the "zip "extension to "unzip" and sent it to the mail address you find in my OTN profile. If you don't have that test case, explain how this can be reproduced
Frank -
Question on "Master Detail page using ADF" sample
I downloaded the "Master Detail page using ADF" sample application. I modified editDepartment.jsp page to include the Commit button as follows:
<html:submit property="event_Commit">Save and Commit</html:submit>
When I go to edit a department record and click on the new "Save and Commit" button, I SQLed the DEPARTMENTS table and noticed that the edits were not commited. I also restarted the embedded OC4J server and still get the same results. For some reason, the department view object contains the modification but the entity object doesn't. Why?Scott,
My colleague suggested a workaround, which is to explicitly include the detail table's id in the master table's partialTargets list. So, for example, in MasterDetailDP.uix, changing:
<table model="${bindings.DepartmentsView1}"
id="DepartmentsView111"
partialRenderMode="multiple"
partialTargets="_uixState">to:
<table model="${bindings.DepartmentsView1}"
id="DepartmentsView111"
partialRenderMode="multiple"
partialTargets="_uixState EmployeesView312">...will cause the detail table to be updated when sorting the master table.
There is some question about whether sorting a table should actually cause the currently selected row to change - we're still discussing this point.
Andy -
Dear All,
I am trying to figure out how ADFBC handles Master Detail relationship as this
is the first time where I need to handle table relationship.
From practice, I only used one table but this time I need to manage the relationship also.
I have two tables below. They have a one to many relationship.
PART_ID in the PARTS_CODE table is populated by a DB sequence.
PARTS_CODE PART_DESC
- PART_ID (PK) - PART_ID (PK)
- RANGE - REGION (PK)
- CATEGORY - DESCUse Case is like this:
PARTS_CODE table holds the data on the parts while PARTS_DESC holds the information on the Region specific description of the parts.
Now I created a View object that joins the two tables. Then I drag this View Object from
my Data Control as an update-able table.
I just have some questions on the implementations:
1. When I drag the CreateInsert button and click it, I notice that it adds a new row to the
table but I notice that it creates Input Text component only on the columns associated with
the PARTS_CODE Table, the other columns for the PART_DESC does not have any UI components.
How to solve this?
2. How can I manage the relationship such that when it inserts the data on the PARTS_CODE, I need
to get the DB sequence generated number and insert it into the PART_DESC table
3. Any demo/links that shows CRUD operations that involves master detail tables?
I have searched the forum for Master-Detail Crud but I only see how to display the relationship and not
the CRUD operations.
Found this blog also http://andrejusb.blogspot.com/2009/03/create-operation-for-master-detail.html but
I am having trouble fully understanding it yet.
JDEV 11G PS3
ThanksHi,
Which of the following is your case scenario?
1) By pressing CreateInsert, You want to have one new row with data from both tables?
For this, You should make the reference entity to be updatable. You will find the property in the Entities level of your View Object. By creating at the same time, you have to handle the PK properly. Especially if there is a change to the PK of the master entity.
2) Do You want to have two createInsert Buttons and press them in order?
You have to follow the view Link
Regards,
Dimitris. -
Master-detail with dynamic view object
How can you create a view link with a view object that is dynamic? I have created a master-detail relationship on a UIX page. I change the master view object at runtime using a view definition and SQL and then I bind the view object to an iterator on a UIX page. I need the new dynamic view object to maintain the link between the detail view object. Is this possible?
The reason why I have to change the view object at runtime is because I am implementing a search module and the tables in the from clause can be modified at runtime so I need to have a dynamic view object.
Thanks,
SanjayAfter playing around with ViewObjectImpl's setQuery() method some more I found out that this solution might not work for me due to the following reason: when the user tries to sort a column in the result table, the original contents of the view object get executed instead of the run time query.
<p>
I would like to go back to my original solution that included creating a view definition based on the runtime query and then creating a view object from that which I bind to the RowSetIterator. The missing piece to the master-detail functionality is with the detail Iterator being in sync with the master. I have tried the following but I get a ClassCastException <p>
DCIteratorBinding detailBinding = ctx.getBindingContainer().findIteratorBinding("DetailIterator");
detailBinding.getViewObject().<b>setMasterRowSetIterator</b>(masterBinding.getRowSetIterator());
<p>
here is the relevant stack trace:
java.lang.ClassCastException
at oracle.jbo.client.remote.ViewUsageImpl.getImplObject(ViewUsageImpl.java:1829)
at oracle.jbo.client.remote.RowSetImpl.setMasterRowSetIterator(RowSetImpl.java:512)
at oracle.jbo.client.remote.ViewUsageImpl.setMasterRowSetIterator(ViewUsageImpl.java:1147)
at oracle.jbo.common.ws.WSViewObjectImpl.setMasterRowSetIterator(WSViewObjectImpl.java:1005) -
Question of displaying Task Flow Region in Master-Details pattern
We have a master-details page. There is a region on the details pane along with other widgets and the content of that details pane including the region depends on the row selection on the master table list.
The first time page loads with no row selection on master table so this details pane displays nothing. When I select one row on the master table and the details pane and its region can display data of the row in master table properly.
After several selection, I navigate to another page and then go back to this master-details page again, it automatically selects the row which was selected last time. And in the details pane, the region whose content was created basing a task flow call cannot display corresponding data of the default selected row while other widgets in the details pane can display corresponding data properly.
The reason of having this problem is the region's parameter is generated before the selected row is determined. When the task flow call in page definition is parsed, the parameter of this task flow call is created before component binding of the master table. It means when the task flow call is parsed and generating the parameter, the ADF page believes there is no row selection of the master table because the component binding is null at that time.
So my question is how to make the this task flow call for that region create the task flow call parameter after the component binding of the master table? Or is there any way to force a refresh of the region/task-flow-call after the render of response? Or is there anyway to disable this "auto-select" on the master table after navigating to other page?
(My jdev version is JDEVADF_11.1.1.6.0_GENERIC_111205.1733.6192.1 )
Edited by: user790224 on Sep 6, 2012 4:16 PMThe reason we are using master-details patter here is it is designed in that way and the region is displaying the data of a selected row there.
There is no master-details relationship on model layer. But the content of the region is from the result of several other Java API calls which call the task-flow from an external component.
Maybe you are looking for
-
After I did the update in my Itunes program, I can't open it and here are the messages that I received: What can I do?
-
Convert Includes in CMOD to BADI Implementation
Hi BW Experts, The way we used to enhance datasource was to write includes in CMOD. Now we are working on technical design to convert all these includes to BADI implementations. The question that we have is that is data reload required in BW after t
-
How do I install PDF maker files
Every time I try to convert a word file to PDF, I get a messarge indicating that I need to install PDF maker files. The message also tells me to run repair, which is not effective.
-
Hi all, I'm trying to run the Forms in local to develop them and then publish them to the server, but can't work it out. I got the following message in the explorer: 500 Internal Server Error Error de Oracle Forms Servlet. Missing the value for the p
-
This just started a couple of weeks ago...I close down computer, and restate ; most of the times it doesn't do the multi stuff ...