To answer to Ram's question, I will re-visit my own experience of implementing HelloWorld program in "OA Framework". When I implemented HelloWorld an year ago, I had no clue as to what I was doing & why I was doing those steps. I merely copied the steps from Oracle Tutorials without understanding them. Hence in this article, I will try to explain in simple manner the meaning of OA Framework HelloWorld Program and compare the steps to D2k forms[where possible]. To keep things simple, only basics will bediscussed.
Following key Steps were needed for HelloWorld[visit Oracle's tutorial for complete list]
Step 1. Created a new Workspace and a new Project as dictated by Oracle's tutorial.
When defining project, you will specify a default package, which in this case was oracle.apps.ak.hello
This means the following:-
a. ak is the short name of the Application in Oracle [it means fnd_applications.short_name].
b. hello is the name of your project.
Step 2.
Next, you will create a OAPage within hello project.
Think of OAPage as the fmx file itself in D2K. I am saying so because this page gets attached to the form function.
a. This page will be created within hello project, hence the package name oracle.apps.ak.hello.webui
b. Note the webui, its a convention to have page in webui,means this page represents the Web User Interface
c. You will assign the default AM [OAApplicationModule]. Think of AM "Connection Manager" and "Transaction State Manager" for your page.
I can't co-relate this to anything in D2k, as there is no concept of Connection Pooling and that D2k is not stateless. Reason being that as soon as you kick off a D2K Form, it connects to a single session of Oracle and sticks to that single Oracle database session. So is not the case in OAF, hence AM is needed.
Step 3.
You create Region within the Page.
a. Region is what will store your fields. Text input fields will be of type messageTextInput. Think of Canvas in D2K[to an extent].
b. You can have nested regions. Stacked Canvas in D2K comes the closest to this component of OA Framework.
Step 4.
Add a button to one of the nested regions.
a. The itemStyle should be submitButton, in case you want the page to be submitted when this button is clicked.
b. There is no WHEN-BUTTON-PRESSED trigger in OAF. In Framework, you will add a controller java code to handle events like Form Submit button clicks. jDeveloper generates the default code for you. Primarily two functions[should I call methods] will be createdprocessRequest[for UI Rendering Handling] and processFormRequest.
Think of processRequest as WHEN-NEW-FORM-INSTANCE, though processRequest is very restrictive.
Step 5.
In the controller to access the value in field "HelloName" the command is
String userContent = pageContext.getParameter("HelloName");
In D2k, we used :block.field. In OAFramework, at submission of page, all the field values get passed into to OAPageContext object.
a. Use getParameter to access the field value
b. To set the value of the field, use
OAMessageTextInputBean fieldHelloName =
(OAMessageTextInputBean)webBean.findChildRecursive("HelloName");
fieldHelloName.setText(pageContext,"Setting the default value" );
Note when setting field value in controller:
Note 1. Do not set the value in processFormRequest
Note 2. If the field comes from ViewObject[in latter tutorials], then do not use setText in controller.
Note 3. For control fields[that are not based on ViewObjects], you can use setText to assign values in processRequest method.
Lets take some notes to expand beyond the HelloWorld Project
1. In D2K-forms we sort of created a Window, attached to Canvas, and then fields within that Canvas.
However in OA Framework, think of Page being fmx/Window, think of Region being a Canvas, and fields being within Regions.
This is not a formal/accurate understanding of analogy between D2k and Framework, but is close to being logical.
2. In D2k, your Forms fmb file was compiled to fmx. It was fmx file that was deployed on mid-tier.
In case of OAF, your OA Page is nothing but a XML file. We call this MDS [meta data].
Whatever name you give to "Page" in OAF, an XML file of the same name gets created. This xml file must then be loaded into database by using XMLImporter command.
See article on XML Importer if interested.
3. Apart from MDS XML file, almost everything else is merely deployed to your mid-tier. Usually this is underneath $JAVA_TOP/oracle/apps/../..
All your java files will go underneath java top/oracle/apps/../.. etc.
4. When building your tutorial, ignore the steps for setting "Attribute Sets". These are not mandatory. Oracle might just have developed their tutorials without including these. Think of these like Visual Attributes of D2K forms [to an extent]
5. Controller is where you will write any java code in OA Framework. You can create a Controller per Page or have a different Controller for each of the Regions with the same Page.
6. In the method processFormRequest of the Controller, you can access the values of the page by using notation pageContext.getParameter("<fieldname here>"). This method processFormRequest is executed when the OAF Screen/Page is submitted by click of a button.
7. Inside the controller, all the Database Related interactions for example interaction with View Objects happens via Application Module.
But why so? Because Application Module Manages the transaction state of the Application.
OAApplicationModuleImpl oaapplicationmoduleimpl = (OAApplicationModuleImpl)oapagecontext.getApplicationModule(oawebbean);
OADBTransaction oadbtransaction = (OADBTransaction)oaapplicationmoduleimpl.getDBTransaction();
8. In D2K, we have control block or a block based on database view. Similarly, in OA Framework, if the field does not have viewObject attached, then its like a control field. Hence in HelloWorld example, field HelloName is a control field[in D2K terminology]. A viewObject can either be based on a view/table.synonym or on a SQL statement.
9. I wish to access the fields in multi record block that is based on viewObject. Can I do this in Controller?
Sure you can. To traverse through those records, do the below
a. Get the reference to the ViewObject using (OAViewObject)oapagecontext.getApplicationModule(oawebbean).findViewObject("VO Name Here")
b. Loop through the records in View Objects using count returned from oaviewobject.getFetchedRowCount()
c. For each record, fetch the value of the fields within the loop as
oracle.jbo.Row row = oaviewobject.getRowAtRangeIndex(loop index here);
(String)row.getAttribute("Column name of VO here ");
What is the difference between processRequest and processFormRequest?
These two methods are available in the Default Controller class that gets created.
processFormRequest
This method is commonly used to react/respond to the event that has taken place, for example click of a button.
Some examples are
if(oapagecontext.getParameter("Cancel") != null) {Do your processing for Cancellation/Rollback}
if(oapagecontext.getParameter("Submit") != null) {Do your validations and commit here}
if(oapagecontext.getParameter("Update") != null) {Do your validations and commit here}
In the above three examples, you could be calling oapagecontext.forwardImmediately to re-direct the page navigation to some other page if needed.
processRequest
In this method, usually page rendering related code is written. Effectively, each GUI component is a bean that gets initialised duringprocessRequest.
Those who are familiar with D2K forms, something like pre-query may be written in this method.
Comments
(25)
...
written by Anil Passi , March 02, 2007
written by Anil Passi , March 02, 2007
Hi Prativa,
If you can let me know your knowledge background and what you seek to learn, then I might be able to provide help in guiding you.
Thanks,
Anil Passi
Votes: +0
If you can let me know your knowledge background and what you seek to learn, then I might be able to provide help in guiding you.
Thanks,
Anil Passi
report abuse
vote down
vote up
...
written by Anil Passi , March 02, 2007
written by Anil Passi , March 02, 2007
Hi Prativa,
If you can let me know your knowledge background and what you seek to learn, then I might be able to provide help in guiding you.
Thanks,
Anil Passi
Votes: +0
If you can let me know your knowledge background and what you seek to learn, then I might be able to provide help in guiding you.
Thanks,
Anil Passi
report abuse
vote down
vote up
...
written by Gopi , March 07, 2007
written by Gopi , March 07, 2007
Anil,
This is one of the best sites I love reading.Thanks for explaining so clearly. I just started learning JDeveloper.
Thanks
Gopi
Votes: +0
This is one of the best sites I love reading.Thanks for explaining so clearly. I just started learning JDeveloper.
Thanks
Gopi
report abuse
vote down
vote up
...
written by Praveen , March 29, 2007
written by Praveen , March 29, 2007
Hi anil
i have problem to create folders in the D2K forms 6i.(i.e Folder options ). plz give my some idea for that folder options
thanks & regards
Praveen.G
Votes: +0
i have problem to create folders in the D2K forms 6i.(i.e Folder options ). plz give my some idea for that folder options
thanks & regards
Praveen.G
report abuse
vote down
vote up
...
written by Sunil , March 30, 2007
written by Sunil , March 30, 2007
Hi Anil,
I wish to congratulate for such a great work. I would appreciate if you could guide me take up carrier in Oracle Apps. Having spent 8 years in Oracle Pl/sql form,report, now i m working in Oracle Apps.(CRM). But not able to decide where to start. Whether become functional or Technical guy OA.
Regards
Sunil
Votes: +0
I wish to congratulate for such a great work. I would appreciate if you could guide me take up carrier in Oracle Apps. Having spent 8 years in Oracle Pl/sql form,report, now i m working in Oracle Apps.(CRM). But not able to decide where to start. Whether become functional or Technical guy OA.
Regards
Sunil
report abuse
vote down
vote up
...
written by Anil Passi , March 31, 2007
written by Anil Passi , March 31, 2007
Hi Sunil
8yrs in any field is a long time. If you understand how CRM processes work, and how they map to business practices in real world, then functional switch will be a good move. Having said that, keep learning new upcoming technologies too until you get a functional role in project. Always have a backup.
Thanks
Anil
Votes: +1
8yrs in any field is a long time. If you understand how CRM processes work, and how they map to business practices in real world, then functional switch will be a good move. Having said that, keep learning new upcoming technologies too until you get a functional role in project. Always have a backup.
Thanks
Anil
report abuse
vote down
vote up
...
written by Anil Passi , March 31, 2007
written by Anil Passi , March 31, 2007
Sunil
8yrs in any field is a long time. If you understand how CRM processes work, and how they map to business practices in real world, then functional switch will be a good move.
Having said that, keep learning new upcoming technologies too until you get a functional role in project.
Always have a backup.
Thanks
ANil
Votes: +0
8yrs in any field is a long time. If you understand how CRM processes work, and how they map to business practices in real world, then functional switch will be a good move.
Having said that, keep learning new upcoming technologies too until you get a functional role in project.
Always have a backup.
Thanks
ANil
report abuse
vote down
vote up
...
written by sameer , April 05, 2007
written by sameer , April 05, 2007
I am working on AK Developer(11.5.
technology . What is the difference between AK Developer/Framework(11.5.
, OA Framework(11.5.10.2), and ADF Framework (Release 12i) ? Is there any major structural changes from AK Developer/Framework(11.5.
to.. ADF Framework (Release 12i) ?
Votes: +0
technology . What is the difference between AK Developer/Framework(11.5.
, OA Framework(11.5.10.2), and ADF Framework (Release 12i) ? Is there any major structural changes from AK Developer/Framework(11.5.
to.. ADF Framework (Release 12i) ? report abuse
vote down
vote up
...
written by Michu , May 14, 2007
written by Michu , May 14, 2007
Hi Anil,
Thanks for keep sending the info.
How do you create method in Application Module? When you right click on Application Module name there is no option of creating method. Then how?
Thanks,
Michu
Votes: +0
Thanks for keep sending the info.
How do you create method in Application Module? When you right click on Application Module name there is no option of creating method. Then how?
Thanks,
Michu
report abuse
vote down
vote up
...
written by Anil Passi , May 14, 2007
written by Anil Passi , May 14, 2007
Hi Michu,
Simply go inside the ApplicationModuleImpl java class, and write code for your method there.
Thanks,
Anil
Votes: +0
Simply go inside the ApplicationModuleImpl java class, and write code for your method there.
Thanks,
Anil
report abuse
vote down
vote up
...
written by Michu , May 15, 2007
written by Michu , May 15, 2007
Hi Anil,
Thanks for responding quickly. Keep your good work.
Michu
Votes: +0
Thanks for responding quickly. Keep your good work.
Michu
report abuse
vote down
vote up
Thanks
written by Sreedhar Ravula , October 05, 2007
written by Sreedhar Ravula , October 05, 2007
Hi Anil,
It very glad to see your site, today first time I saw your site
. First of all let me thank you for your good posts on site.
It helps me a lot to get into the OAF.
Thanks
Sreedhar
Votes: +0
It very glad to see your site, today first time I saw your site
. First of all let me thank you for your good posts on site. It helps me a lot to get into the OAF.
Thanks
Sreedhar
report abuse
vote down
vote up
...
written by Srinath , December 09, 2007
written by Srinath , December 09, 2007
Anil,
Let me first congratulate for this excellent work.
I would like to know if there are any restrictions on the JDeveloper version that could be used for development for integration with Oracle Apps. Also, please let me know if there are any plug-ins that need to be installed.
Votes: +0
Let me first congratulate for this excellent work.
I would like to know if there are any restrictions on the JDeveloper version that could be used for development for integration with Oracle Apps. Also, please let me know if there are any plug-ins that need to be installed.
report abuse
vote down
vote up
D2K Tutorial
written by TV , December 17, 2007
written by TV , December 17, 2007
Hi Anil
I browsed the whole site but couldnt find a forms6i tutorial.Can you pls point to me where i can find it ?
Thx
Rajanikant
Votes: +0
I browsed the whole site but couldnt find a forms6i tutorial.Can you pls point to me where i can find it ?
Thx
Rajanikant
report abuse
vote down
vote up
OAframe works
written by sureshkumar. , January 28, 2008
written by sureshkumar. , January 28, 2008
Hi All,
I am working on PL/SQL. I have Knowledge on APPS and D2K. Now I want to learn OAFramework.
Can you please tell me what r the pre-requisites to learn this course.
Thank you,
Suresh.
Votes: +0
I am working on PL/SQL. I have Knowledge on APPS and D2K. Now I want to learn OAFramework.
Can you please tell me what r the pre-requisites to learn this course.
Thank you,
Suresh.
report abuse
vote down
vote up
my d2k form is nt working in apps
written by rakesh9911890887 , February 13, 2008
written by rakesh9911890887 , February 13, 2008
hell friends
I have designed a D2K form and its not working in apps..its show a error when we run it on apps....according to me its not compiling the form properly we compile it in D2K...
One more thing my Apps is on Windows Plateform not on linux....
plz tell me how to compile it...or tell me solution..
plz mail me the solution at
This e-mail address is being protected from spambots. You need JavaScript enabled to view it
bye
rakesh
Votes: +0
I have designed a D2K form and its not working in apps..its show a error when we run it on apps....according to me its not compiling the form properly we compile it in D2K...
One more thing my Apps is on Windows Plateform not on linux....
plz tell me how to compile it...or tell me solution..
plz mail me the solution at
This e-mail address is being protected from spambots. You need JavaScript enabled to view it
bye
rakesh
report abuse
vote down
vote up
OA Framework - How to modify VO's
written by Sanjaya Patro , February 22, 2008
written by Sanjaya Patro , February 22, 2008
Hi Anil,
I've been reading your articles about OA Framework. Great. I've development experience in pl/sql, forms and reports in the oracle application platform. I'm learning oa framework and self service personalization at this point. But I've now got specific requirement to modify a VO to increase the overtime amount.
Scenario is:
Previously this has been implemented as an overtimeVO function jsp page. There are two VO fields one is total days and other one is amount field in the page. The current limit has been implemented in the next button. How do I change the current limit?
This is my first task to deal with self service using OA framework technology. I've got only little knowledge about Oracle JDeveloper and OA Framework MVC pattern. Can you please help me where to start?
Do I need to ftp only the overtimeVO page (JSP) and open in jDeveloper or any other components related to this?
Regards,
Sanjaya Pator
Votes: +0
I've been reading your articles about OA Framework. Great. I've development experience in pl/sql, forms and reports in the oracle application platform. I'm learning oa framework and self service personalization at this point. But I've now got specific requirement to modify a VO to increase the overtime amount.
Scenario is:
Previously this has been implemented as an overtimeVO function jsp page. There are two VO fields one is total days and other one is amount field in the page. The current limit has been implemented in the next button. How do I change the current limit?
This is my first task to deal with self service using OA framework technology. I've got only little knowledge about Oracle JDeveloper and OA Framework MVC pattern. Can you please help me where to start?
Do I need to ftp only the overtimeVO page (JSP) and open in jDeveloper or any other components related to this?
Regards,
Sanjaya Pator
report abuse
vote down
vote up
Extending VO
written by kishore Ryali , February 28, 2008
written by kishore Ryali , February 28, 2008
Hi Sanjaya
Im also working on Extending standard VO to show some additional information in iProcurement.
As a start up, identify the VO associated to ur page by using "About this page" link which is enabled through a profile value. Then download all the files from the $JAVA_TOP/oracle/apps//.... to ur local drive.
1. Create a new project and set the classpath of the project to the downloaded files above.
2. Extend the standard VO identified above and change the query associated with it & create a new VO.
3. Use substitutions to replace the original VO with the extended VO.
4. Migrate ur files to the apps server.
Votes: +0
Im also working on Extending standard VO to show some additional information in iProcurement.
As a start up, identify the VO associated to ur page by using "About this page" link which is enabled through a profile value. Then download all the files from the $JAVA_TOP/oracle/apps//.... to ur local drive.
1. Create a new project and set the classpath of the project to the downloaded files above.
2. Extend the standard VO identified above and change the query associated with it & create a new VO.
3. Use substitutions to replace the original VO with the extended VO.
4. Migrate ur files to the apps server.
report abuse
vote down
vote up
Migrating a 3-tier forms application (forms 10g+oracle 10gAS+oracle 9i)
written by Anurag Vidyarthi , April 29, 2008
written by Anurag Vidyarthi , April 29, 2008
Hi Anil,
Great to know your ideas abot forms as well. I was just referring your site for APPS only.
I have an existing working oracle forms application( on solaris
. But forms run on windows machine using the IE.
Considering the :
.....1. oracle license fee
.....2. fact that oracle is discontinuing forms
now I to migrate this 3-tier forms application (forms 10g+oracle 10gAS+oracle 9i)
to (oracle express/oracle db 10g std edition)+J2ee forms(using the ADF)+any free application server.
How do you think about this idea ? any recommendation ?
My experience with other java GUI applications (which involves a lot of records ) says....ADF based application will have performance and maintenance issue later .....
please comment on this !!!
Best Regards
Anurag Vidyarthi
Votes: +0
Great to know your ideas abot forms as well. I was just referring your site for APPS only.
I have an existing working oracle forms application( on solaris
. But forms run on windows machine using the IE. Considering the :
.....1. oracle license fee
.....2. fact that oracle is discontinuing forms
now I to migrate this 3-tier forms application (forms 10g+oracle 10gAS+oracle 9i)
to (oracle express/oracle db 10g std edition)+J2ee forms(using the ADF)+any free application server.
How do you think about this idea ? any recommendation ?
My experience with other java GUI applications (which involves a lot of records ) says....ADF based application will have performance and maintenance issue later .....
please comment on this !!!
Best Regards
Anurag Vidyarthi
report abuse
vote down
vote up
Not connceting to database
written by Shaswat Kumar , June 17, 2009
written by Shaswat Kumar , June 17, 2009
Hi Anill,
I am getting following error while creating a database conncetion thru Jdeveloper.
Please advice what should I do.
Regards
Shaswat
Votes: +0
I am getting following error while creating a database conncetion thru Jdeveloper.
Please advice what should I do.
Regards
Shaswat
report abuse
vote down
vote up
...
written by Shaswat Kumar , June 17, 2009
written by Shaswat Kumar , June 17, 2009
Hi Anill,
I am getting following error while creating a database conncetion thru Jdeveloper.
io exception: connection refused(description=(tmp=)(vsnnum=169870080)(err=12505) (error_stack=(error=(code=12505)(emfi=4))))
Please advice what should I do.
Regards
Shaswat
Votes: +0
I am getting following error while creating a database conncetion thru Jdeveloper.
io exception: connection refused(description=(tmp=)(vsnnum=169870080)(err=12505) (error_stack=(error=(code=12505)(emfi=4))))
Please advice what should I do.
Regards
Shaswat
report abuse
vote down
vote up
...
written by Anil Passi- , June 17, 2009
written by Anil Passi- , June 17, 2009
Try to telnet to that machine on which DB is hosted,
telnet machineNameHere PortNumberHere
Does it connect from your PC?
If not, then you have firewall issues
Thanks
Anil Passi
Votes: +0
telnet machineNameHere PortNumberHere
Does it connect from your PC?
If not, then you have firewall issues
Thanks
Anil Passi
report abuse
vote down
vote up
Deployment of OA Framework Development to Oracle Apps
written by Hemant , September 10, 2009
written by Hemant , September 10, 2009
Hi Anil
Thanks for helping me to learn Oracle Framework.
I have develop simple table page in OA frame work using your steps only, now I want to deploy the same to Oracle Apps
Could you please give me the document how to deploy OAF development to Oracle Apps
First I want to see my development in oracle apps so it will clear all the steps from TOP to Bottom of the development.
Regards
Hemant
Votes: +0
Thanks for helping me to learn Oracle Framework.
I have develop simple table page in OA frame work using your steps only, now I want to deploy the same to Oracle Apps
Could you please give me the document how to deploy OAF development to Oracle Apps
First I want to see my development in oracle apps so it will clear all the steps from TOP to Bottom of the development.
Regards
Hemant
report abuse
vote down
vote up
...
written by pm , April 23, 2010
written by pm , April 23, 2010
Hi Anil,
I am new to your site; but once I saw this site, I just stuck to it.
Thanks for your services and couldn't keep myself wondering how you manage time.
Nice analogy. It gets simpler if it is told in terms that we already know.
The OAF architecture may be entirely different. The OAF terminology may not be newer to the ones that already know AK Developer.
Did you write about the similarities between AK developer and OA Framework?
The search did not give me right result. I would like to read it in your words.
Votes: +0
I am new to your site; but once I saw this site, I just stuck to it.
Thanks for your services and couldn't keep myself wondering how you manage time.
Nice analogy. It gets simpler if it is told in terms that we already know.
The OAF architecture may be entirely different. The OAF terminology may not be newer to the ones that already know AK Developer.
Did you write about the similarities between AK developer and OA Framework?
The search did not give me right result. I would like to read it in your words.
report abuse
vote down
vote up
| < Prev | Next > |
|---|







There are so many things in the site, just confused where to start.
Thanks a lot,
Prativa