ADF Forms Issue

Hi All,
I am fairly new to JDeveloper so please bear with me.
Based on the ADF Tutorial for Forms/4GL developers I have developed a simple ADF form that edits data on a database table. The table is built from a data control, has bound managed session beans for each of the editable items and has 2 simple command buttons - 1 to submit changes to the form (action listener -> commit), the other to rollback (action listener - rollback)
The form compiles OK and then runs OK via the OC4J Embedded Server.
However when trying to use the command buttons to perform a submit changes or to rollback the operation is not performed and it also looks as though the resulting redirecting URL is not correct. The original URL appears on the link with just the # (hash) sign appearing after it e.g.
http://10.101.7.34:8989/Data_Maintenance-Data_Maintenace-context-root/faces/app/grademaintain.jspx
becomes after clicking on a command button -
http://10.101.7.34:8989/Data_Maintenance-Data_Maintenace-context-root/faces/app/grademaintain.jspx#
I have also noticed that the range selector on the table is also not working and displays the second URL above.
Can anyone advise what I am doing wrong and why JDeveloper may be doing this ?
Please find source for the page below :-
============================================================
<?xml version='1.0' encoding='windows-1252'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:af="http://xmlns.oracle.com/adf/faces"
xmlns:afh="http://xmlns.oracle.com/adf/faces/html">
<jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
doctype-system="http://www.w3.org/TR/html4/loose.dtd"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
<jsp:directive.page contentType="text/html;charset=windows-1252"/>
<f:view>
<afh:html>
<afh:head title="grademaintain_edit">
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1252"/>
</afh:head>
<afh:body>
<h:form>
<af:messages/>
<h:form>
<h:form>
<af:panelPage title="#{res['fpgrademaintain.pageTitle']}">
<f:facet name="menu1"/>
<f:facet name="menuGlobal"/>
<f:facet name="branding">
<h:graphicImage height="85" width="137"
url="/images/ids_logo2.JPG"/>
</f:facet>
<f:facet name="brandingApp"/>
<f:facet name="appCopyright"/>
<f:facet name="appPrivacy"/>
<f:facet name="appAbout"/>
<af:table value="#{bindings.GradeVwView1.collectionModel}"
var="row" rows="#{bindings.GradeVwView1.rangeSize}"
first="#{bindings.GradeVwView1.rangeStart}"
emptyText="#{bindings.GradeVwView1.viewable ? 'No rows yet.' : 'Access Denied.'}">
<af:column sortProperty="GradeId" sortable="true"
headerText="#{bindings.GradeVwView1.labels.GradeId}">
<af:inputText value="#{row.GradeId}"
required="#{bindings.GradeVwView1.attrDefs.GradeId.mandatory}"
columns="#{bindings.GradeVwView1.attrHints.GradeId.displayWidth}"
autoSubmit="true"
binding="#{backing_app_grademain_edit.inputText1}">
<f:convertNumber groupingUsed="false"
pattern="#{bindings.GradeVwView1.formats.GradeId}"/>
</af:inputText>
</af:column>
<af:column sortProperty="ChannelId" sortable="true"
headerText="#{bindings.GradeVwView1.labels.ChannelId}">
<af:inputText value="#{row.ChannelId}"
required="#{bindings.GradeVwView1.attrDefs.ChannelId.mandatory}"
columns="#{bindings.GradeVwView1.attrHints.ChannelId.displayWidth}"
autoSubmit="true" disabled="true">
<f:convertNumber groupingUsed="false"
pattern="#{bindings.GradeVwView1.formats.ChannelId}"/>
</af:inputText>
</af:column>
<af:column sortProperty="Channel" sortable="true"
headerText="#{bindings.GradeVwView1.labels.Channel}">
<h:inputText value="#{row.Channel}"
binding="#{backing_app_grademain_edit.inputText3}"/>
</af:column>
<af:column sortProperty="Grade" sortable="true"
headerText="#{bindings.GradeVwView1.labels.Grade}">
<af:inputText value="#{row.Grade}"
required="#{bindings.GradeVwView1.attrDefs.Grade.mandatory}"
columns="#{bindings.GradeVwView1.attrHints.Grade.displayWidth}"
autoSubmit="true"
binding="#{backing_app_grademain_edit.inputText4}">
<f:convertNumber groupingUsed="false"
pattern="#{bindings.GradeVwView1.formats.Grade}"/>
</af:inputText>
</af:column>
<af:column sortProperty="ValueFrom" sortable="true"
headerText="#{bindings.GradeVwView1.labels.ValueFrom}">
<af:inputText value="#{row.ValueFrom}"
required="#{bindings.GradeVwView1.attrDefs.ValueFrom.mandatory}"
columns="#{bindings.GradeVwView1.attrHints.ValueFrom.displayWidth}"
binding="#{backing_app_grademain_edit.inputText5}">
<f:convertNumber groupingUsed="false"
pattern="#{bindings.GradeVwView1.formats.ValueFrom}"/>
</af:inputText>
</af:column>
<af:column sortProperty="ValueTo" sortable="true"
headerText="#{bindings.GradeVwView1.labels.ValueTo}">
<af:inputText value="#{row.ValueTo}"
required="#{bindings.GradeVwView1.attrDefs.ValueTo.mandatory}"
columns="#{bindings.GradeVwView1.attrHints.ValueTo.displayWidth}"
autoSubmit="true"
binding="#{backing_app_grademain_edit.inputText6}">
<f:convertNumber groupingUsed="false"
pattern="#{bindings.GradeVwView1.formats.ValueTo}"/>
</af:inputText>
</af:column>
<af:column sortProperty="EffFromDate" sortable="true"
headerText="#{bindings.GradeVwView1.labels.EffFromDate}">
<af:inputText value="#{row.EffFromDate}"
required="#{bindings.GradeVwView1.attrDefs.EffFromDate.mandatory}"
columns="#{bindings.GradeVwView1.attrHints.EffFromDate.displayWidth}"
autoSubmit="true"
binding="#{backing_app_grademain_edit.inputText7}">
<f:convertDateTime pattern="#{bindings.GradeVwView1.formats.EffFromDate}"/>
</af:inputText>
</af:column>
<af:column sortProperty="EffToDate" sortable="true"
headerText="#{bindings.GradeVwView1.labels.EffToDate}">
<af:inputText value="#{row.EffToDate}"
required="#{bindings.GradeVwView1.attrDefs.EffToDate.mandatory}"
columns="#{bindings.GradeVwView1.attrHints.EffToDate.displayWidth}"
autoSubmit="true"
binding="#{backing_app_grademain_edit.inputText8}">
<f:convertDateTime pattern="#{bindings.GradeVwView1.formats.EffToDate}"/>
</af:inputText>
</af:column>
</af:table>
<af:commandButton actionListener="#{bindings.Commit.execute}"
text="Submit Changes"
action="Home"
binding="#{backing_app_grademain_edit.commandButton1}"/>
<af:commandButton actionListener="#{bindings.Rollback.execute}"
text="Rollback"
immediate="true" action="Home"
binding="#{backing_app_grademain_edit.commandButton2}">
<af:resetActionListener/>
</af:commandButton>
</af:panelPage>
</h:form>
</h:form>
</h:form>
</afh:body>
</afh:html>
</f:view>
</jsp:root>
===========================================================
Many thanks for your help in advance.
Cheers,
Gary

Hi Gary,
I'll just clear a couple of things up first.
Both the command buttons and the range selector on the table should be pointing to that URL you mention (with the hash). This is the way that JSF/ADF works. Even if you have specified that a navigation case should redirect, it still first fires a request to the current page.
As far as I can see, there is no obvious problem with your page code. There are some things I would do.
1. You have three h:form components in your page. Remove the two below the af:messages component. You only need one form.
2. Check that there exist Commit and Rollback executables in the page definition file (right-click on page and select Go to Page Definition).
3. Check that there exists a navigation case from this page to the home page and that it is named Home (Look in the faces-config.xml file).

Similar Messages

  • Issue while reflecting the data to ADF form from ADF Table

    Hi All,
    I have one scenario as follows:
    I have to open a form in entry mode. So I have used a Method Call activity in task flow to call "Create" in method call activity.
    Then form opens in a entry mode. I have a adf table in the page showing the entered data.
    When form opens in entry mode, instead of entering the values in the field User selects a record in ADF table, but due to the create mode of the form it will through me a error to fill mandatory fields.
    Please tell me the way so that if user selects the record(in adf table) instead of entering new record, the value would reflect in the Adf form.
    If I use a roll back on selecting the row of ADF table, then it is showing me this error "Row currency has changed since the user interface was rendered. The expected row key was oracle.jbo.Key[null ]" because there will be no row key in the cache when form opens.
    Please suggest me the way to complete the task.
    I am using jdeveloper 11.1.2.1.0
    Thanks,
    Gobi
    Edited by: gobinkl on Oct 3, 2012 2:06 AM

    no no your are complicating yourself. :) better your should provide your usecase.
    first thing: go through the books & also adf blogs learn and understand the framework. as above person said.
    i hope that you had method call create as activity as default while page rendering it make your af: form empty(that is ready fir insertion format).
    so if your are doing like that.am sure it will throw some mandatory errors.
    error will not resolve unless without entering any data's.
    coming af:table why are using af:table - immediate = true / false(switching).
    immediate = true - skip over validation or by pass some validation in some phase - based on the component which you are using. (say as if you are using editable value holder,af:coomand button).
    grab the information here in an more legible manner.
    http://adfpractice-fedor.blogspot.in/2012/02/understanding-immediate-attribute.html
    let me know your usecase.
    this will assist you
    https://blogs.oracle.com/shay/entry/executing_an_action_on_jsf_pag
    http://tanveeroracle.blogspot.in/2009/09/adf-11g-createinsert-to-display-blank.html
    Edited by: user707 on Oct 5, 2012 9:02 AM

  • Issue editing a new record in simple ADF form

    I have a simple ADF entry form and table that saves to a database table. The database table has columns that cannot have null values.
    I can create, edit, delete and save rows in the ADF form without problems.
    The problem I have is when I edit a row that I just created and saved. I get an error message that says I cannot save null into the fields that cannot have null values in the database, even though my form shows that my newly created and saved is data there. I seem to have to edit those fields to get the model entity to recognize that there is some value in them.
    So the sequence of events leading to the error is this:
    I create a new record with ADF form using the 'Create' or 'CreateInsert' operation command button, I enter data into all the fields and hit commit.
    I decide I want to make a change to one of the fields, I enter some text, click commit again and an error message pops up saying that I cannot enter null into a required field, but there is data in the field and I did not change anything in it.
    The only way I can save without error now is either by running a rollback operation now or making a edit to all the required fields to get the linked entity to not send a null value to the database.
    This error will still occur even if I navigate away from the newly created record to other records, if I ever navigate back to that record created in the current session, I will get that error message.
    Anyone else experience a similar problem?
    Are there any settings or properties I need to set in the entity that can avoid sending null values to the database when a value already exists?
    I thought at first it was because I'm using the 'CreateInsert' operation to create a new record as opposed to the 'Create' operation, but the same problem exists with both operations.

    I am using jDev version 11.1.2.1.0
    In you sample, does your database have columns that require a not null value?
    I think my problem lies in the entity or view somewhere, how it's sending null value for fields that don't need to be updated.
    Here's the source for my entity and view.
    Entity:
    <?xml version="1.0" encoding="windows-1252" ?>
    <!DOCTYPE Entity SYSTEM "jbo_03_01.dtd">
    <!---->
    <Entity
    xmlns="http://xmlns.oracle.com/bc4j"
    Name="Feedback"
    Version="11.1.2.60.81"
    DBObjectType="table"
    DBObjectName="FEEDBACK"
    AliasName="Feedback"
    BindingStyle="OracleName"
    UseGlueCode="false">
    <Attribute
    Name="FeedbackId"
    Precision="10"
    Scale="0"
    ColumnName="FEEDBACK_ID"
    SQLType="NUMERIC"
    Type="oracle.jbo.domain.Number"
    ColumnType="NUMBER"
    TableName="FEEDBACK"
    PrimaryKey="true">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22"/>
    </DesignTime>
    </Attribute>
    <Attribute
    Name="PageName"
    IsNotNull="true"
    Precision="200"
    ColumnName="PAGE_NAME"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="FEEDBACK"
    IsUpdateable="while_insert"
    RetrievedOnInsert="true"
    RetrievedOnUpdate="true">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="200"/>
    </DesignTime>
    </Attribute>
    <Attribute
    Name="Severity"
    Precision="30"
    ColumnName="SEVERITY"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="FEEDBACK"
    IsNotNull="true">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30"/>
    </DesignTime>
    </Attribute>
    <Attribute
    Name="InternalAction"
    Precision="30"
    ColumnName="INTERNAL_ACTION"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="FEEDBACK">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30"/>
    </DesignTime>
    </Attribute>
    <Attribute
    Name="FeedbackNote"
    IsNotNull="true"
    Precision="4000"
    ColumnName="FEEDBACK_NOTE"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="FEEDBACK">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="4000"/>
    </DesignTime>
    </Attribute>
    <Attribute
    Name="InternalNote"
    Precision="4000"
    ColumnName="INTERNAL_NOTE"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="FEEDBACK">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="4000"/>
    </DesignTime>
    </Attribute>
    <Attribute
    Name="CreatedBy"
    Precision="30"
    ColumnName="CREATED_BY"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="FEEDBACK">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30"/>
    </DesignTime>
    </Attribute>
    <Attribute
    Name="CreationDate"
    ColumnName="CREATION_DATE"
    SQLType="TIMESTAMP"
    Type="oracle.jbo.domain.Date"
    ColumnType="DATE"
    TableName="FEEDBACK">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="7"/>
    </DesignTime>
    </Attribute>
    <Attribute
    Name="ActionDate"
    ColumnName="ACTION_DATE"
    SQLType="DATE"
    Type="oracle.jbo.domain.Date"
    ColumnType="DATE"
    TableName="FEEDBACK"/>
    <Attribute
    Name="ReviewedBy"
    Precision="30"
    ColumnName="REVIEWED_BY"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="FEEDBACK">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30"/>
    </DesignTime>
    </Attribute>
    <Attribute
    Name="AssignedTo"
    Precision="30"
    ColumnName="ASSIGNED_TO"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="FEEDBACK">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30"/>
    </DesignTime>
    </Attribute>
    <Key
    Name="Xpkfeedback"
    PrimaryKey="true">
    <DesignTime>
    <Attr Name="_DBObjectName" Value="XPKFEEDBACK"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item Value="ichip.util.Feedback.FeedbackId"/>
    </AttrArray>
    </Key>
    </Entity>
    View:
    <?xml version="1.0" encoding="windows-1252" ?>
    <!DOCTYPE ViewObject SYSTEM "jbo_03_01.dtd">
    <!---->
    <ViewObject
    xmlns="http://xmlns.oracle.com/bc4j"
    Name="FeedbackView"
    Version="11.1.2.60.81"
    SelectList="Feedback.FEEDBACK_ID,
    Feedback.PAGE_NAME,
    Feedback.SEVERITY,
    Feedback.INTERNAL_ACTION,
    Feedback.FEEDBACK_NOTE,
    Feedback.INTERNAL_NOTE,
    Feedback.REVIEWED_BY,
    Feedback.CREATED_BY,
    Feedback.CREATION_DATE,
    Feedback.ACTION_DATE,
    Feedback.ASSIGNED_TO"
    FromList="FEEDBACK Feedback"
    BindingStyle="OracleName"
    CustomQuery="false"
    PageIterMode="Full"
    UseGlueCode="false"
    OrderBy="Feedback.PAGE_NAME asc,Feedback.FEEDBACK_ID desc">
    <EntityUsage
    Name="Feedback"
    Entity="ichip.util.Feedback"/>
    <ViewAttribute
    Name="FeedbackId"
    IsNotNull="true"
    PrecisionRule="true"
    EntityAttrName="FeedbackId"
    EntityUsage="Feedback"
    AliasName="FEEDBACK_ID"/>
    <ViewAttribute
    Name="PageName"
    IsNotNull="true"
    PrecisionRule="true"
    EntityAttrName="PageName"
    EntityUsage="Feedback"
    AliasName="PAGE_NAME"
    DefaultValue="Feedback"/>
    <ViewAttribute
    Name="Severity"
    IsNotNull="true"
    PrecisionRule="true"
    EntityAttrName="Severity"
    EntityUsage="Feedback"
    AliasName="SEVERITY"/>
    <ViewAttribute
    Name="InternalAction"
    PrecisionRule="true"
    EntityAttrName="InternalAction"
    EntityUsage="Feedback"
    AliasName="INTERNAL_ACTION"/>
    <ViewAttribute
    Name="FeedbackNote"
    IsNotNull="true"
    PrecisionRule="true"
    EntityAttrName="FeedbackNote"
    EntityUsage="Feedback"
    AliasName="FEEDBACK_NOTE"/>
    <ViewAttribute
    Name="InternalNote"
    PrecisionRule="true"
    EntityAttrName="InternalNote"
    EntityUsage="Feedback"
    AliasName="INTERNAL_NOTE"/>
    <ViewAttribute
    Name="ReviewedBy"
    PrecisionRule="true"
    EntityAttrName="ReviewedBy"
    EntityUsage="Feedback"
    AliasName="REVIEWED_BY"/>
    <ViewAttribute
    Name="CreatedBy"
    IsNotNull="true"
    PrecisionRule="true"
    EntityAttrName="CreatedBy"
    EntityUsage="Feedback"
    AliasName="CREATED_BY"/>
    <ViewAttribute
    Name="CreationDate"
    IsNotNull="true"
    PrecisionRule="true"
    EntityAttrName="CreationDate"
    EntityUsage="Feedback"
    AliasName="CREATION_DATE"/>
    <ViewAttribute
    Name="ActionDate"
    PrecisionRule="true"
    EntityAttrName="ActionDate"
    EntityUsage="Feedback"
    AliasName="ACTION_DATE"/>
    <ViewAttribute
    Name="AssignedTo"
    PrecisionRule="true"
    EntityAttrName="AssignedTo"
    EntityUsage="Feedback"
    AliasName="ASSIGNED_TO"/>
    </ViewObject>

  • Issue bringing up ADF form in IE8

    When I try to bring up an ADF form using IE8, I'm getting thousands of messages like the one shown below in the access.log file and the form never appears. When I use Firefox, the form comes up correctly and none of these messages appear.
    10.83.30.11 - - [23/Aug/2011:10:09:03 +0100] "GET /workflow/ApprovePolicyUI/faces/adf.task-flow?bpmWorklistTaskId=63e01cbd-14cc-493f-b3f4-4bf5b52b2c35&bpmWorklistContext=1a3bca18-e493-4d0c-932a-be01a0907b69%3B%3BpNrDk683gwP%2BraeGMg4jV3OlDvKlbSjhwBPm3gAVOVR7IEe87XGF3diGKUZ3ephYsvjRTOGlXR3fy9bGCvGrJokLWsa1HFw8la33D3piO0M9dv0BEUHFDnAecAR69zwA4ToAKE4RK%2B70efMv3X1ah0rzRQ2sFQwcYye%2FYVoG%2Fml1xgLjyrdEZDgmv7iz%2BxAodHsaXNt6gAZOQbF5ONlsfPNZ01DHvOVmd%2B7E5t4a9jypFWGXUlDKe4foiUVyizgJ&bpmWorklistHttpURL=http%3A%2F%2Flocalhost%3A7001%2Fbpm%2Fworkspace%2Ffaces&bpmWorklistHome=home.jspx&bpmWorklistReassign=reassignTask.jspx&bpmWorklistRoute=routeTask.jspx&bpmWorklistRequestInfo=requestInfo.jspx&bpmWorklistSecurity=signTask.jspx&tz=America%2FLos_Angeles&lg=en&cy=US&vr=&dispNameLg=en&dispNameCy=US&dispNameVr=&df=medium&dt=both&tf=short&bpmWorklistSessionTimeoutInterval=900&soaUrl=http%3A%2F%2FAvioEc2%3A7001&bpmBrowserWindowStatus=taskFlowReturn&adf.tfDoc=%2FWEB-INF%2FApprovePolicy_TaskFlow.xml&adf.tfId=ApprovePolicy_TaskFlow&_task-flow-return=http%3A%2F%2Flocalhost%3A7001%2Fbpm%2Fworkspace%2Ffaces%2Fadf.task-flow-return%3F_adf.ctrl-state%3Di22vhoifs_23&_adf.winId=i22vhoifs_14&_afrLoop=6765673949744&_afrWindowMode=0&_afrWindowId=null HTTP/1.1" 200 5478
    I'm wondering if anyone else has run into this with ADF forms and IE8 and what the recommendation would be on how to debug something like this.
    Thanks

    Usually your MSAD admins will have a master domain setup that has access to all geographic specific domains. You would have a user setup in this higher level domain
    Let's say you have the following setup:
    na.ad.co.com
    sa.ad.co.com
    eme.ad.co.com
    jp.ad.co.com
    cn.ad.co.com
    You would just need one domain setup at ad.co.com with a user who has read access to that directory. The way Shared Services security is setup you may need to re-provision some users with that new global provider and I highly recommend using a group filter -- your group filter can be in any of the domains just all users would need to be added to it in that domain.
    Regards,
    John A. Booth
    http://www.metavero.com

  • Oracle ADF Form Data was Not adding to DB.

    I have Created a Query Based VO(I have given Updatable:Always and i ahve checked in source that IsUpdateable="true"),and added that to AM,I Have created a ADF Form with CreateInsert Operation,When Click on CreateInsert Button It was creating an empty form,
    After Entering the Date into that empty field, when i click on Commit button Data is Not Saving into DB.
    After that,
    I have Creted a Readonly Table With Same Iterator,When i click on "Commit" it was sowing that data is adding to the New Row in that Readonly Table,But when i was checking in DB ,The Data was not adding to DB
    i am useing 11.1.2.3.0 version jdeveloper.
    Any Help is appreciable.....
    Edited by: Rajashekar Thippireddy on Feb 4, 2013 8:47 AM

    You are conceptually wrong. A query-based VO does not insert/update/delete any data to DB. You must create an entity-based VO if you want to insert/update/delete data to DB.
    When you issue a commit operation on an AM, it looks for created/modified/removed Entity objects and then performs the corresponding DML operations on DB. (In fact, DML operations are performed by Entity objects. If there are no Entity objects, then there are no DML operations). If your VO is not entity-based (but query-based), then you do not have any created/modified/removed ADF entities, so there is noting to flush to DB.
    The "Updateable" property of the VO attributes controls whether the VO should allow data entry/modification of these attributes in memory. You can have non-entity based attributes that are marked as "updateable" (for example, transient attributes storing temporary values in memory) but it does not mean that these attributes are going to be flushed to DB.
    You have seen data in the read-only table, because it is based on the same VO and it displays the newly-created row which is in memory.
    Dimitar
    Edited by: Dimitar Dimitrov on Feb 4, 2013 7:00 PM

  • Developering ADF form in query mode (Oracle forms simulation)

    Hi,
    we have a requirement for developing the existing Oracle form using Oracle ADF. The existing Oracle form displays the form in query mode by default. We can enter the search criteria in any of the text fields and then execute query to get the results. If the user does not enter any search criteria, then the form loads specific record based on default criteria into the form. Could you please help developing similar form using ADF.
    At present I created the view object with one bind variable and dragged the view as ADF form to the jspx page. Then I am launching the form in query mode (executing the find method on the view object using operation binding at the time of loading the page). After entering the query criteria in the form, If I click on a button I am executing a method in the managed bean. In the managed bean I am executing the "Execute" operation on the view and it is working fine.
    But my problem is if the user does not enter the search criteria I have to pass default parameters to the view object and return the default record in the form.
    Can you please help in resolving the issue.
    Thanks and Regards,
    S R Prasad

    Hi Frank,
    Thank you for providing information. I created the query panel with the table by dragging all the named criteria. But this is not the look we are expecting for this form. As we have to deveop ADF form with the same behavior as oracle forms, the user must be in a position to edit the data in the same field as that of query field.
    As an example, we have to design a form for Dept table. We have to display all the columns of the dept view in the form at the time of launching the form in query mode. Once the user enters any search criteria in the form, we have to perform search and display the record(s) matching the query criteria in the same columns displayed in the form. User should not see any changes in the form layout.
    If the user does not enter any data in the form, then we have to display the record(s) in the form with the specific department id(This department id can be calculated based on the data in another table).
    Can you please help us in resolving the issue.
    Thanks and Regards,
    S R Prasad

  • How To: Use ADF Form in "Insert" Mode in jDeveloper 12c

    Hi all,
    I'm in the process of learning jDeveloper and after going through the basics, a task that I'm trying to accomplish is to have a ADF Form load in "Insert" mode rather than the default "Update" behavior. After significant searches, the closest that I could come to was Create-adf-input-form post. But since that tutorial is based on the 11g version, I'm struggling to find an equivalent of that in 12c.
    Can anyone point me in the right directly and help me in determining how I would achieve the same in 12c?
    Thanks,
    Nisar

    Nisar,
    If you want the newRow to be readily available when the page loads, you call vo.createRow() in a AM method and expose that method as a client interface. Call this method on the page load.
    The below links might help to call method on page load:
    Johny's Tips: ADF: How to execute the ViewObject with a ViewCriteria on the PageLoad in ADF Web Application
    https://blogs.oracle.com/aramamoo/entry/an_epic_question_how_to
    This link helps to know how to create VO row programatically.
    http://www.awasthiashish.com/2012/12/insert-new-row-in-adf-viewobject.html
    Let us know if you face any issue while implementing.
    Cheers
    AJ

  • JDev 11g TP4: ADF tables and ADF form pop-ups PPR?

    I was hoping somebody could help me with the following please.
    I'm currently having a bit of an issue with ADF tables and ADF forms embedded in a pop-up, where the wrong record is shown in the popup. I suspect it's a PPR problem but am unsure. My scenario:
    1) I have the following table:
    CREATE TABLE "CHRIS_MUIR_DELETE_ME" (
    "ID" NUMBER(5,0)
    "SOME_COLUMN" VARCHAR2(20 BYTE)
    CONSTRAINT "CHRIS_MUIR_DELETE_ME_PK" PRIMARY KEY ("ID"));2) I have a default ADF BC EO/VO combination for this table.
    3) I have an ADF Faces RC page with a read-only table based on this VO:
    <af:table value="#{bindings.ChrisMuirDeleteMeView.collectionModel}" var="row"
       rows="#{bindings.ChrisMuirDeleteMeView.rangeSize}"
       emptyText="#{bindings.ChrisMuirDeleteMeView.viewable ? 'No rows yet.' : 'Access Denied.'}"
       fetchSize="#{bindings.ChrisMuirDeleteMeView.rangeSize}"
       selectedRowKeys="#{bindings.ChrisMuirDeleteMeView.collectionModel.selectedRow}"
       selectionListener="#{bindings.ChrisMuirDeleteMeView.collectionModel.makeCurrent}"
       rowSelection="single" partialTriggers="myDialog">
      <af:column sortProperty="Id" sortable="false"
        headerText="#{bindings.ChrisMuirDeleteMeView.hints.Id.label}">
         <af:outputText value="#{row.Id}">
            <af:convertNumber groupingUsed="false" pattern="#{bindings.ChrisMuirDeleteMeView.hints.Id.format}"/>
         </af:outputText>
      </af:column>
      <af:column sortProperty="SomeColumn" sortable="false"
         headerText="#{bindings.ChrisMuirDeleteMeView.hints.SomeColumn.label}">
        <af:outputText value="#{row.SomeColumn}"/>
      </af:column>
    </af:table>Note that rowSelection is set to "single".
    3) The page also includes a popup-dialog combo that shows the same data from the table (ie. they're based on the same VO) as an ADF Input Form:
    <af:popup id="myPopUp">
      <af:dialog type="okCancel" id="myDialog">
         <af:panelFormLayout>
            <af:inputText value="#{bindings.Id.inputValue}"
                label="#{bindings.Id.hints.label}"
                required="#{bindings.Id.hints.mandatory}">
               <f:validator binding="#{bindings.Id.validator}"/>
               <af:convertNumber groupingUsed="false" pattern="#{bindings.Id.format}"/>
            </af:inputText>
            <af:inputText value="#{bindings.SomeColumn.inputValue}"
                label="#{bindings.SomeColumn.hints.label}"
                required="#{bindings.SomeColumn.hints.mandatory}"/>
            </af:inputText>
         </af:panelFormLayout>
      </af:dialog>
    </af:popup>Note that the table's partialTriggers is set to the id of the dialog. This implies on return from the dialog, the table will update itself to reflect any changes.
    4) I have a data bound Create commandButton, + a simple Edit commandButton. The Edit button includes an <af:showPopupBehavior> to display the popup:
    <af:commandButton
        actionListener="#{bindings.Create.execute}" text="Create"
        disabled="#{!bindings.Create.enabled}"
        partialTriggers="table1"/>
    <af:commandButton text="Edit">
        <af:showPopupBehavior popupId="myPopUp"/>
    </af:commandButton>If you run the form with the following steps, you can reproduce my issue:
    1) Click the create button, this will create a blank record in the <af:table>
    2) Click the edit button and give the 2 fields values, press ok. Note this is reflected back in the table.
    3) Click the create button, you will now see another blank record in the <af:table>. Note that the current row selection highlight is on the new record.
    4) In the table select the original record, then the Edit button. Oddly the input form is showing the blank record, not the original record even though we selected it in the <af:table>
    This implies to me that I have to hook up a PPR event such that the fields on the popup know to update themselves when the user selects a new row in the table.
    I've tried setting the partialTriggers property for the popup, dialog and individual fields on the popup page to the table id, but this doesn't seem to work.
    Does anybody have any suggestions on how I'm meant to hook up the partialTriggers in this case? I'm at a bit of a loss to know what to do to solve this issue. Is it possible the table selectionListener isn't working?
    Thanks for your help in advance.
    Regards,
    CM.

    G'day gang
    This morning I had a chance to play with Pavle's suggestions, specifically the popup contentDelivery option, and it's solved the issue. Specifically changing the contentDelivery option to lazyUncached was the golden solution.
    As the popup component help states, the default functionality is: "lazy -- the default strategy described above. The content isn't loaded until you show the popup once, but then is cached."
    ....cached being the issue I was seeing.....
    While the lazyUncached options states: "lazyUncached -- the content isn't loaded until you show the popup, and then is re-fetched every subsequent time you show the popup. Use this strategy if the popup shows data that can become stale."
    The nasty thing about the lazy option is the fact that in the dialog it can show the previous cached result (even though you've selected a different record), and you can even appear to edit that cached result in the dialog, but when you press okay in the dialog and return to the previous table, it's updated the record you selected, not the cached result.
    Confusing, but not a bug if you understand the popup contentDelivery options.
    Frank, if you'd like it, I have the simple test case available to send you. But as it's not a bug I wont send it to you unless requested.
    Thanks to both of you for your assistance with this one. Once again your help is much appreciated! :)
    I'll take time out to blog about this in the next few weeks to assist others.
    Thanks & regards,
    CM.

  • Getting NullPointerException in ADF form using Custom Selection Listener

    Hi,
    I am getting NullPointerException from getRowKey() in GenericTableSelectionHandler.java while pressing "Page Down" key or continuous pressing of "Down Arrow" key in Read Only ADF form (Query, Sort Enabled) using Custom Selection Listener.
    I have used the custom selection listener as mentioned at http://www.oracle.com/technetwork/developer-tools/adf/learnmore/23-generic-table-selection-listener-169162.pdf
    The requirement to use custom Selection Listener to populate some fields from the selected row.
    J Developer Version: 11.1.1.4.0
    The error is as below
    +<LifecycleImpl> <_handleException> ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase INVOKE_APPLICATION 5+
    javax.el.ELException: java.lang.NullPointerException
    +     at com.sun.el.parser.AstValue.invoke(Unknown Source)+
    +     at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)+
    +     at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodExpression(UIXComponentBase.java:1300)+
    +     at org.apache.myfaces.trinidad.component.UIXTable.broadcast(UIXTable.java:268)+
    +     at oracle.adf.view.rich.component.UIXTable.broadcast(UIXTable.java:144)+
    +     at oracle.adf.view.rich.component.rich.data.RichTable.broadcast(RichTable.java:402)+
    +     at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:148)+
    +     at org.apache.myfaces.trinidad.component.UIXTable.broadcast(UIXTable.java:271)+
    +     at oracle.adf.view.rich.component.UIXTable.broadcast(UIXTable.java:144)+
    +     at oracle.adf.view.rich.component.rich.data.RichTable.broadcast(RichTable.java:402)+
    +     at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)+
    +     at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)+
    +     at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)+
    +     at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)+
    +     at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)+
    +     at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)+
    +     at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)+
    +     at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)+
    +     at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:879)+
    +     at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:312)+
    +     at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:185)+
    +     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)+
    +     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)+
    +     at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)+
    +     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java: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:205)+
    +     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)+
    +     at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)+
    +     at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)+
    +     at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)+
    +     at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)+
    +     at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)+
    +     at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)+
    +     at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)+
    +     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)+
    +     at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)+
    +     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:207)+
    +     at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)+
    Caused by: java.lang.NullPointerException
    +     at ibm.view.GenericTableSelectionHandler.makeCurrent(GenericTableSelectionHandler.java:48)+
    +     at ibm.view.backing.Testpage.XxSelectListener(Testpage.java:207)+
    +     at sun.reflect.GeneratedMethodAccessor355.invoke(Unknown Source)+
    +     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)+
    +     at java.lang.reflect.Method.invoke(Method.java:597)+
    +     ... 60 more+
    The table structure is as below for your reference
    +<af:table value="#{bindings.TestTableAdfView1.collectionModel}"+
    var="row"
    +rows="#{bindings.TestTableAdfView1.rangeSize}"+
    +emptyText="#{bindings.TestTableAdfView1.viewable ? 'No data to display.' : 'Access Denied.'}"+
    +fetchSize="#{bindings.TestTableAdfView1.rangeSize}"+
    +rowBandingInterval="0"+
    +filterModel="#{bindings.TestTableAdfView1Query.queryDescriptor}"+
    +queryListener="#{bindings.TestTableAdfView1Query.processQuery}"+
    +filterVisible="true" varStatus="vs"+
    +rowSelection="single"+
    +binding="#{backingBeanScope.backing_testpage.t1}"+
    +id="t1"+
    +selectionListener="#{backingBeanScope.backing_testpage.XxSelectListener}">+
    Any help to resolve the issue is highly appreciated.
    Thanks,
    Arijit
    Edited by: user10570755 on Aug 2, 2011 11:19 PM

    //selection with the selection in the ADF model Object
    _selectedRowData = _table.getSelectedRowData();
    //cast to JUCtrlHierNodeBinding, which is the ADF object //that represents a row
    JUCtrlHierNodeBinding _nodeBinding = (JUCtrlHierNodeBinding) _selectedRowData;
    //get the row key from the node binding and set it //as the current row in the iterator
    Key _rwKey = _nodeBinding.getRowKey();i guess nodeBinding becoming null here.. _table.getSelectedRowData().. is not returnign anything                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • ADF table and ADF form on the same view object

    Hi,
    As per the ADF demos available on ADF site, I created a jsf page with 2 panels. One panel is an ADF table based on a view object. And the other panel is and ADF form based on the same view object. My requirement is that as I scroll through the records in the ADF table, the ADF Form should dynamically display the details of the record in the ADF table. My understanding is that this should be automatic. However, its not working as expected. What have I missed?

    Hi,
    Apply PPR for form that displays details.
    Like :
    <af:table id="t3">
    </af:table>
    <af:panelFormLayout id="pfl2" partialTriggers="t3">
    </af:panelFormLayout >

  • ADF forms based on BPM human tasks - Invoking webservices/view objects.

    Hi All,
    Is anyone aware of whether the following is a valid implementation that has been carried out before.
    1. ADF forms based on BPM 11G human tasks.
    2.The ADF forms invoke webservices via Webservice data controls. It is pertinent to note that the webservice bring back complex data types. We've tried writing a few forms, resulting in data benig brought back, but not being able to print them to the screen.
    3. The ADF forms also use View Object based on sql to bring back tables of data. If view objects are embedded within the forms, the applciation gives rise to a null pointer exception.
    Considering the form will be invoked via a BPM worklist entry, is there a setting or configuration we should consider before hand. Is this feasible, is there knowledge of this being done commercially.
    Any examples or information regarding the same will be immensely helpful.
    Thanks and Regards,
    Preethi.
    NB : I have posted this in the BPM forum as well as I feel it is relevant to both BPM and ADF.

    Hi Joonas.
    Plese let me explain me better for your understanding
    A big summary for what I meant it's the following:
    1- In the procces you made, when you add the HT activity, you have to implement it, this means declare the input(s) parameters you want. This implementation create the .task file.
    2- Create an application, and projects as HT you have. Each poject are based on the .task file, and automatically create a Data Control (for each project based on a .task) with all you need.
    This w'll be an empty application, so you can customize it all you want. The task selected should have all the parameters previously defined. Those parameters can change if you want.
    2- Create a page(s) in the task flow for the task implementation. You can even split the the payload of the task in differents pages, create your custom pages and any logic you need.
    3- An important aspect is how to match these application with the HT implemented in the process. It's possible, it's a configuration en the Enterprise Manager.
    4- Deploy your application
    All these are explain in the book I mentioned
    Th book you can find it here:
    https://blogs.oracle.com/soacommunity/entry/oracle_soa_suite_11g_handbook_1
    Regards Dariel.
    PS: Please, let me know if you need more details.

  • How to Show BI report in adf form ?

    How to show bi Report in adf form ?
    (i dont show dashboard in adf form

    Hi,
    check this : http://husaindalal.blogspot.com/2009/11/integrating-bi-publisher-standalone.html
    there are some other helpful links as well:
    http://brendenanstey.blogspot.com/2007/01/adf-faces-and-xml-publisher-success.html
    http://technology.amis.nl/blog/2296/building-a-report-in-xml-publisher
    http://technology.amis.nl/blog/1597/xml-publisher-display-input-parameter-sqllims
    ~Abhijit

  • ADF Form no longer functioning after being wrapped in layouts.

    JDeveloper 11.1.1.0.1 + ADF BC + ADF RC
    I had an ADF panelFormLayout that was functioning perfectly until I wrapped it in a panelSplitter and wrapped the panelSplitter in a panelStretchLayout.
    Now, when I query the correct results are initially displayed, but when I press the Next button, certain inputTexts don't change to display the correct values.
    Some of them change to reflect the current values in the iterator (those with partialTriggers), but most simply continue to display the values of the first record returned. The Previous button doesn't seem to work at all anymore.
    What am I missing here? Why would wrapping the panelFormLayout in other layouts cause this behavior?
    Thanks All!

    Heres the steps to create:
    - New > Application
    - New > 'Business Components From Tables' and make BCs for Employees and Departments
    - Edit EmployeesView to include where clause "WHERE Employees.LAST_NAME LIKE :last, and create String bind variable for 'last'
    - New > JSF JSPX
    - Insert PanelSplitterLayout into Form component
    - Drag ExecuteWithParams operation from EmployeesView into PanelSplitterLayout 'Second' facet as ADF Parameter Form
    - Drag EmployeesView from Data Controls as ADF Form with navigation buttons under ExecuteWithParams parameter form.
    - Set disabled=true for EmployeeId, FirstName, and LastName inputTexts in ADF Form
    - Drag DepartmentsView from DataControls into PanelSplitterLayout 'First' facet as ADF Tree, creating a two level tree: Department Name > Employees First and Last Name
    To produce the problem once running:
    - Enter '%' into the text box for the bind variable 'last', and click ExecuteWithParams button
    - You will see the next button does nothing
    - If you click ExecuteWithParams button again, everything starts to work again.
    Much thanks.
    Edited by: Alexander Pepper on Feb 4, 2009 7:51 AM

  • "Check Box" in ADF Form is not Working in JDev11.1.1.2

    11gR1 :
    I created an ADF Form in a JSF Page and I deleted one column and draged the same column again as an "ADF selectBooleanCheckbox "
    and in Edit Boolean Binding Dialog : I entered the value selected as 'True' and unselected value as 'False'
    and when I run the Page the data did not Synchronize with the chech box item.
    Note :- although the check box Item is working with Adf Table in example #145 at link http://blogs.oracle.com/smuenchadf
    can anybody help me?
    regards
    Forakora

    Hi,
    just tried and found out that you have to set partial triggers for the af:selectBooleanCheckbox like:
                  <af:selectBooleanCheckbox value="#{bindings.Deptno.inputValue}"
                                            label="#{bindings.Deptno.label}"
                                            shortDesc="#{bindings.Deptno.hints.tooltip}"
                                            id="sbc1" partialTriggers="cb1 cb2"/>
                  <af:commandButton actionListener="#{bindings.Next.execute}"
                                    text="Next" partialSubmit="true" id="cb1"/>
                  <af:commandButton actionListener="#{bindings.Previous.execute}"
                                    text="Previous" partialSubmit="true" id="cb2"/>regards,
    Branislav

  • Display and edit currently selected row of ADF Table in ADF Form

    I have an ADF Read-only Table and ADF Form, which were created from the same Data Control.
    I need to be able to edit the selected row of the table in the form (just like in "Binding Data Controls to your JSF page" part of "Developing RIA Web Applications with Oracle ADF" Tutorial). However, I can't figure out how to do this :(
    I found the following solution on the Web: #{bindings.DeptView1.currentRow.dataProvider.dname} - but it doesn't work, since "the class oracle.jbo.server.ViewRowImpl does not have the property dataProvider".
    Sorry for the newbie question.
    Thanks in advance for any help!

    Hi,
    AFAIK, dataProvider is not supported on ADF BC, hence the error.
    If you have created ADF Read only table and form from the same data control you just need to refresh the form based on table selection to show up the selected record, to do which you just need to add partialTriggers property to the panelFormLayout and set its value to the id of table
    Sireesha

Maybe you are looking for