<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2278194326889842740</id><updated>2012-01-11T08:44:03.117-08:00</updated><category term='ADF 11g'/><category term='ADF 10g'/><category term='Web Services'/><category term='Java/J2EE'/><category term='OAF'/><title type='text'>My Learnings on OAF,ADF and SOA</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-2929941659819754448</id><published>2011-03-14T22:50:00.000-07:00</published><updated>2011-03-14T22:59:56.241-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java/J2EE'/><title type='text'>Vaadin</title><content type='html'>&lt;div align="justify"&gt;It’s an Interesting name. Isn’t it. I was searching about open source web frameworks, when I came across &lt;a href="http://vaadin.com/home"&gt;Vaadin&lt;/a&gt;. Vaadin is a RIA framework build on top of &lt;a href="http://code.google.com/webtoolkit/"&gt;GWT &lt;/a&gt;(Google web toolkit). Started learning it with the address book tutorial . I must say, it’s a very impressive tutorial. Next step was to installed Vaadin plugin in eclipse and to create a &lt;a href="http://en.wikipedia.org/wiki/Create,_read,_update_and_delete"&gt;CRUD &lt;/a&gt;application. I kept Vaadin as front end, and Hibernate in spring DAO at the model layer. It took me a while for achieving it. But application was running very smooth. You create your UI windows(pages) using Java API of Vaadin, much like the way you have programmed for your swing applications. At run time, your code gets compiled into java script code. Vaadin provides large set of &lt;a href="http://demo.vaadin.com/sampler"&gt;out of box UI components &lt;/a&gt;which can fulfills most of the requirements of your web page. API for Vaadin is well documented and Vaddin &lt;a href="http://vaadin.com/book"&gt;book &lt;/a&gt;is also avaliable.&lt;br /&gt;&lt;br /&gt;To me Vaadin with Hibernate and Spring Dao seems to be a good choice for creating web application for your startup. But still java world miss a light weight web framework which covers all the tiers/layers of the web application. Or might be Java is not at all a platform to create small and mid scale web applications. Time to explore PHP frameworks :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-2929941659819754448?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/2929941659819754448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=2929941659819754448' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/2929941659819754448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/2929941659819754448'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2011/03/vaadin.html' title='Vaadin'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-2155409081802612262</id><published>2010-08-24T08:14:00.000-07:00</published><updated>2010-09-28T08:58:52.859-07:00</updated><title type='text'>Siebel Self Service 8.1.1</title><content type='html'>&lt;a href="http://www.oracle.com/us/products/applications/siebel/self-service-ebilling/index.htm"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Siebel Self Service&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt; is one of the first product from Oracle build on the Oracle fusion middleware platform using ADF10g. Siebel Self service is an extension of the Siebel CRM application to web. I am glad that in our present company, we have done the first ever sucessful implementation. Though the journey of the implementation was very challenging, I enjoyed it alot.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-2155409081802612262?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/2155409081802612262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=2155409081802612262' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/2155409081802612262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/2155409081802612262'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2010/08/siebel-self-service-811.html' title='Siebel Self Service 8.1.1'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-6444268955501738325</id><published>2010-05-09T09:09:00.000-07:00</published><updated>2010-05-09T09:14:12.079-07:00</updated><title type='text'>Undo/Cancel changes in ADF 11g</title><content type='html'>&lt;a title="View Undo Edits in Jdev 11g on Scribd" href="http://www.scribd.com/doc/31109004/Undo-Edits-in-Jdev-11g" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;Undo Edits in Jdev 11g&lt;/a&gt; &lt;object id="doc_547905021350545" name="doc_547905021350545" height="500" width="100%" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" rel="media:document" resource="http://d1.scribdassets.com/ScribdViewer.swf?document_id=31109004&amp;access_key=key-11rgjogidvdl46tqa6xv&amp;page=1&amp;viewMode=list" xmlns:media="http://search.yahoo.com/searchmonkey/media/" xmlns:dc="http://purl.org/dc/terms/" &gt;  &lt;param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="FlashVars" value="document_id=31109004&amp;access_key=key-11rgjogidvdl46tqa6xv&amp;page=1&amp;viewMode=list"&gt;   &lt;embed id="doc_547905021350545" name="doc_547905021350545" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=31109004&amp;access_key=key-11rgjogidvdl46tqa6xv&amp;page=1&amp;viewMode=list" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="500" width="100%" wmode="opaque" bgcolor="#ffffff"&gt;&lt;/embed&gt;  &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-6444268955501738325?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/6444268955501738325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=6444268955501738325' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/6444268955501738325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/6444268955501738325'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2010/05/undocancel-changes-in-adf-11g.html' title='Undo/Cancel changes in ADF 11g'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-3905965753490426149</id><published>2010-04-20T10:46:00.000-07:00</published><updated>2010-04-25T10:26:48.288-07:00</updated><title type='text'>scheduling gantt chart in ADF 11g</title><content type='html'>&lt;a title="View How to for Scheduling Gantt Chart in ADF 11g on Scribd" href="http://www.scribd.com/doc/30476070/How-to-for-Scheduling-Gantt-Chart-in-ADF-11g" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;How to for Scheduling Gantt Chart in ADF 11g&lt;/a&gt; &lt;object id="doc_516501473760750" name="doc_516501473760750" height="500" width="100%" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" rel="media:document" resource="http://d1.scribdassets.com/ScribdViewer.swf?document_id=30476070&amp;access_key=key-18mzh2dg6omjiorbkxay&amp;page=1&amp;viewMode=list" xmlns:media="http://search.yahoo.com/searchmonkey/media/" xmlns:dc="http://purl.org/dc/terms/" &gt;  &lt;param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="FlashVars" value="document_id=30476070&amp;access_key=key-18mzh2dg6omjiorbkxay&amp;page=1&amp;viewMode=list"&gt;   &lt;embed id="doc_516501473760750" name="doc_516501473760750" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=30476070&amp;access_key=key-18mzh2dg6omjiorbkxay&amp;page=1&amp;viewMode=list" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="500" width="100%" wmode="opaque" bgcolor="#ffffff"&gt;&lt;/embed&gt;  &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-3905965753490426149?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/3905965753490426149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=3905965753490426149' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/3905965753490426149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/3905965753490426149'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2010/04/scheduling-gantt-chart-in-adf-11g.html' title='scheduling gantt chart in ADF 11g'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-782507483006264958</id><published>2010-03-29T09:43:00.000-07:00</published><updated>2010-04-25T10:14:41.723-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 11g'/><title type='text'>DB driven Vertical menu</title><content type='html'>&lt;a title="View DB Driven Vertical Menu on Scribd" href="http://www.scribd.com/doc/30475665/DB-Driven-Vertical-Menu" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;DB Driven Vertical Menu&lt;/a&gt; &lt;object id="doc_298632726966608" name="doc_298632726966608" height="500" width="100%" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" rel="media:document" resource="http://d1.scribdassets.com/ScribdViewer.swf?document_id=30475665&amp;access_key=key-1tsrmimtubwqpqc3n65j&amp;page=1&amp;viewMode=list" xmlns:media="http://search.yahoo.com/searchmonkey/media/" xmlns:dc="http://purl.org/dc/terms/" &gt;  &lt;param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="FlashVars" value="document_id=30475665&amp;access_key=key-1tsrmimtubwqpqc3n65j&amp;page=1&amp;viewMode=list"&gt;   &lt;embed id="doc_298632726966608" name="doc_298632726966608" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=30475665&amp;access_key=key-1tsrmimtubwqpqc3n65j&amp;page=1&amp;viewMode=list" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="500" width="100%" wmode="opaque" bgcolor="#ffffff"&gt;&lt;/embed&gt;  &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-782507483006264958?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/782507483006264958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=782507483006264958' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/782507483006264958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/782507483006264958'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2010/03/db-driven-horizontal-menu.html' title='DB driven Vertical menu'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-5621823488938933925</id><published>2010-01-26T06:27:00.000-08:00</published><updated>2011-03-14T23:00:09.504-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java/J2EE'/><title type='text'>Exploring Grails</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;After a long time, I got some time to blog. In addition to finishing up my current project, I am exploring another web framework &lt;/span&gt;&lt;a href="http://www.grails.org/Documentation"&gt;&lt;span style="font-family:courier new;"&gt;Groovy on Garils&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;. This is a type of framework Java community needs from a long time.Though I am still exploring it. I must say, I am pretty much impressed with it. Half the job is done by framework itself. Right from creating database tables, to creating UI pages for basic CRUD operations. Grails is based on the Groovy language.&lt;/span&gt;&lt;a href="http://groovy.codehaus.org/"&gt;&lt;span style="font-family:courier new;"&gt;Groovy &lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;is an interesting language to learn, and its even supported in JDeveloper 11g. And you can also setup grails in &lt;/span&gt;&lt;a href="http://www.oracle.com/technology/pub/articles/oak-grails.html"&gt;&lt;span style="font-family:courier new;"&gt;Jdeveloper&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;.Though the Best IDE suggested to use for grails development is Intellij. &lt;/span&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;"&gt;In the comming weeks I will start posting some more tutorials on Oracle ADF. Infact, from past few months I explored many java web frameworks(Spring,Seam etc). The more I explored, the more I got confused and messed up. And more I got confidence that Oracle ADF is one of the most stable and easy to learn web framework in Java space.Though many will and still disagree with me.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;"&gt;Happy Learning&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;"&gt;Vikram&lt;/span&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-5621823488938933925?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/5621823488938933925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=5621823488938933925' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/5621823488938933925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/5621823488938933925'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2010/01/exploring-grails.html' title='Exploring Grails'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-6909575464390195314</id><published>2009-08-19T04:06:00.000-07:00</published><updated>2009-09-19T04:45:21.376-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>Oracle ADF, dust under the carpet</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;Jdeveloper version usedin this post is:=10.1.3&lt;br /&gt;When you create a component in ADF , whether its Entity object or a view object in the model layer, or drag and drop view object on the jsf page, there are many xml files and other files which are created by Jdeveloper. And developers gets crazy as, why so many files are created and what are they for. Specially beginners/ADF newbies gets confused with so many xml files which getting created, and that gives them one reason to run way from learning ADF. In this post I will try to explain these xml and other files which you should know as a developer when you do development using ADF.&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;"&gt;When you create an application in Jdeveloper with “JSF , ADF BC” as template, two project gets created “Model” and “ViewController”. And a file&lt;br /&gt;1) .jws which is used for storing the projects added in the workspace(check your workspace on disk). &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;"&gt;Under the Model and ViewController projects two files gets created as “Model.jpr” and “ViewController.jpr”.&lt;br /&gt;2) .jpr file is used to store the project related information like java files created in the project etc.&lt;/span&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;Once you start creating the Entity or View object under the Model, one more file gets created under the Model/src/Model.jpx.&lt;br /&gt;3) Model.jpx file contains all the application modules defined in your Model project. And other configuration details such as database connection used in model layer. Some times during development, if you get “JBO 30003” or database error, then check the “_NamedConnection” parameter in the same file, if it is pointing to the correct database connection name. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;Entity object is the Java object representation of the database table row from which it is created. Once your create an Entity object(say EmpEO), two files which gets created.&lt;br /&gt;4)EntityName.xml (for EmpEO, it is EmpEO.xml):- This file contains the name of the database table from which the entity object is created, name and data type of each attribute in eneity object, and the corresponding column to which that attribute represents. For example in the following figure, attribute “EmployeeId” is driven from the column name “Employee_ID”, with type as number and other attributes such as primary key etc:-&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;p align="justify"&gt;&lt;a href="http://2.bp.blogspot.com/_GUc3firYMZA/SrS8Z_qMa0I/AAAAAAAAAC4/LSbyPmrY3lE/s1600-h/Temp.jpg"&gt;&lt;span style="font-family:courier new;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5383134609385745218" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 230px; CURSOR: hand; HEIGHT: 320px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_GUc3firYMZA/SrS8Z_qMa0I/AAAAAAAAAC4/LSbyPmrY3lE/s320/Temp.jpg" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; 5) EntityNameImpl.java(for EmpEO, it is EmpEoImpl.java):- though it is not required to generate this file, as default option it is created. It has getter and setter methods for the entity object attributes. This file can be used to add custom code, such as in the setter method of commission of the employee, commission can be first calculated based on the employee salary, hire date or other conditions.&lt;br /&gt;&lt;br /&gt;View object fetch the result set from the database based on the query on which it is based. Once you create view object whether entity based or read only,two files are created:-&lt;br /&gt;6) ViewObjectName.xml(for EmpVO, it is EmpVO.xml):-which specifies the entity object on which this view object is dependent, query of the view object which will fetch the desired resultset and the attributes which are there in view object.View object is created at run time based on this .xml file.&lt;br /&gt;7)ViewObjectNameImpl.java(For EmpVO, it is EmpVOImpl.java):- When ever you create a new row in the view object, and you want to provide some custom behavior when a new row is created, you can overwrite create() method in same class. Similarly remove() and other methods. &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;"&gt;An Application module which acts a container for view objects and take care of transaction handling. When you create an application module, two files are create:-&lt;br /&gt;&lt;app.&gt;8) ApplicationModuleName .xml(for EmpAM, its EmpAM.xml):- It has name of the application module, the application module class path, and all view objects which are added in the application module. This information is used to create the view objects at runtime.&lt;br /&gt;&lt;app.&gt;9)ApplicationModuleName Impl.java(For EmpAM, its EmpAMImpl.java):- In this java class you will write methods like:-&lt;br /&gt;→ iterating two or more view objects result set added in same application module to perform some business logic.&lt;br /&gt;→ calling a pl/sql code.&lt;br /&gt;→ writing a method and later on exposing it by adding it in client interface, so that it can be called from view layer.&lt;br /&gt;10) Bc4j.xcfg:- it has different configuration properties of the application module, as such , the name of the database connection, type of DB connection etc. &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;"&gt;Once you create your jspx page with drag and drop any view object from data control palette, page definition file and DataBindings.cpx file gets created.&lt;br /&gt;11) DataBindings.cpx:- This file is created for the first time and only once when you drag and drop any view object or method from data control palette to the jspx page. This page contains information about page definition file corresponding to your jspx page, the data controls used by your application. Ya ya, I know you are now thinking of what is data control and data bindings. Thats actually what I am thinking of my next blog post topic :). Check the following figure, it shows the contents of the DataBindings.cpx file, when I drag and dropped the EmpVO from the data control palette to ViewEmpDetails.jspx page as ADF read only table. It shows how ViewEmpDetails.jspx file is linked to its page definition file ViewEmpDetailsPageDef.xml:-&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;p align="justify"&gt;&lt;a href="http://3.bp.blogspot.com/_GUc3firYMZA/SrTAiz3JcGI/AAAAAAAAADA/QR7wOg4w7_U/s1600-h/Temp.jpg"&gt;&lt;span style="font-family:courier new;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5383139158884184162" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 165px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_GUc3firYMZA/SrTAiz3JcGI/AAAAAAAAADA/QR7wOg4w7_U/s320/Temp.jpg" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; Created DataBindings.cpx file is created under the view controller project → Application Sources → view .&lt;br /&gt;12) PageDef.xml(for ViewEmpDetails.jspx, its ViewEmpDetailsPageDef.xml):- Page definition file created for each jspx page,when you drop a particular component from data control palette to your jspx page. This is the file which actually wries your UI components to the corresponding attributes in the view object. This file mainly contains following elements(tags):-&lt;br /&gt;12.1 ) executables:- which defines various result sets(specified as iterator tag) to be executed when the page is loaded. Or defines the methods exposed from application module in client tier(specified as methodIterator tag) to be executed.&lt;br /&gt;12.2) bindings:- it specifies the attributes which will be contained in the result set pointed by the iterator tag. Or the details of method to be executed pointed by the methodIterator tag.&lt;br /&gt;Check the following figure, in which iterator EmpVO1Iterator specifies the employee details to be fetched when page is loaded. And under bindings it specifies all attributes which will be available in the result set to be shown in UI.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://4.bp.blogspot.com/_GUc3firYMZA/SrTCOJXls2I/AAAAAAAAADI/YgQGWMrs3U0/s1600-h/Temp.jpg"&gt;&lt;span style="font-family:courier new;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5383141002903401314" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 306px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_GUc3firYMZA/SrTCOJXls2I/AAAAAAAAADI/YgQGWMrs3U0/s320/Temp.jpg" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;If you check the source of the ViewEmpDetails.jspx page, it will be clear to you that how it is wired to the elements present in the page definition.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;"&gt;And at last two files which are created by Jdeveloper itself under web-inf folder in ViewController project once you have create an application with “JSF , ADF BC” as template are:-&lt;br /&gt;13)faces-config.xml:- which acts as a controller by storing the navigations rules. And in addition to that it stores the configuration details about managed beans.&lt;br /&gt;14)Web.xml :- which is the standard j2ee deployment description file and provide application level configuration details. &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:courier new;"&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:courier new;"&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-6909575464390195314?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/6909575464390195314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=6909575464390195314' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/6909575464390195314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/6909575464390195314'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2009/09/oracle-adf-dust-under-carpet.html' title='Oracle ADF, dust under the carpet'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_GUc3firYMZA/SrS8Z_qMa0I/AAAAAAAAAC4/LSbyPmrY3lE/s72-c/Temp.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-8200393601176272643</id><published>2009-07-09T09:52:00.000-07:00</published><updated>2010-04-21T10:25:16.416-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 11g'/><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>Oracle ADF – I am beginner, from where I can start</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;There are many fellow developers who are just entering into the world of ADF and Jdeveloper. They do struggle a bit as from where to start from in ADF. Regardless of whether you are starting up with ADF 11g or 10g, in this post I will try to explain what all is required to start with Oracle ADF.&lt;br /&gt;As ADF is a J2EE application framework, you first have to learn Java and OOB concepts. Though the in depth knowledge of Java is not required, nor are the advance concepts like threads need to be skilled, but you do need basic java concepts like class, object, inheritance, wrapper classes etc. A good java book that can help you is “SCJP Sun Certified Programmer for Java” by Bert Bates, Kathy sierra or Head first Java by same authors. As every thing in the ADF is metadata driven, means objects are constructed are at run time using metadata which is stored in the form of XML. So you have to learn XML also. A good link to learn the same is at&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.w3schools.com/XML/xml_whatis.asp" target="_blank"&gt;&lt;span style="font-family:courier new;"&gt;http://www.w3schools.com/XML/xml_whatis.asp&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;.&lt;br /&gt;The if you are starting up with ADF 11g, then get the overview of the same at &lt;/span&gt;&lt;a href="http://www.oracle.com/technology/products/adf/pdf/ADF_11_overview.pdf" target="_blank"&gt;&lt;span style="font-family:courier new;"&gt;http://www.oracle.com/technology/products/adf/pdf/ADF_11_overview.pdf&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; or&lt;br /&gt;If you are starting up with ADF 10g then at&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.oracle.com/technology/products/jdev/collateral/papers/1013/adf_10.1.3_overview.pdf" target="_blank"&gt;&lt;span style="font-family:courier new;"&gt;http://www.oracle.com/technology/products/jdev/collateral/papers/1013/adf_10.1.3_overview.pdf&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; .&lt;br /&gt;After getting the overview, start with the step by step tutorial, for ADF 10g at&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.oracle.com/technology/obe/ADF_tutorial_1013/index.htm" target="_blank"&gt;&lt;span style="font-family:courier new;"&gt;http://www.oracle.com/technology/obe/ADF_tutorial_1013/index.htm&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;And for ADF 11g at&lt;br /&gt;&lt;/span&gt;&lt;a href="http://kohlivikram.blogspot.com/2009/03/oracle-adf-11g-sample-application.html" target="_blank"&gt;&lt;span style="font-family:courier new;"&gt;http://kohlivikram.blogspot.com/2009/03/oracle-adf-11g-sample-application.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Most of the times when we do the tutorial, we get carried away with the steps given in the tutorial and try to finish it as soon as possible, rather then concentrating on the concepts given in the steps, so go slow and don’t worry if you are not able to finish it up, start it once again when you get time, but do finish it. If you are not able to understand the concept given in tutorial, try to refer the same topic in the ADF developer guide. Read developer guide in your free time; go through blogs written by Frank, Andrejus, and Steve. List of good ADF blogs are given here:-&lt;br /&gt;&lt;/span&gt;&lt;a href="http://wiki.oracle.com/page/ADF+Blogs" target="_blank"&gt;&lt;span style="font-family:courier new;"&gt;http://wiki.oracle.com/page/ADF+Blogs&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;One more very good article on how to start with ADF is &lt;a href="http://blogs.oracle.com/shay/2010/02/how_do_i_start_learning_oracle_adf_and_jdeveloper.html" target="_blank"&gt;here&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;In the coming post I will try to explain the ADF concepts components wise. Hope that I will get enough time :) for that.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-8200393601176272643?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/8200393601176272643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=8200393601176272643' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/8200393601176272643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/8200393601176272643'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2009/07/oracle-adf-i-am-beginner-from-where-i.html' title='Oracle ADF – I am beginner, from where I can start'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-4465873787747941066</id><published>2009-04-26T00:13:00.000-07:00</published><updated>2009-09-21T06:01:41.501-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>Generate PDF report in ADF</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;Example is developed in Jdeveloper 10g. In this example I am using employee table from the HR schema and generating the pdf report which contains the first name ,last name and email address of the employee. I am making use of the &lt;/span&gt;&lt;a href="http://xmlgraphics.apache.org/fop/"&gt;&lt;span style="font-family:courier new;"&gt;Apache FOP&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;. I am using the FOP version.&lt;/span&gt;&lt;a href="http://mirror.sourceshare.org/apache/xmlgraphics/fop/"&gt;&lt;span style="font-family:courier new;"&gt;95&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;.Lets start with example. Create the application workspace with model and viewController projects. Add the following jar files in the viewController(Right click the viewController--&gt;Project Properties--&gt;Libraries--&gt; Add Library --&gt;New) :-&lt;br /&gt;--&gt;avalon-framework-4.2.0.jar&lt;br /&gt;--&gt;batik-all-1.7.jar&lt;br /&gt;--&gt;commons-io-1.3.1.jar&lt;br /&gt;-&gt;custComps.jar&lt;br /&gt;--&gt;fop.jar&lt;br /&gt;--&gt;serializer-2.7.0.jar&lt;br /&gt;--&gt;xercesImpl-2.7.1.jar&lt;br /&gt;--&gt;xml-apis-1.3.04.jar&lt;br /&gt;--&gt;xml-apis-ext-1.3.04.jar&lt;br /&gt;--&gt;xmlgraphics-commons-1.3.1.jar &lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;div align="justify"&gt;Create a read only view object with name "EmpVO" based on the employee table based on query&lt;br /&gt;"SELECT&lt;br /&gt;EMPLOYEES.EMPLOYEE_ID EMPLOYEE_ID,&lt;br /&gt;EMPLOYEES.FIRST_NAME FIRST_NAME,&lt;br /&gt;EMPLOYEES.LAST_NAME LAST_NAME,&lt;br /&gt;EMPLOYEES.EMAIL EMAIL,&lt;br /&gt;EMPLOYEES.PHONE_NUMBER PHONE_NUMBER,&lt;br /&gt;EMPLOYEES.HIRE_DATE HIRE_DATE,&lt;br /&gt;EMPLOYEES.SALARY SALARY&lt;br /&gt;FROM EMPLOYEES".&lt;/div&gt;&lt;div align="justify"&gt;Create a application module AppModule and add the above created view object in that.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;The most difficult part in creating reports using FOP is you have to create the xsl fo file which defines the layout/formatting in which the xml data will be displayed in the pdf file.For this example I have developed following .xsl file:- &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;-----------------------------------------------------&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;pre class="xml" name="code"&gt;&lt;span class="codetag"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&lt;br /&gt;                xmlns:fo="http://www.w3.org/1999/XSL/Format"&amp;gt;&lt;br /&gt;  &amp;lt;xsl:output method="xml" version="1.0" omit-xml-declaration="no"&lt;br /&gt;              indent="yes"/&amp;gt;&lt;br /&gt;  &amp;lt;xsl:template match="/"&amp;gt;&lt;br /&gt;    &amp;lt;fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"&amp;gt;&lt;br /&gt;      &amp;lt;fo:layout-master-set&amp;gt;&lt;br /&gt;        &amp;lt;fo:simple-page-master master-name="A4" page-width="297mm"&lt;br /&gt;                               page-height="210mm" margin-top="0.5in"&lt;br /&gt;                               margin-bottom="0.5in" margin-left="0.5in"&lt;br /&gt;                               margin-right="0.5in"&amp;gt;&lt;br /&gt;          &amp;lt;fo:region-body/&amp;gt;&lt;br /&gt;        &amp;lt;/fo:simple-page-master&amp;gt;&lt;br /&gt;      &amp;lt;/fo:layout-master-set&amp;gt;&lt;br /&gt;      &amp;lt;fo:page-sequence master-reference="A4"&amp;gt;&lt;br /&gt;        &amp;lt;fo:flow flow-name="xsl-region-body"&amp;gt;&lt;br /&gt;          &amp;lt;fo:table table-layout="fixed" border-width="1mm"&lt;br /&gt;                    border-style="solid"&amp;gt;&lt;br /&gt;            &amp;lt;fo:table-column column-width="45mm"/&amp;gt;&lt;br /&gt;            &amp;lt;fo:table-column column-width="45mm"/&amp;gt;&lt;br /&gt;            &amp;lt;fo:table-column column-width="60mm"/&amp;gt;&lt;br /&gt;            &amp;lt;fo:table-header text-align="center" background-color="silver"&amp;gt;&lt;br /&gt;              &amp;lt;fo:table-row&amp;gt;&lt;br /&gt;                &amp;lt;fo:table-cell padding="1mm" border-width="1mm"&lt;br /&gt;                               border-style="solid"&amp;gt;&lt;br /&gt;                  &amp;lt;fo:block font-weight="bold"&amp;gt;First Name&amp;lt;/fo:block&amp;gt;&lt;br /&gt;                &amp;lt;/fo:table-cell&amp;gt;&lt;br /&gt;                &amp;lt;fo:table-cell padding="1mm" border-width="1mm"&lt;br /&gt;                               border-style="solid"&amp;gt;&lt;br /&gt;                  &amp;lt;fo:block font-weight="bold"&amp;gt;Last Name&amp;lt;/fo:block&amp;gt;&lt;br /&gt;                &amp;lt;/fo:table-cell&amp;gt;&lt;br /&gt;                &amp;lt;fo:table-cell padding="1mm" border-width="1mm"&lt;br /&gt;                               border-style="solid"&amp;gt;&lt;br /&gt;                  &amp;lt;fo:block font-weight="bold"&amp;gt;Email Address&amp;lt;/fo:block&amp;gt;&lt;br /&gt;                &amp;lt;/fo:table-cell&amp;gt;&lt;br /&gt;              &amp;lt;/fo:table-row&amp;gt;&lt;br /&gt;            &amp;lt;/fo:table-header&amp;gt;&lt;br /&gt;            &amp;lt;fo:table-body&amp;gt;&lt;br /&gt;              &amp;lt;xsl:for-each select="//EmpVORow"&amp;gt;&lt;br /&gt;                &amp;lt;fo:table-row&amp;gt;&lt;br /&gt;                  &amp;lt;fo:table-cell border-style="solid"&amp;gt;&lt;br /&gt;                    &amp;lt;fo:block&amp;gt;&lt;br /&gt;                      &amp;lt;xsl:value-of select="FirstName"/&amp;gt;&lt;br /&gt;                    &amp;lt;/fo:block&amp;gt;&lt;br /&gt;                  &amp;lt;/fo:table-cell&amp;gt;&lt;br /&gt;                  &amp;lt;fo:table-cell border-style="solid"&amp;gt;&lt;br /&gt;                    &amp;lt;fo:block&amp;gt;&lt;br /&gt;                      &amp;lt;xsl:value-of select="LastName"/&amp;gt;&lt;br /&gt;                    &amp;lt;/fo:block&amp;gt;&lt;br /&gt;                  &amp;lt;/fo:table-cell&amp;gt;&lt;br /&gt;                  &amp;lt;fo:table-cell border-style="solid"&amp;gt;&lt;br /&gt;                    &amp;lt;fo:block&amp;gt;&lt;br /&gt;                      &amp;lt;xsl:value-of select="Email"/&amp;gt;&lt;br /&gt;                    &amp;lt;/fo:block&amp;gt;&lt;br /&gt;                  &amp;lt;/fo:table-cell&amp;gt;&lt;br /&gt;                &amp;lt;/fo:table-row&amp;gt;&lt;br /&gt;              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;            &amp;lt;/fo:table-body&amp;gt;&lt;br /&gt;          &amp;lt;/fo:table&amp;gt;&lt;br /&gt;        &amp;lt;/fo:flow&amp;gt;&lt;br /&gt;      &amp;lt;/fo:page-sequence&amp;gt;&lt;br /&gt;    &amp;lt;/fo:root&amp;gt;&lt;br /&gt;  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;pre&gt;-----------------------------------------------------&lt;br /&gt;Now create a JSPX page with one command button on it, on clicking which you will generate the PDF file and a command link on clicking which you will get the generated pdf.&lt;br /&gt;&lt;span class="codetag"&gt;&amp;lt;af:commandButton&lt;/span&gt; text=&lt;span class="codevalue"&gt;"Generate XML"&lt;/span&gt; action=&lt;span class="codevalue"&gt;"#{GenPDFBean.commandButton_action}"&lt;/span&gt; &lt;span class="codetag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codetag"&gt;&amp;lt;h:commandLink&lt;/span&gt; value=&lt;span class="codevalue"&gt;"Download PDF"&lt;/span&gt; action=&lt;span class="codevalue"&gt;"#{GenPDFBean.downloadPDF}"&lt;/span&gt; target=&lt;span class="codevalue"&gt;"_blank"&lt;/span&gt; &lt;span class="codetag"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Create a managed bean with name  GenPDFBean and add the following code in the created bean.&lt;br /&gt;&lt;pre class="java" name="code"&gt;&lt;br /&gt;import com.sun.java.util.collections.HashMap;&lt;br /&gt;&lt;br /&gt;import com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl;&lt;br /&gt;&lt;br /&gt;import java.io.BufferedInputStream;&lt;br /&gt;import java.io.BufferedOutputStream;&lt;br /&gt;import java.io.File;&lt;br /&gt;import java.io.FileInputStream;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;import java.io.OutputStream;&lt;br /&gt;import java.io.PrintWriter;&lt;br /&gt;&lt;br /&gt;import java.util.Map;&lt;br /&gt;&lt;br /&gt;import javax.faces.context.ExternalContext;&lt;br /&gt;import javax.faces.context.FacesContext;&lt;br /&gt;&lt;br /&gt;import javax.servlet.http.HttpServletRequest;&lt;br /&gt;&lt;br /&gt;import javax.servlet.http.HttpServletResponse;&lt;br /&gt;&lt;br /&gt;import javax.xml.transform.Result;&lt;br /&gt;import javax.xml.transform.Source;&lt;br /&gt;import javax.xml.transform.Transformer;&lt;br /&gt;import javax.xml.transform.TransformerFactory;&lt;br /&gt;import javax.xml.transform.sax.SAXResult;&lt;br /&gt;import javax.xml.transform.stream.StreamSource;&lt;br /&gt;&lt;br /&gt;import model.AppModuleImpl;&lt;br /&gt;&lt;br /&gt;import model.EmpVOImpl;&lt;br /&gt;&lt;br /&gt;import oracle.adf.model.BindingContext;&lt;br /&gt;import oracle.adf.model.binding.DCDataControl;&lt;br /&gt;import oracle.adf.model.binding.DCUtil;&lt;br /&gt;import oracle.adf.view.faces.context.AdfFacesContext;&lt;br /&gt;&lt;br /&gt;import oracle.binding.BindingContainer;&lt;br /&gt;import oracle.binding.OperationBinding;&lt;br /&gt;&lt;br /&gt;import oracle.jbo.ApplicationModule;&lt;br /&gt;import oracle.jbo.XMLInterface;&lt;br /&gt;&lt;br /&gt;import java.io.Closeable;&lt;br /&gt;&lt;br /&gt;import oracle.xml.parser.v2.XMLNode;&lt;br /&gt;&lt;br /&gt;import org.apache.fop.apps.FOUserAgent;&lt;br /&gt;import org.apache.fop.apps.Fop;&lt;br /&gt;import org.apache.fop.apps.FopFactory;&lt;br /&gt;import org.apache.fop.apps.MimeConstants;&lt;br /&gt;&lt;br /&gt;import org.w3c.dom.Node;&lt;br /&gt;&lt;br /&gt;public class GenPDFBean {&lt;br /&gt;    private BindingContainer bindings;&lt;br /&gt;    FacesContext facesContext = FacesContext.getCurrentInstance();&lt;br /&gt;    ExternalContext externalContext = facesContext.getExternalContext();&lt;br /&gt;    AdfFacesContext context = AdfFacesContext.getCurrentInstance();&lt;br /&gt;    HttpServletRequest request =&lt;br /&gt;        (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();&lt;br /&gt;    BindingContext ctx = DCUtil.getBindingContext(request);&lt;br /&gt;    DCDataControl dc = ctx.findDataControl("AppModuleDataControl");&lt;br /&gt;    ApplicationModule service = (ApplicationModule)dc.getDataProvider();&lt;br /&gt;    ApplicationModule am = service.findApplicationModule("AppModule");&lt;br /&gt;    AppModuleImpl amImpl = (AppModuleImpl)am;&lt;br /&gt;    EmpVOImpl empVO = (EmpVOImpl)amImpl.findViewObject("EmpVO1");&lt;br /&gt;    private static final int DEFAULT_BUFFER_SIZE = 10240; // 10KB.&lt;br /&gt;&lt;br /&gt;    public GenPDFBean() {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public BindingContainer getBindings() {&lt;br /&gt;        return this.bindings;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void setBindings(BindingContainer bindings) {&lt;br /&gt;        this.bindings = bindings;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public String commandButton_action() {&lt;br /&gt;        HashMap viewDefMap = new HashMap();&lt;br /&gt;        viewDefMap.put("model.EmpVO",&lt;br /&gt;                       new String[] { "FirstName", "LastName", "Email" });&lt;br /&gt;        try {&lt;br /&gt;            //printXML(empVO.writeXML(-1,XMLInterface.XML_OPT_ALL_ROWS));&lt;br /&gt;            printXML(empVO.writeXML(XMLInterface.XML_OPT_ALL_ROWS,&lt;br /&gt;                                    viewDefMap));&lt;br /&gt;            generatePDF();&lt;br /&gt;            System.out.println("success");&lt;br /&gt;        } catch (IOException e) {&lt;br /&gt;            // TODO&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        return null;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private static void printXML(Node n) throws IOException {&lt;br /&gt;        //((XMLNode)n).print(System.out);&lt;br /&gt;        java.io.File file =&lt;br /&gt;            new java.io.File("C:/jdevstudio10133/jdev/mywork/FOP/ViewController/src/view/emp.xml");&lt;br /&gt;        //java.io.File file = new java.io.File("C:/Windows/Temp/emp.xml");&lt;br /&gt;        PrintWriter output = null;&lt;br /&gt;        try {&lt;br /&gt;            output = new java.io.PrintWriter(file);&lt;br /&gt;            ((XMLNode)n).print(output);&lt;br /&gt;        } catch (IOException e) {&lt;br /&gt;            //throw new RuntimeException("IOExceptions will crash the application", e);&lt;br /&gt;            System.out.println(e.getMessage());&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            System.out.println(e.getMessage());&lt;br /&gt;        } finally {&lt;br /&gt;            if (output != null) {&lt;br /&gt;                try {&lt;br /&gt;                    output.close();&lt;br /&gt;                } catch (Exception e) {&lt;br /&gt;                    System.out.println(e.getMessage());&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    public void generatePDF() {&lt;br /&gt;        try {&lt;br /&gt;            System.out.println("FOP ExampleXML2PDF\n");&lt;br /&gt;            System.out.println("Preparing...");&lt;br /&gt;&lt;br /&gt;            // Setup directories&lt;br /&gt;            File baseDir = new File(".");&lt;br /&gt;            File outDir = new File(baseDir, "out");&lt;br /&gt;            outDir.mkdirs();&lt;br /&gt;&lt;br /&gt;            // Setup input and output files        &lt;br /&gt;            File xmlfile =&lt;br /&gt;                new File("C:/jdevstudio10133/jdev/mywork/FOP/ViewController/src/view/emp.xml");&lt;br /&gt;            File xsltfile =&lt;br /&gt;                new File("C:/jdevstudio10133/jdev/mywork/FOP/ViewController/src/view/emp.xsl");&lt;br /&gt;            File pdffile =&lt;br /&gt;                new File("C:/jdevstudio10133/jdev/mywork/FOP/ViewController/src/view/EmpResultXML2PDF.pdf");&lt;br /&gt;&lt;br /&gt;            System.out.println("Input: XML (" + xmlfile + ")");&lt;br /&gt;            System.out.println("Stylesheet: " + xsltfile);&lt;br /&gt;            System.out.println("Output: PDF (" + pdffile + ")");&lt;br /&gt;            System.out.println();&lt;br /&gt;            System.out.println("Transforming...");&lt;br /&gt;&lt;br /&gt;            // configure fopFactory as desired&lt;br /&gt;            FopFactory fopFactory = FopFactory.newInstance();&lt;br /&gt;&lt;br /&gt;            FOUserAgent foUserAgent = fopFactory.newFOUserAgent();&lt;br /&gt;            // configure foUserAgent as desired&lt;br /&gt;&lt;br /&gt;            // Setup output&lt;br /&gt;            OutputStream out = new java.io.FileOutputStream(pdffile);&lt;br /&gt;            out = new java.io.BufferedOutputStream(out);&lt;br /&gt;&lt;br /&gt;            try {&lt;br /&gt;                // Construct fop with desired output format&lt;br /&gt;                Fop fop =&lt;br /&gt;                    fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent,&lt;br /&gt;                                      out);&lt;br /&gt;&lt;br /&gt;                // Setup XSLT&lt;br /&gt;                //TransformerFactory factory = TransformerFactory.newInstance();&lt;br /&gt;                TransformerFactory factory = new TransformerFactoryImpl();&lt;br /&gt;                Transformer transformer =&lt;br /&gt;                    factory.newTransformer(new StreamSource(xsltfile));&lt;br /&gt;&lt;br /&gt;                // Set the value of a &lt;param&gt; in the stylesheet&lt;br /&gt;                transformer.setParameter("versionParam", "2.0");&lt;br /&gt;&lt;br /&gt;                // Setup input for XSLT transformation&lt;br /&gt;                Source src = new StreamSource(xmlfile);&lt;br /&gt;&lt;br /&gt;                // Resulting SAX events (the generated FO) must be piped through to FOP&lt;br /&gt;                Result res = new SAXResult(fop.getDefaultHandler());&lt;br /&gt;&lt;br /&gt;                // Start XSLT transformation and FOP processing&lt;br /&gt;                transformer.transform(src, res);&lt;br /&gt;            } finally {&lt;br /&gt;                out.close();&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            System.out.println("Success!");&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            e.printStackTrace(System.err);&lt;br /&gt;            //System.exit(-1);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void downloadPDF() throws IOException {&lt;br /&gt;&lt;br /&gt;        // Prepare.&lt;br /&gt;        FacesContext facesContext = FacesContext.getCurrentInstance();&lt;br /&gt;        ExternalContext externalContext = facesContext.getExternalContext();&lt;br /&gt;        HttpServletResponse response =&lt;br /&gt;            (HttpServletResponse)externalContext.getResponse();&lt;br /&gt;&lt;br /&gt;        File file = new File(getFilePath(), getFileName());&lt;br /&gt;        BufferedInputStream input = null;&lt;br /&gt;        BufferedOutputStream output = null;&lt;br /&gt;&lt;br /&gt;        try {&lt;br /&gt;            // Open file.&lt;br /&gt;            input =&lt;br /&gt;                    new BufferedInputStream(new FileInputStream(file), DEFAULT_BUFFER_SIZE);&lt;br /&gt;&lt;br /&gt;            // Init servlet response.&lt;br /&gt;            response.reset();&lt;br /&gt;            response.setContentType("application/pdf");&lt;br /&gt;            response.setContentLength((int)file.length());&lt;br /&gt;            //String fileName="ab2123";&lt;br /&gt;            response.setHeader("Content-disposition",&lt;br /&gt;                               "inline; filename=\"" + getFileName() + "\"");&lt;br /&gt;            output =&lt;br /&gt;                    new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE);&lt;br /&gt;&lt;br /&gt;            // Write file contents to response.&lt;br /&gt;            byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];&lt;br /&gt;            int length;&lt;br /&gt;            while ((length = input.read(buffer)) &gt; 0) {&lt;br /&gt;                output.write(buffer, 0, length);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            // Finalize task.&lt;br /&gt;            output.flush();&lt;br /&gt;        } finally {&lt;br /&gt;            // Gently close streams.&lt;br /&gt;            close((Closeable)output);&lt;br /&gt;            close((Closeable)input);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        // Inform JSF that it doesn't need to handle response.&lt;br /&gt;        // This is very important, otherwise you will get the following exception in the logs:&lt;br /&gt;        // java.lang.IllegalStateException: Cannot forward after response has been committed.&lt;br /&gt;        facesContext.responseComplete();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private static void close(Closeable resource) {&lt;br /&gt;        if (resource != null) {&lt;br /&gt;            try {&lt;br /&gt;                resource.close();&lt;br /&gt;            } catch (IOException e) {&lt;br /&gt;                // Do your thing with the exception. Print it, log it or mail it. It may be useful to&lt;br /&gt;                // know that this will generally only be thrown when the client aborted the download.&lt;br /&gt;                e.printStackTrace();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private String getFilePath() {&lt;br /&gt;        return "C:\\jdevstudio10133\\jdev\\mywork\\FOP\\ViewController\\src\\view\\";&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private String getFileName() {&lt;br /&gt;        return "EmpResultXML2PDF.pdf";&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-4465873787747941066?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/4465873787747941066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=4465873787747941066' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/4465873787747941066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/4465873787747941066'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2009/04/generate-pdf-report-in-adf.html' title='Generate PDF report in ADF'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-4941418815450860374</id><published>2009-04-21T09:23:00.000-07:00</published><updated>2009-04-26T01:01:57.535-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><title type='text'>Unexpected null value for literal data</title><content type='html'>&lt;div align="justify"&gt;: ) my first post on web services. I faced this issue in Jdeveloper 10g.&lt;br /&gt;Some times we developer’s faces an error during our developed, which irritates like anything. This will keep coming in office and in dreamsJ. For me the culprit was “unexpected null value for literal data”. You might be facing this error when you are sending request using web service proxy to server to perform some operation on the web service in question. This problem is not at the server side, but is thrown at the client side, when you are not setting the request fields to the web service.&lt;br /&gt;Now the question is how you can identify that which fields are required for the web service. The answer is in the WSDL using which you have generated the web proxy. Open your WSDL and check against each element the value for the attribute minOccur. If it is equal to one, it means that element is mandatory. If minOccur is zero, it means is an optional element. And if minOccur attribute is missing, it will take the default value equal to “1” which means it’s mandatory.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;a name="0.1_graphic02"&gt;&lt;/a&gt;&lt;img id="BLOGGER_PHOTO_ID_5327181480298355618" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 33px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_GUc3firYMZA/Se3zVOs5G6I/AAAAAAAAACw/KR3i8ymA8zY/s400/mail.jpg" border="0" /&gt;If you have fairly large WSDL and its difficult to identify and set the values, just go ahead and change your WSDL with all elements attribute property minOccur set to “0”.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-4941418815450860374?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/4941418815450860374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=4941418815450860374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/4941418815450860374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/4941418815450860374'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2009/04/unexpected-null-value-for-literal-data.html' title='Unexpected null value for literal data'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GUc3firYMZA/Se3zVOs5G6I/AAAAAAAAACw/KR3i8ymA8zY/s72-c/mail.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-3230296542275328141</id><published>2009-03-08T10:35:00.000-07:00</published><updated>2010-03-29T10:03:10.320-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 11g'/><title type='text'>Oracle ADF 11g Tutorial Application</title><content type='html'>&lt;span style="font-family:courier new;"&gt;ADF 11g is simply great. Though there are many documents provided my oracle for learning ADF 11g. But still I felt there are are need for more documents. So when I started learning ADF 11g, I decided to build the sample application and document it. And finally this weekend I got some time to finish up this document. Following is the link from where you can view/download the document.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/doc/13088674/Oracle-ADF-11g-Learning-Application-My-Procurement-Application"&gt;&lt;span style="font-family:courier new;"&gt;http://www.scribd.com/doc/13088674/Oracle-ADF-11g-Learning-Application-My-Procurement-Application&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;And following is the link for the sample application which I developed. This also includes the SQL script required to install the database objects.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vikadfsamples.googlecode.com/files/MyADFLearningApp.zip" target="_blank"&gt;MyADFLearningApp.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Hope you'll find it helpfull. Do let me know of any error's/suggestions to improve the doument.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-3230296542275328141?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/3230296542275328141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=3230296542275328141' title='62 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/3230296542275328141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/3230296542275328141'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2009/03/oracle-adf-11g-sample-application.html' title='Oracle ADF 11g Tutorial Application'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>62</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-6409884104650717103</id><published>2008-12-23T23:18:00.000-08:00</published><updated>2009-03-08T10:52:03.099-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 11g'/><title type='text'>Learning ADF</title><content type='html'>&lt;span style="font-family:courier new;"&gt;Now days I am learning ADF 11g and working on a sample example in Jdev 11g. For developers like me who had and still working on Oracle OAF and Oracle apps and what to learn ADF, it is very imporatnt to learn basic java, J2EE concepts as well as understanding XML and JSF concepts. Here are few links that I found usefull for learning these:-&lt;br /&gt;&lt;br /&gt;--&gt; Basic java - &lt;/span&gt;&lt;a href="http://java.sun.com/docs/books/tutorial/java/index.html"&gt;&lt;span style="font-family:courier new;"&gt;http://java.sun.com/docs/books/tutorial/java/index.html&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;--&gt; J2EE - &lt;/span&gt;&lt;a href="http://www.amazon.com/Certified-Component-Developer-Study-Companion/dp/0955160316"&gt;&lt;span style="font-family:courier new;"&gt;http://www.amazon.com/Certified-Component-Developer-Study-Companion/dp/0955160316&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;--&gt; JSF - &lt;/span&gt;&lt;a href="http://www.javapassion.com/j2ee/JSFBasics_speakernoted.pdf"&gt;&lt;span style="font-family:courier new;"&gt;http://www.javapassion.com/j2ee/JSFBasics_speakernoted.pdf&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;--&gt; XML concepts - &lt;/span&gt;&lt;a href="http://www.w3schools.com/xml/default.asp"&gt;&lt;span style="font-family:courier new;"&gt;http://www.w3schools.com/xml/default.asp&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;br /&gt;I will be posting my ADF 11g learning application by next year.&lt;br /&gt;&lt;br /&gt;Happy Learning.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-6409884104650717103?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/6409884104650717103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=6409884104650717103' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/6409884104650717103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/6409884104650717103'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/12/learning-adf.html' title='Learning ADF'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-4730964102306997882</id><published>2008-10-14T21:39:00.000-07:00</published><updated>2008-12-05T05:03:10.061-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>Call method on page load in ADF</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#000000;"&gt;&lt;strong&gt;call method on page load in ADF – [JDeveloper Version 10.1.3]&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In this example we will see how we can call a method inside your backing bean or application module when page is getting loaded.&lt;br /&gt;The scenario I am taking here is you have to show the current row index of the view object row on page load in ADF table column.&lt;br /&gt;1) Create a view object based on Job table in HR schema with name OnPageLoadJobVO. Do generate the VOImpl and VORowImpl java classes for the created view object.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://4.bp.blogspot.com/_GUc3firYMZA/SPV0ePx0RMI/AAAAAAAAABg/SiRlMG57WfM/s1600-h/untitled.JPG"&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5257236203005297858" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_GUc3firYMZA/SPV0ePx0RMI/AAAAAAAAABg/SiRlMG57WfM/s400/untitled.JPG" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;2) Add a transient variable inside your view object with name&lt;br /&gt;“myCurrentRowIndex”&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://3.bp.blogspot.com/_GUc3firYMZA/SPV0zN2f-uI/AAAAAAAAABo/tJGhUyEyRKI/s1600-h/untitled.JPG"&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5257236563265321698" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_GUc3firYMZA/SPV0zN2f-uI/AAAAAAAAABo/tJGhUyEyRKI/s400/untitled.JPG" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;&lt;br /&gt;&lt;br /&gt;3) Add the above created view Object inside your application module.&lt;br /&gt;4) Add the following code inside your application module Impl class. &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;code&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;public void setJobCurrentRowIndex() {&lt;br /&gt;System.out.println("I am here inside AM");&lt;br /&gt;OnPageLoadJobVOImpl vo = getOnPageLoadJobVO1();&lt;br /&gt;OnPageLoadJobVORowImpl row=null;&lt;br /&gt;long fetchedRowCount = vo.getEstimatedRowCount();&lt;br /&gt;RowSetIterator jobVoIter = vo.createRowSetIterator("jobVoIter");&lt;br /&gt;if (fetchedRowCount &amp;gt; 0)&lt;br /&gt;{&lt;br /&gt;jobVoIter.setRangeStart(0);&lt;br /&gt;jobVoIter.setRangeSize((int)fetchedRowCount);&lt;br /&gt;for (int count = 0; count &amp;lt; fetchedRowCount; count++)&lt;br /&gt;{&lt;br /&gt;row=(OnPageLoadJobVORowImpl)jobVoIter.getRowAtRangeIndex(count);&lt;br /&gt;row.setmyCurrentRowIndex(new Number(count));&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;jobVoIter.closeRowSetIterator();&lt;br /&gt;} &lt;/span&gt;&lt;br /&gt;5) Expose the above created method in application module to the client.&lt;br /&gt;6) Drag and drop the OnPageLoadJobVO object to your jspx page as ADF read only table.&lt;br /&gt;7) Create a new Managed bean using faces-config.xml with&lt;br /&gt;name= OnPageLoadBackingBean and &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;class= OnPageLoadBean&lt;br /&gt;&lt;/span&gt;&lt;a href="http://2.bp.blogspot.com/_GUc3firYMZA/SPWGFmUsy3I/AAAAAAAAABw/0PT3f29_bas/s1600-h/untitled.JPG"&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5257255570769759090" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_GUc3firYMZA/SPWGFmUsy3I/AAAAAAAAABw/0PT3f29_bas/s400/untitled.JPG" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/code&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;code&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;8) Copy and paste the following code inside your newly created managed bean class.&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;code&gt;&lt;span style="font-family:courier new;font-size:85%;color:#000000;"&gt;package viewlayer.backing;&lt;br /&gt;import javax.faces.application.Application;&lt;br /&gt;import javax.faces.context.FacesContext;&lt;br /&gt;import javax.faces.el.ValueBinding;&lt;br /&gt;import model.common.AppModule;&lt;br /&gt;import oracle.adf.controller.v2.lifecycle.Lifecycle;&lt;br /&gt;import oracle.adf.controller.v2.lifecycle.PagePhaseEvent;&lt;br /&gt;import oracle.adf.controller.v2.lifecycle.PagePhaseListener;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/code&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#000000;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;code&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;public class OnPageLoadBean implements PagePhaseListener{&lt;br /&gt;public OnPageLoadBean() {&lt;br /&gt;}&lt;br /&gt;public void afterPhase(PagePhaseEvent event) {&lt;br /&gt;}&lt;br /&gt;public void beforePhase(PagePhaseEvent event) {&lt;br /&gt;if (event.getPhaseId() == Lifecycle.PREPARE_MODEL_ID) {&lt;br /&gt;if (!isPostback())&lt;br /&gt;/*&lt;br /&gt;System.out.println("i am here inside backing bean");&lt;br /&gt;this.getApplicationModule().setJobCurrentRowIndex();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;private boolean isPostback() {&lt;br /&gt;return Boolean.TRUE.equals(resolveExpression("#{adfFacesContext.postback}"));&lt;br /&gt;}&lt;br /&gt;private Object resolveExpression(String expression) {&lt;br /&gt;FacesContext ctx = FacesContext.getCurrentInstance();&lt;br /&gt;Application app = ctx.getApplication();&lt;br /&gt;ValueBinding bind = app.createValueBinding(expression);&lt;br /&gt;return bind.getValue(ctx);&lt;br /&gt;}&lt;br /&gt;private AppModule getApplicationModule() {&lt;br /&gt;return (AppModule)resolveExpression ("#data.AppModuleDataControl.dataProvider}");&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;code&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;9) Right click on your jspx page and go to your page definition. Where set the attribute ControllerClass inside your pageDefinition tag as the name of the managed bean.&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;code&gt;&lt;/div&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_GUc3firYMZA/SPWHTFe_oUI/AAAAAAAAAB4/BbRhSTE9zQs/s1600-h/untitled.JPG"&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5257256901984362818" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_GUc3firYMZA/SPWHTFe_oUI/AAAAAAAAAB4/BbRhSTE9zQs/s400/untitled.JPG" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;color:#000000;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;color:#000000;"&gt;Run your page to check the results.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-4730964102306997882?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/4730964102306997882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=4730964102306997882' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/4730964102306997882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/4730964102306997882'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/10/call-method-on-page-load-in-adf.html' title='Call method on page load in ADF'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GUc3firYMZA/SPV0ePx0RMI/AAAAAAAAABg/SiRlMG57WfM/s72-c/untitled.JPG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-2842244161575325258</id><published>2008-10-14T21:32:00.000-07:00</published><updated>2008-12-05T05:03:47.795-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>Add new row in ADF table on button click</title><content type='html'>&lt;span style="font-family:courier new;"&gt;&lt;strong&gt;Add new row in ADF table on button click – [JDeveloper Version 10.1.3] &lt;/strong&gt;&lt;br /&gt;In this example we will add a new row at last position in an ADF table. I am taking an example of Employee table in HR schema. We need this approach if we want to create an empty row in ADF table and then initialize it with some values or to add the empty row at the end of the table.&lt;br /&gt;&lt;br /&gt;Step 1) Create a new Employee View Object(say EmpViewObjEOBased) based on an Employee Entity object.&lt;br /&gt;&lt;br /&gt;Step 2) Add the above view object in your application module.&lt;br /&gt;&lt;br /&gt;Step 3) Drop it on your page as a ADF table (not as ADF readonly table).&lt;br /&gt;&lt;br /&gt;Step 4) Add the following code inside your application module class.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;public void createRow() {&lt;br /&gt;Row newRow = getEmpViewObjEOBased1().createRow();&lt;br /&gt;newRow.setNewRowState(Row.STATUS_INITIALIZED);&lt;br /&gt;//get instance of the above created view object&lt;br /&gt;ViewObjectImpl vo=getEmpViewObjEOBased1();&lt;br /&gt;// to insert row at the end of the table&lt;br /&gt;vo.insertRowAtRangeIndex(vo.getRangeSize()-1,newRow);&lt;br /&gt;System.out.println(getEmpViewObjEOBased1().getCurrentRowIndex());&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;If you want to insert the row at the begening of the table replace line vo.insertRowAtRangeIndex(vo.getRangeSize()-1,newRow); with&lt;br /&gt;vo.insertRow(newRow);&lt;br /&gt;&lt;br /&gt;Step 5) Expose this application module method to client.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_GUc3firYMZA/SPVzMHClxkI/AAAAAAAAABQ/b5taKVD29VM/s1600-h/untitled.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5257234791910458946" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_GUc3firYMZA/SPVzMHClxkI/AAAAAAAAABQ/b5taKVD29VM/s400/untitled.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;This will expose the method to be used in UI and method will appear in the data control.&lt;br /&gt;&lt;br /&gt;Step 6) Drop the createRow button inside the “Table facets-&gt;action” as a ADF command button.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_GUc3firYMZA/SPVzcNMXBfI/AAAAAAAAABY/1eRf7fazw-E/s1600-h/untitled.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5257235068439954930" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_GUc3firYMZA/SPVzcNMXBfI/AAAAAAAAABY/1eRf7fazw-E/s400/untitled.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;Now run your page and check the result...&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-2842244161575325258?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/2842244161575325258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=2842244161575325258' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/2842244161575325258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/2842244161575325258'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/10/add-new-row-in-adf-table-on-button.html' title='Add new row in ADF table on button click'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GUc3firYMZA/SPVzMHClxkI/AAAAAAAAABQ/b5taKVD29VM/s72-c/untitled.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-2365541031644503111</id><published>2008-10-08T05:35:00.000-07:00</published><updated>2008-12-05T05:04:12.244-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 11g'/><title type='text'>Jdeveloper 11g production</title><content type='html'>Finally after much of wait , Jdeveloper 11g productions is released and is&lt;br /&gt;Ready for download.&lt;br /&gt;&lt;a href="http://www.oracle.com/technology/software/products/jdev/htdocs/soft11.html"&gt;http://www.oracle.com/technology/software/products/jdev/htdocs/soft11.html&lt;/a&gt; .&lt;br /&gt;&lt;p&gt;JDeveloper 11g — Online Demonstrations&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.oracle.com/technology/products/jdev/viewlets/11/index.html"&gt;http://www.oracle.com/technology/products/jdev/viewlets/11/index.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Documentation and Developer guide&lt;/p&gt;&lt;p&gt;&lt;a href="http://download.oracle.com/docs/cd/E12839_01/index.htm"&gt;http://download.oracle.com/docs/cd/E12839_01/index.htm&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-2365541031644503111?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/2365541031644503111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=2365541031644503111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/2365541031644503111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/2365541031644503111'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/10/jdeveloper-11g-production.html' title='Jdeveloper 11g production'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-1337430710656219751</id><published>2008-10-08T05:25:00.000-07:00</published><updated>2008-12-05T05:03:47.796-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>Important code samples commonly used in ADF</title><content type='html'>&lt;p align="justify"&gt;&lt;span style="font-family:courier new;"&gt;In this post I am listing up important code samples commonly used in ADF .&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Code to access the application module methods from the managed bean&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;To make sure that your application module method is accessible from the view layer, in the application module editor, do shift the method from “Avaliable” to “Selected List” under the client interface option.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;        FacesContext fc = FacesContext.getCurrentInstance();&lt;br /&gt;        ValueBinding vb = fc.getApplication().createValueBinding("#{data}");&lt;br /&gt;        BindingContext bc = (BindingContext)vb.getValue(fc);&lt;br /&gt;        DCDataControl dc  = bc.findDataControl("HRAppModuleDataControl");&lt;br /&gt;        ApplicationModule am = (ApplicationModule)dc.getDataProvider();&lt;br /&gt;        HRAppModule hrAm = (HRAppModule)am;&lt;br /&gt;        hrAm.setCurrentEmpRow(empId1);&lt;/p&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;"&gt;In the above example HRAppModuleDataControl is the Data control used in your application.You can find the exact name used in your application in the DataBindings.cpx file inside the &lt;bc4jdatacontrol id="HRAppModuleDataControl"&gt;.HRAppModule is the Application module client interface class. And setCurrentEmpRow is the method inside the Applicatin module which is need to be called.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Code to access the page bindings from the Managed bean&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;DCBindingContainer bc1 = this.getBindings();&lt;br /&gt;String empId1 = bc1.findIteratorBinding("EmpDeptTableIterator").&lt;br /&gt;getCurrentRow().getAttribute("EmployeeId").toString();&lt;br /&gt;&lt;br /&gt;In the above example EmpDeptTableIterator is the iterator name from which I want to access the EmployeeId.&lt;br /&gt;&lt;br /&gt;In the above example getBinding() refers to the method which returns the object of type DCBindingContainer. If its not already there, add the following code snippet to your same managed bean.&lt;br /&gt;&lt;br /&gt;private DCBindingContainer bindings;&lt;br /&gt;public DCBindingContainer getBindings()&lt;br /&gt;{ return bindings;&lt;br /&gt;}&lt;br /&gt;public void setBindings(DCBindingContainer bindings)&lt;br /&gt;{ this.bindings = bindings; }&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:courier new;"&gt;An inside your faces-config.xml add the following managed property inside your managed bean. &lt;br /&gt;&amp;lt;managed-property&amp;gt;      &lt;br /&gt;        &amp;lt;property-name&amp;gt;bindings&amp;lt;/property-name&amp;gt;      &lt;br /&gt;        &amp;lt;property-class&amp;gt;oracle.adf.model.binding.DCBindingContainer&amp;lt;/property-class&amp;gt;      &lt;br /&gt;        &amp;lt;value&amp;gt;#{bindings}&amp;lt;/value&amp;gt;    &lt;br /&gt;    &amp;lt;/managed-property&amp;gt&lt;br /&gt;&lt;property-name&gt;&lt;/p&gt;&lt;/MANAGED-PROPERTY&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-1337430710656219751?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/1337430710656219751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=1337430710656219751' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/1337430710656219751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/1337430710656219751'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/10/important-code-samples-commonly-used-in.html' title='Important code samples commonly used in ADF'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-2680120848941979256</id><published>2008-10-08T04:30:00.000-07:00</published><updated>2008-12-05T05:03:47.797-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>How to create the Simple Login page in ADF</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;I am using the employee table in HR schema , where I am using the employee first name as the user name and the employee last name as the password. We will create three jsf pages. On valid user name password user will navigate to success page and on error it will navigate to failure page&lt;br /&gt;&lt;br /&gt;Step 1) Create a read only View Object with bind variable with name EmpLoginViewObj. Following is the SQL query:-&lt;br /&gt;SELECT&lt;br /&gt;EMPLOYEES.EMPLOYEE_ID EMPLOYEE_ID,&lt;br /&gt;EMPLOYEES.FIRST_NAME FIRST_NAME,&lt;br /&gt;EMPLOYEES.LAST_NAME LAST_NAME&lt;br /&gt;FROM&lt;br /&gt;EMPLOYEES&lt;br /&gt;WHERE EMPLOYEES.LAST_NAME =:LastName&lt;br /&gt;&lt;br /&gt;Create the bind variable with name LastName. Make sue that you are generating the ViewObjImpl class for the above created view object.&lt;br /&gt;&lt;br /&gt;Step 2) Add the above created View object in the Application module.&lt;br /&gt;&lt;br /&gt;Step 3) Add the following code in the application module's Java Impl class&lt;br /&gt;&lt;br /&gt;public void checkLoginCredentials(String ename,String pwd_form)&lt;br /&gt;{&lt;br /&gt;System.out.println(ename + " " + pwd_form);&lt;br /&gt;EmpLoginViewObjImpl vo = (EmpLoginViewObjImpl)getEmpLoginViewObj1();&lt;br /&gt;//set the bind variable value to last name&lt;br /&gt;vo.setNamedWhereClauseParam("LastName",pwd_form);&lt;br /&gt;vo.executeQuery();&lt;br /&gt;int rowCount=vo.getEstimatedRangePageCount();&lt;br /&gt;System.out.println("rowCount="+rowCount);&lt;br /&gt;if(rowCount==0) {&lt;br /&gt;throw new JboException("Password doesn't match");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Import oracle.jbo.JboException class in the AMImpl class.&lt;br /&gt;&lt;br /&gt;Step 4) Expose the above method in the Client Interface of the application module.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;Now the method checkLoginCredentials will appear in the data control palette.&lt;br /&gt;&lt;br /&gt;Step 5) Create three jspx pages. LoginPage.jspx, WelcomePage.jspx and FaliurePage.jspx&lt;br /&gt;&lt;br /&gt;Step 6) Drag and drop the checkLoginCredentials on your LoginPage.jspx page as the parameter-&gt;ADF parameter Form.&lt;br /&gt;&lt;br /&gt;Step 7) Double click the command button on LoginPgae.jspx and define a new action binding by first defining the managed bean(with Name backing_LoginPage) and action binding method name as loginBtn_action()&lt;br /&gt;&lt;br /&gt;Step 8) Add the following code inside your loginBtn_action() method.&lt;br /&gt;&lt;br /&gt;public String commandButton_action() ()&lt;br /&gt;{&lt;br /&gt;String returnStr="error";&lt;br /&gt;System.out.println("Inside loginBtn_action");&lt;br /&gt;BindingContainer bindings = getBindings();&lt;br /&gt;OperationBinding operationBinding =&lt;br /&gt;bindings.getOperationBinding("checkLoginCredentails");&lt;br /&gt;Object result = operationBinding.execute();&lt;br /&gt;System.out.println(result);&lt;br /&gt;if (operationBinding.getErrors().isEmpty()) {&lt;br /&gt;returnStr= "success";&lt;br /&gt;}&lt;br /&gt;System.out.println("returnStr= " + returnStr);&lt;br /&gt;return returnStr;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Step 8 ) Set the navigation rule as&lt;br /&gt;&amp;lt;navigation-rule&amp;gt;&lt;br /&gt;    &amp;lt;from-view-id&amp;gt;/LoginPage.jspx&amp;lt;/from-view-id&amp;gt;&lt;br /&gt;    &amp;lt;navigation-case&amp;gt;&lt;br /&gt;      &amp;lt;from-action&amp;gt;#{backing_LoginPage.commandButton_action}&amp;lt;/from-action&amp;gt;&lt;br /&gt;      &amp;lt;from-outcome&amp;gt;success&amp;lt;/from-outcome&amp;gt;&lt;br /&gt;      &amp;lt;to-view-id&amp;gt;/WelcomePage.jspx&amp;lt;/to-view-id&amp;gt;&lt;br /&gt;    &amp;lt;/navigation-case&amp;gt;&lt;br /&gt;    &amp;lt;navigation-case&amp;gt;&lt;br /&gt;      &amp;lt;from-action&amp;gt;#{backing_LoginPage.commandButton_action}&amp;lt;/from-action&amp;gt;&lt;br /&gt;      &amp;lt;from-outcome&amp;gt;error&amp;lt;/from-outcome&amp;gt;&lt;br /&gt;      &amp;lt;to-view-id&amp;gt;/FaliurePage.jspx&amp;lt;/to-view-id&amp;gt;&lt;br /&gt;    &amp;lt;/navigation-case&amp;gt;&lt;br /&gt;  &amp;lt;/navigation-rule&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;run your login page to check the results.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-2680120848941979256?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/2680120848941979256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=2680120848941979256' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/2680120848941979256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/2680120848941979256'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/10/how-to-create-simple-login-page-in-adf.html' title='How to create the Simple Login page in ADF'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-8338554168793927351</id><published>2008-10-06T02:15:00.000-07:00</published><updated>2008-12-05T05:03:47.797-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>How to apply the CSS in the ADF Application</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;ADF applications are provided by three default skins :-&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Courier New;"&gt;1) oracle 2) simple 3) minimal. thought these skins provide good look and feel but what if you have to add your own skin in your ADF applications......&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;A skin consists of the following artifacts:&lt;br /&gt;-&gt; A CSS file that defines the actual look of the components&lt;br /&gt;-&gt; A configuration file. In our case it will be "adf-faces-skins.xml" which lists up all skins available for our application (not including Oracle, Minimal, and Simple). This file has to be located in your applications WEB-INF directory&lt;br /&gt;-&gt; An entry in the ADF Faces configuration file - adf-faces-config.xml&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Creating a CSS file:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1) Right-click the project that contains the code for the user interface and choose&lt;br /&gt;2) New to open the New Gallery.&lt;br /&gt;3) In the New Gallery, expand the Web Tier node and select HTML.&lt;br /&gt;4) Double-click CSS File.&lt;br /&gt;5) Complete the Create Cascading Style Sheet dialog by giving CSS name.&lt;br /&gt;6) Add various styles according to your requirement in the CSS&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Register the CSS file:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1) Right-click your view project and choose New to open the New Gallery.&lt;br /&gt;2) The New Gallery launches. The file launches in the Source editor.&lt;br /&gt;In the Categories tree on the left, select XML. If XML is not displayed, use the&lt;br /&gt;Filter By dropdown list at the top to select All Technologies.&lt;br /&gt;3) In the Items list, select XML Document and click OK.&lt;br /&gt;4) Name the file adf-faces-skins.xml, place it in the &lt;view_project_name&gt;/WEB-INF directory, and click OK.&lt;br /&gt;5) Replace the generated code with the code shown in&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;&lt;br /&gt;&amp;lt;skins xmlns="http://xmlns.oracle.com/adf/view/faces/skin"&gt;&lt;br /&gt;&amp;lt;skin&gt;&lt;br /&gt;&amp;lt;id&amp;gt;id name&amp;lt;/id&gt;&lt;br /&gt;&amp;lt;family&amp;gt;family name&amp;lt;/family&gt;&lt;br /&gt;&amp;lt;render-kit-id&gt;oracle.adf.desktop&amp;lt;/render-kit-id&gt;&lt;br /&gt;&amp;lt;style-sheet-name&gt;path to CSS&amp;lt;/style-sheet-name&gt;&lt;br /&gt;&amp;lt;/skin&gt;&lt;br /&gt;&amp;lt;/skins&gt; &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;For example&lt;/span&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_GUc3firYMZA/SOno2HkjO5I/AAAAAAAAABA/iqfM0BjOUeo/s1600-h/sample.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5253986456747326354" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_GUc3firYMZA/SOno2HkjO5I/AAAAAAAAABA/iqfM0BjOUeo/s400/sample.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;strong&gt;Configure an application to use a skin:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1) Open the adf-faces-config.xml file.&lt;br /&gt;2) Replace the &amp;lt;skin-family&amp;amp;gt value with the family name for the skin you wish to use&lt;/span&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_GUc3firYMZA/SOnpmUYgDAI/AAAAAAAAABI/wAZWfP0fPPw/s1600-h/sample.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5253987284820167682" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_GUc3firYMZA/SOnpmUYgDAI/AAAAAAAAABI/wAZWfP0fPPw/s400/sample.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-8338554168793927351?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/8338554168793927351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=8338554168793927351' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/8338554168793927351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/8338554168793927351'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/10/how-to-apply-css-in-adf-application.html' title='How to apply the CSS in the ADF Application'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_GUc3firYMZA/SOno2HkjO5I/AAAAAAAAABA/iqfM0BjOUeo/s72-c/sample.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-2918151593280687810</id><published>2008-05-07T04:15:00.000-07:00</published><updated>2008-12-05T05:03:47.797-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>ADF Learning 8 - Hierarchial Tree</title><content type='html'>&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="-634906508" name="-634906508" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2900000&amp;access_key=key-1dqa2pey13a1t2qhfrfd&amp;page=&amp;version=1&amp;auto_size=true"&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;  &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=2900000&amp;access_key=key-1dqa2pey13a1t2qhfrfd&amp;page=&amp;version=1&amp;auto_size=true" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="-634906508_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div style="font-size:10px;text-align:center;width:100%"&gt;&lt;a href="http://www.scribd.com/doc/2900000/Lesson-8-Hierarchial-Tree"&gt;Lesson 8 - Hierarchial Tree&lt;/a&gt; - &lt;a href="http://www.scribd.com/upload"&gt;Upload a doc&lt;/a&gt;&lt;/div&gt;&lt;div style="display:none"&gt; Read this doc on Scribd: &lt;a href="http://www.scribd.com/doc/2900000/Lesson-8-Hierarchial-Tree"&gt;Lesson 8 - Hierarchial Tree&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-2918151593280687810?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/2918151593280687810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=2918151593280687810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/2918151593280687810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/2918151593280687810'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/05/learning-8-hierarchial-tree.html' title='ADF Learning 8 - Hierarchial Tree'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-3408645534753073809</id><published>2008-04-25T07:46:00.000-07:00</published><updated>2008-12-05T05:03:47.798-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>ADF Learning 7 - Show Hide button in ADF faces</title><content type='html'>&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="-635539398" name="-635539398" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2899979&amp;access_key=key-14jacjzzxsackm8bewzu&amp;page=&amp;version=1&amp;auto_size=true"&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;  &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=2899979&amp;access_key=key-14jacjzzxsackm8bewzu&amp;page=&amp;version=1&amp;auto_size=true" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="-635539398_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div style="font-size:10px;text-align:center;width:100%"&gt;&lt;a href="http://www.scribd.com/doc/2899979/Lesson-7-Show-Hide-button-in-ADF-faces"&gt;Lesson 7 - Show Hide button in ADF faces&lt;/a&gt; - &lt;a href="http://www.scribd.com/upload"&gt;Upload a doc&lt;/a&gt;&lt;/div&gt;&lt;div style="display:none"&gt; Read this doc on Scribd: &lt;a href="http://www.scribd.com/doc/2899979/Lesson-7-Show-Hide-button-in-ADF-faces"&gt;Lesson 7 - Show Hide button in ADF faces&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-3408645534753073809?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/3408645534753073809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=3408645534753073809' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/3408645534753073809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/3408645534753073809'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/04/adf-learning-7-show-hide-button-in-adf.html' title='ADF Learning 7 - Show Hide button in ADF faces'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-1465568431883604487</id><published>2008-04-25T07:45:00.000-07:00</published><updated>2008-12-05T05:03:47.799-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>ADF Learning 6 - Dependent List Boxes</title><content type='html'>&lt;div style="display:none"&gt;&lt;script&gt;document.write('&lt;noscript&gt;');&lt;/script&gt;&lt;/div&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="embedded_flash_2633296_magpx_object" name="embedded_flash_2633296_magpx_object" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2633296&amp;access_key=key-2bu1c4vsq9a6rxzihb6b&amp;page=&amp;version=1"&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;  &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=2633296&amp;access_key=key-2bu1c4vsq9a6rxzihb6b&amp;page=&amp;version=1" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="embedded_flash_2633296_magpx_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div style="display:none"&gt; &lt;/noscript&gt; &lt;script type="text/javascript" src='http://www.scribd.com/javascripts/view.js'&gt;&lt;/script&gt;&lt;/div&gt;&lt;div id='embedded_flash_2633296_magpx' style="width:100%;height:100%"&gt;&lt;span style="display:none"&gt;Read this doc on Scribd: &lt;a href="http://www.scribd.com/doc/2633296/ADF-Learning-6-Dependent-List-Boxes"&gt;ADF Learning 6 - Dependent List Boxes&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;div style="display:none"&gt;&lt;script type="text/javascript"&gt;  var scribd_doc = new scribd.Document(2633296, 'key-2bu1c4vsq9a6rxzihb6b');       scribd_doc.write('embedded_flash_2633296_magpx');&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-1465568431883604487?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/1465568431883604487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=1465568431883604487' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/1465568431883604487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/1465568431883604487'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/04/adf-learning-6-dependent-list-boxes.html' title='ADF Learning 6 - Dependent List Boxes'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-1111427729450451479</id><published>2008-04-25T07:42:00.000-07:00</published><updated>2008-12-05T05:03:47.799-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>ADF Learning 5 - Search an Employee</title><content type='html'>&lt;div style="display:none"&gt;&lt;script&gt;document.write('&lt;noscript&gt;');&lt;/script&gt;&lt;/div&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="embedded_flash_2633286_17myrf_object" name="embedded_flash_2633286_17myrf_object" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2633286&amp;access_key=key-1l7ji1ilfdeyv30s7add&amp;page=&amp;version=1"&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;  &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=2633286&amp;access_key=key-1l7ji1ilfdeyv30s7add&amp;page=&amp;version=1" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="embedded_flash_2633286_17myrf_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div style="display:none"&gt; &lt;/noscript&gt; &lt;script type="text/javascript" src='http://www.scribd.com/javascripts/view.js'&gt;&lt;/script&gt;&lt;/div&gt;&lt;div id='embedded_flash_2633286_17myrf' style="width:100%;height:100%"&gt;&lt;span style="display:none"&gt;Read this doc on Scribd: &lt;a href="http://www.scribd.com/doc/2633286/ADF-Learning-5-Search-an-Employee"&gt;ADF Learning 5 - Search an Employee&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;div style="display:none"&gt;&lt;script type="text/javascript"&gt;  var scribd_doc = new scribd.Document(2633286, 'key-1l7ji1ilfdeyv30s7add');       scribd_doc.write('embedded_flash_2633286_17myrf');&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-1111427729450451479?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/1111427729450451479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=1111427729450451479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/1111427729450451479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/1111427729450451479'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/04/adf-learning-5-search-employee.html' title='ADF Learning 5 - Search an Employee'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-4703153831762084657</id><published>2008-04-25T07:41:00.001-07:00</published><updated>2008-12-05T05:03:47.800-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>ADF Learning 4 - Create Employee page</title><content type='html'>&lt;div style="display:none"&gt;&lt;script&gt;document.write('&lt;noscript&gt;');&lt;/script&gt;&lt;/div&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="embedded_flash_2633261_83pz1_object" name="embedded_flash_2633261_83pz1_object" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2633261&amp;access_key=key-201fxofn6l36vsp2esmc&amp;page=&amp;version=1"&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;  &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=2633261&amp;access_key=key-201fxofn6l36vsp2esmc&amp;page=&amp;version=1" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="embedded_flash_2633261_83pz1_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div style="display:none"&gt; &lt;/noscript&gt; &lt;script type="text/javascript" src='http://www.scribd.com/javascripts/view.js'&gt;&lt;/script&gt;&lt;/div&gt;&lt;div id='embedded_flash_2633261_83pz1' style="width:100%;height:100%"&gt;&lt;span style="display:none"&gt;Read this doc on Scribd: &lt;a href="http://www.scribd.com/doc/2633261/ADF-Learning-4-Create-Employee-page"&gt;ADF Learning 4 - Create Employee page&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;div style="display:none"&gt;&lt;script type="text/javascript"&gt;  var scribd_doc = new scribd.Document(2633261, 'key-201fxofn6l36vsp2esmc');       scribd_doc.write('embedded_flash_2633261_83pz1');&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-4703153831762084657?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/4703153831762084657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=4703153831762084657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/4703153831762084657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/4703153831762084657'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/04/adf-learning-4-create-employee-page.html' title='ADF Learning 4 - Create Employee page'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-3477210724584350064</id><published>2008-04-25T07:34:00.001-07:00</published><updated>2008-12-05T05:03:47.800-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>ADF Learning 3 - Navigating to detail page</title><content type='html'>&lt;div style="display:none"&gt;&lt;script&gt;document.write('&lt;noscript&gt;');&lt;/script&gt;&lt;/div&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="embedded_flash_2633252_phcxd_object" name="embedded_flash_2633252_phcxd_object" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2633252&amp;access_key=key-r8d86d5dwpbc4slzmu6&amp;page=&amp;version=1"&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;  &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=2633252&amp;access_key=key-r8d86d5dwpbc4slzmu6&amp;page=&amp;version=1" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="embedded_flash_2633252_phcxd_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div style="display:none"&gt; &lt;/noscript&gt; &lt;script type="text/javascript" src='http://www.scribd.com/javascripts/view.js'&gt;&lt;/script&gt;&lt;/div&gt;&lt;div id='embedded_flash_2633252_phcxd' style="width:100%;height:100%"&gt;&lt;span style="display:none"&gt;Read this doc on Scribd: &lt;a href="http://www.scribd.com/doc/2633252/ADF-Learning-3-Navigating-to-detail-page"&gt;ADF Learning 3 - Navigating to detail page&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;div style="display:none"&gt;&lt;script type="text/javascript"&gt;  var scribd_doc = new scribd.Document(2633252, 'key-r8d86d5dwpbc4slzmu6');       scribd_doc.write('embedded_flash_2633252_phcxd');&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-3477210724584350064?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/3477210724584350064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=3477210724584350064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/3477210724584350064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/3477210724584350064'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/04/adf-learning-3-navigating-to-detail.html' title='ADF Learning 3 - Navigating to detail page'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-8241768272496586268</id><published>2008-04-25T07:31:00.001-07:00</published><updated>2008-12-05T05:03:47.801-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>ADF Learning 2 - Displaying Data on the page</title><content type='html'>&lt;div style="display:none"&gt;&lt;script&gt;document.write('&lt;noscript&gt;');&lt;/script&gt;&lt;/div&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="embedded_flash_2633235_tuzm9_object" name="embedded_flash_2633235_tuzm9_object" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2633235&amp;access_key=key-1z8xsxyhbozbckh5hg5n&amp;page=&amp;version=1"&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;  &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=2633235&amp;access_key=key-1z8xsxyhbozbckh5hg5n&amp;page=&amp;version=1" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="embedded_flash_2633235_tuzm9_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div style="display:none"&gt; &lt;/noscript&gt; &lt;script type="text/javascript" src='http://www.scribd.com/javascripts/view.js'&gt;&lt;/script&gt;&lt;/div&gt;&lt;div id='embedded_flash_2633235_tuzm9' style="width:100%;height:100%"&gt;&lt;span style="display:none"&gt;Read this doc on Scribd: &lt;a href="http://www.scribd.com/doc/2633235/ADF-Learning-2-Displaying-Data-on-the-page"&gt;ADF Learning 2 - Displaying Data on the page&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;div style="display:none"&gt;&lt;script type="text/javascript"&gt;  var scribd_doc = new scribd.Document(2633235, 'key-1z8xsxyhbozbckh5hg5n');       scribd_doc.write('embedded_flash_2633235_tuzm9');&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-8241768272496586268?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/8241768272496586268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=8241768272496586268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/8241768272496586268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/8241768272496586268'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/04/adf-learning-2-displaying-data-on-page.html' title='ADF Learning 2 - Displaying Data on the page'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-1318913959457511332</id><published>2008-04-25T07:25:00.000-07:00</published><updated>2008-12-05T05:03:47.801-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>ADF Learning 1 - Hello World</title><content type='html'>&lt;div style="display:none"&gt;&lt;script&gt;document.write('&lt;noscript&gt;');&lt;/script&gt;&lt;/div&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="embedded_flash_2633151_2vti7_object" name="embedded_flash_2633151_2vti7_object" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2633151&amp;access_key=key-181a5ruezzg13c87twf6&amp;page=&amp;version=1"&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;  &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=2633151&amp;access_key=key-181a5ruezzg13c87twf6&amp;page=&amp;version=1" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="embedded_flash_2633151_2vti7_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div style="display:none"&gt; &lt;/noscript&gt; &lt;script type="text/javascript" src='http://www.scribd.com/javascripts/view.js'&gt;&lt;/script&gt;&lt;/div&gt;&lt;div id='embedded_flash_2633151_2vti7' style="width:100%;height:100%"&gt;&lt;span style="display:none"&gt;Read this doc on Scribd: &lt;a href="http://www.scribd.com/doc/2633151/ADF-Learning-1-Hello-World"&gt;ADF Learning 1 - Hello World&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;div style="display:none"&gt;&lt;script type="text/javascript"&gt;  var scribd_doc = new scribd.Document(2633151, 'key-181a5ruezzg13c87twf6');       scribd_doc.write('embedded_flash_2633151_2vti7');&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-1318913959457511332?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/1318913959457511332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=1318913959457511332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/1318913959457511332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/1318913959457511332'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/04/adf-learning-1-hello-world_6839.html' title='ADF Learning 1 - Hello World'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-8209087830069288361</id><published>2008-04-24T07:47:00.000-07:00</published><updated>2008-12-05T05:03:47.802-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF 10g'/><title type='text'>Starting up with ADF</title><content type='html'>Few weeks back I started learning ADF. I have just a start it. Most of the learnings shared here are based on the HR schema tables. Do let me know if you find any diffculty in any of the learnings.&lt;br /&gt;To view all the post clealy click on the Scribd icon &lt;a href="http://1.bp.blogspot.com/_GUc3firYMZA/SBHxpk8PWAI/AAAAAAAAAA4/-h6qF3MN61Y/s1600-h/Scribd.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5193197541928163330" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_GUc3firYMZA/SBHxpk8PWAI/AAAAAAAAAA4/-h6qF3MN61Y/s400/Scribd.bmp" border="0" /&gt;&lt;/a&gt; in the tool bar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-8209087830069288361?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/8209087830069288361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=8209087830069288361' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/8209087830069288361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/8209087830069288361'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/04/starting-up-with-adf.html' title='Starting up with ADF'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GUc3firYMZA/SBHxpk8PWAI/AAAAAAAAAA4/-h6qF3MN61Y/s72-c/Scribd.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-3334298801681544804</id><published>2008-04-08T02:29:00.000-07:00</published><updated>2008-12-05T05:04:35.872-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OAF'/><title type='text'>Help Questions in OAF.......part -3</title><content type='html'>&lt;div align="justify"&gt;Q: &lt;strong&gt;To construct an oracle.jbo.domain.Date object for current JVM system time?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;oracle.jbo.domain.Date currentJvmDate = new oracle.jbo.domain.Date(System.currentTimeMillis());&lt;br /&gt;Q: &lt;strong&gt;To construct an oracle.jbo.domain.Date object for current database system time?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;oracle.jbo.domain.Date currentDbDate =rootAM.getOADBTransaction().getCurrentDBDate();&lt;br /&gt;Q: &lt;strong&gt;To determine if an oracle.jbo.domain.Date is the passedDate?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;public boolean isPassedDate(Date value)&lt;br /&gt;{&lt;br /&gt;// ensures that this mandatory attribute has a nonnull&lt;br /&gt;value.&lt;br /&gt;if (value != null)&lt;br /&gt;{&lt;br /&gt;OADBTransaction transaction = this.getOADBTransaction();&lt;br /&gt;long sysdate = transaction.getCurrentDBDate().dateValue().getTime();&lt;br /&gt;long startDate = value.dateValue().getTime();&lt;br /&gt;if (startDate &lt; sysdate)&lt;br /&gt;{&lt;br /&gt;return true;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;Q: &lt;strong&gt;To round off the real number upto two digits?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;public String roundOffToTwoDigit(String number)&lt;br /&gt;{&lt;br /&gt;DecimalFormat formatter= new DecimalFormat("###.##");&lt;br /&gt;double numberD = Double.parseDouble(number);&lt;br /&gt;return formatter.format(numberD);&lt;br /&gt;}&lt;br /&gt;public double roundOffToTwoDigit(double number)&lt;br /&gt;{&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;DecimalFormat formatter= new DecimalFormat("#.00");&lt;br /&gt;formatter.setMaximumFractionDigits(2);&lt;br /&gt;formatter.setMinimumFractionDigits(2);&lt;br /&gt;return new Double(formatter.format(number)).doubleValue();&lt;br /&gt;}&lt;br /&gt;catch(java.lang.NumberFormatException e)&lt;br /&gt;{&lt;br /&gt;e.printStackTrace();&lt;br /&gt;}&lt;br /&gt;return 0.0;&lt;br /&gt;}&lt;br /&gt;Q: &lt;strong&gt;I have an entity object-based view object and I use vo.clearCache.However I am getting  oracle.jbo.TooManyObjectsException?How to solve this?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;When you  clear the view object cache with vo.clearCache(), it does NOT clear the entity cache nor change the states of entities. Thus, if you try to insert the row with a key value that already exists in the entity cache; you get TooManyObjectsException.The solution is to remove on all&lt;br /&gt;the rows in the view object. &lt;/div&gt;&lt;div align="justify"&gt;Q: &lt;strong&gt;When I am trying to insert a record through OAF page, I am getting oracle.jbo.TooManyObjectsException? How to solve this?&lt;/strong&gt;&lt;br /&gt;Answer:&lt;br /&gt;&lt;strong&gt;Possible reason could be of inserting the record with duplicate primary key.&lt;br /&gt;&lt;/strong&gt;Q: &lt;strong&gt;How do I determine the transaction state -- that is, whether changes have been made to view objects or not?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;We can use &lt;/div&gt;&lt;div align="justify"&gt;--&gt;ApplicationModule.getTransaction().isDirty() - This method tells you whether the transaction contains any changes in the view objects. This works for transactions made by entity object-based view objects only.&lt;br /&gt;--&gt;OAViewObject.isDirty() - This method tells you whether a particular view object contains changes or not. This works for both entity object-based view objects and view objects&lt;br /&gt;based on OAPlsqlViewObjectImpl &lt;/div&gt;&lt;div align="justify"&gt;--&gt; Or we can achieve it declarativaly by setting the Warn About changes property against the item for which we want the System to generate the Warn About change warning. But if your view Contains many transient variables which are getting defaulted at page load, then you can use the following method:-&lt;br /&gt;/* @sourceVO: source VO contains the data in the UI&lt;br /&gt;* @destVO: dest VO contains the data fetched from the&lt;br /&gt;database, should not be&lt;br /&gt;* based on EO&lt;br /&gt;*/&lt;br /&gt;private boolean isVODataDirty(ViewObjectImpl sourceVO,&lt;br /&gt;ViewObjectImpl destVO)&lt;br /&gt;{&lt;br /&gt;boolean dirtyDataFlag=false;&lt;br /&gt;if (sourceVO == null  destVO == null)&lt;br /&gt;{&lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;else if(sourceVO.getRowCount()!=destVO.getRowCount())&lt;br /&gt;{&lt;br /&gt;return true;&lt;br /&gt;}&lt;br /&gt;AttributeDef[] attrDefs = sourceVO.getAttributeDefs();&lt;br /&gt;int attrCount = (attrDefs == null)? 0 : attrDefs.length;&lt;br /&gt;/*if no attributes are there in the VO*/&lt;br /&gt;if (attrCount == 0)&lt;br /&gt;{&lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;/* Create a row set iterator on the source view object&lt;br /&gt;to use for copy operation*/&lt;br /&gt;RowSetIterator compareIter = sourceVO.findRowSetIterator("compareIter");&lt;br /&gt;if (compareIter == null)&lt;br /&gt;{&lt;br /&gt;compareIter = sourceVO.createRowSetIterator("compareIter");&lt;br /&gt;}&lt;br /&gt;int count=0;&lt;br /&gt;/*Sets the range size for the iterator,-1 for all&lt;br /&gt;rows are to be included.*/&lt;br /&gt;destVO.setRangeSize(-1);&lt;br /&gt;/*loop for the VO rows*/&lt;br /&gt;while (compareIter.hasNext())&lt;br /&gt;{&lt;br /&gt;Row sourceRow = compareIter.next();&lt;br /&gt;Row destRow = destVO.getRowAtRangeIndex(count);&lt;br /&gt;/*loop for the VO Attribute*/&lt;br /&gt;for (int i = 0; i &lt; attrCount; i++)&lt;br /&gt;{&lt;br /&gt;byte attrKind = attrDefs[i].getAttributeKind();&lt;br /&gt;/*compare the data only if the attribute&lt;br /&gt;is persistent*/&lt;br /&gt;if(attrKind==AttributeDef.ATTR_PERSISTENT)&lt;br /&gt;{&lt;br /&gt;String attrName=attrDefs[i].getName();&lt;br /&gt;if (destVO.lookupAttributeDef(attrName) != null)&lt;br /&gt;{&lt;br /&gt;Object sourceAttrVal = sourceRow.getAttribute(attrName);&lt;br /&gt;Object destAttrVal = destRow.getAttribute(attrName);&lt;br /&gt;if(destAttrVal!=null &amp;amp;&amp;amp; sourceAttrVal!=null)&lt;br /&gt;{&lt;br /&gt;if(!sourceAttrVal.equals(destAttrVal))&lt;br /&gt;{&lt;br /&gt;dirtyDataFlag=true;&lt;br /&gt;compareIter.closeRowSetIterator();&lt;br /&gt;return dirtyDataFlag;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;/*if values are not equal then it&lt;br /&gt;means data is dirty*/&lt;br /&gt;if((sourceAttrVal==null &amp;amp;&amp;amp; destAttrVal!=null)&lt;br /&gt;(sourceAttrVal!=null &amp;amp;&amp;amp; destAttrVal==null))&lt;br /&gt;{&lt;br /&gt;dirtyDataFlag=true;&lt;br /&gt;compareIter.closeRowSetIterator();&lt;br /&gt;return dirtyDataFlag;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;count++;&lt;br /&gt;}&lt;br /&gt;compareIter.closeRowSetIterator();&lt;br /&gt;destVO.reset();&lt;br /&gt;/*data is not dirty*/&lt;br /&gt;return dirtyDataFlag;&lt;br /&gt;}&lt;br /&gt;Q: &lt;strong&gt;When I am executing  the VO query and after that fetching the attribute value from the VO, getting the NullPointerExecption?How to handle it?&lt;br /&gt;&lt;/strong&gt;Answer:-&lt;strong&gt;When you execute the VO.executeQuery() method, and if your query is fetching the record, then row pointer is at position -1. Either call the vo.first() method or call vo.setCurrentRowRangeIndex(0);&lt;br /&gt;&lt;/strong&gt;Q: &lt;strong&gt;I have two radio buttons with are the part of the same group, when I am submitting the page, control is jumping in to the last radio button? How I can solve this problem?&lt;br /&gt;&lt;/strong&gt;Answer:-Just put your individual radio button under the flowlayout which intern should be put under the cell format.&lt;br /&gt;Q:  &lt;strong&gt;I have two advance tables in my page. And both of them have "Add Another Row" button, now How I can identify that which "Add Another button" is clicked?&lt;br /&gt;&lt;/strong&gt;Answer: By calling the pageContext.getParameter(SOURCE_PARAM) will return the name&lt;br /&gt;of the Advance table against which the Add Another Radio button is clicked.&lt;br /&gt;Q: &lt;strong&gt;I have two radio buttons in my page. When I am submitting the page, the control is jumping to last radio button in my page?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;Use messageRadioButtons and group them under same name and add each radio button under the separate cellformat region.&lt;/div&gt;&lt;div align="justify"&gt;Q: &lt;strong&gt;I want to check the XML file which I have imported to the Server in MDS repository?&lt;br /&gt;&lt;/strong&gt;Answer: Execute following command in SQL exec JDR_UTILS.printDocument('&lt;name&gt;');&lt;br /&gt;example &lt;/div&gt;&lt;div align="justify"&gt;exec&lt;br /&gt;JDR_UTILS.printDocument('/who/oracle/apps/xxwrp/prt/whoreg/&lt;br /&gt;webui/XXWRP_GoodsRegistrationPG');&lt;br /&gt;And to list of the PG files in particular top, execute the&lt;br /&gt;following command:-&lt;br /&gt;exec JDR_UTILS.listDocuments('path');&lt;br /&gt;example&lt;br /&gt;exec&lt;br /&gt;JDR_UTILS.listDocuments('/who/oracle/apps/xxwrp/prt/whoreg/&lt;br /&gt;webui/');&lt;br /&gt;Q: &lt;strong&gt;Is there a way to determine if someone has used the personalize links on a Self-Service Web Applications page?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;Here are several ways to identify if there are Personalization’s made to a page and what those&lt;br /&gt;Personalization’s are: &lt;/div&gt;&lt;div align="justify"&gt;1. The first and easiest way is to go to the page you want to check for Personalization’s, then click on the 'About this page' link at the bottom left of the page. Click on the Personalization tab. Then you should see a list of 'Effective Personalization’s', what elements have been customized and when they were customized/personalized.&lt;br /&gt;2. Another way is to use the Functional Administrator. The first thing to do to use the Functional Administrator is to identify the Document Path. For example, go to the Notifications link from the Workflow User Web Applications responsibility, and then click on the Personalize Page link. Notice that the Document path for the Notifications page is: /oracle/apps/fnd/wf/worklist/webui/NotificationsPG. From the Functional Administrator responsibility Home page, click on the Personalization tab in the upper left hand corner. Insert the document path for the document you want to check - for example: Document Path = /oracle/apps/fnd/wf/worklist/webui/NotificationsPG and then click on the 'Go' button to get a list of Personalization’s for this page.&lt;br /&gt;3. A third way to check to see if there are personalization’s on a page is to use sqlplus and run the&lt;br /&gt;JDR_UTILS program. You will need the Document path to the page in question - again using the Document path for the Notifications page: /oracle/apps/fnd/wf/worklist/webui/NotificationsPG&lt;br /&gt;Run the listDocuments function to drill down and find all documents that have been personalization’s under a certain Meta Data region: &lt;/div&gt;&lt;div align="justify"&gt;Run from sqlplus:&lt;br /&gt;set serveroutput on&lt;br /&gt;exec&lt;br /&gt;JDR_UTILS.listDocuments('/oracle/apps/fnd/wf/worklist/webui&lt;br /&gt;/');&lt;br /&gt;/oracle/apps/fnd/wf/worklist/webui/customizations/&lt;br /&gt;Note, you do not include the Page ID (NotificationsPG) with this query. In my test case, notice that there are 'customizations' in this MDS region webui. The 'customizations' indicates that personalization’s have been made to the 'webui' region. Run the query again with the new path and notice that there are 'site' level customizations, although there could be other levels such as user, responsibility, ...:&lt;br /&gt;exec&lt;br /&gt;JDR_UTILS.listDocuments('/oracle/apps/fnd/wf/worklist/webui&lt;br /&gt;/customizations/');&lt;br /&gt;/oracle/apps/fnd/wf/worklist/webui/customizations/site/&lt;br /&gt;Run the query again with the new path and notice that the customizations are at site level '0':&lt;br /&gt;exec&lt;br /&gt;JDR_UTILS.listDocuments('/oracle/apps/fnd/wf/worklist/webui&lt;br /&gt;/customizations/site/');&lt;br /&gt;/oracle/apps/fnd/wf/worklist/webui/customizations/site/0/&lt;br /&gt;Run the query one more time with the new path and notice that the customizations are made to the 'NotificationsPG':&lt;br /&gt;exec&lt;br /&gt;JDR_UTILS.listDocuments('/oracle/apps/fnd/wf/worklist/webui&lt;br /&gt;/customizations/site/0/');&lt;br /&gt;/oracle/apps/fnd/wf/worklist/webui/customizations/site/0/No&lt;br /&gt;tificationsPG&lt;br /&gt;Once we have identified a particular page or pages that have customizations/personalization, then we can use the printDocument to see what personalization’s have been made&lt;br /&gt;to the page:&lt;br /&gt;exec&lt;br /&gt;JDR_UTILS.printDocument('/oracle/apps/fnd/wf/worklist/webui&lt;br /&gt;/customizations/site/0/NotificationsPG');&lt;br /&gt;-------------&lt;br /&gt;&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;br /&gt;&lt;customization xmlns="http://xmlns.oracle.com/jrad"&lt;br /&gt;version="9.0.5.4.89_554"&lt;br /&gt;xml:lang="en-US"&lt;br /&gt;customizes="/oracle/apps/fnd/wf/worklist/webui/NotificationsPG"&gt;&lt;br /&gt;&lt;modifications&gt;&lt;br /&gt;&lt;modify element="MainRegion.NtfView" rendered="false"&gt;&lt;br /&gt;&lt;/modifications&gt;&lt;br /&gt;&lt;/customization&gt;&lt;br /&gt;-------------&lt;br /&gt;As you can see, rendered has been set to "false" for "MainRegion.NtfView". You can then use the deletedocument function to remove this personalization exec jdr_utils.deletedocument('/oracle/apps/fnd/wf/worklist/webui/customizations/site/0/NotificationsPG');&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;Q: &lt;strong&gt;How to remove a bad personalization from an OA Framework page?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;) Login to Oracle Applications with the system administrator responsibility&lt;br /&gt;2) Update the Profile Option: "Disable Self-Service Personal" = YES&lt;br /&gt;- This disables the rendering of all personalization that have been created.&lt;br /&gt;- You can set this at the site or user level.&lt;br /&gt;3) Navigate to the page you personalized.&lt;br /&gt;4) Enter the personalization UI in the same way you did to create the personalization initially&lt;br /&gt;5) Click the Delete button at the bottom of the page.&lt;br /&gt;- This will remove the personalization from the page.&lt;br /&gt;6) Go back to Oracle Apps with the system administrator responsibility&lt;br /&gt;7) Re-enable personalizations by setting the "Disable Self- Service Personal" profile option to NO&lt;br /&gt;Q: &lt;strong&gt;How to pass a Date to a VO for executing the Query?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;Oracle.jbo.domain.date dateToPass=&lt;oracle.jbo.domain.date&gt;;&lt;br /&gt;java.sql.Date javaSqlDate=dateToPass.dateValue();&lt;br /&gt;dateToPass = new Date(javaSqlDate);&lt;br /&gt;vo.setWhereClauseParam(1,dateToPass);&lt;br /&gt;vo.executeQuery();&lt;br /&gt;Q: &lt;strong&gt;How I can bind the property of a UI widget to a VO attribute at design time and at run time?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;At design time we have to use SPEL. Suppose to have to bind the disable property of a UI widget to the VO attribute. Then specify ${oa.&lt;vo-name&gt;.&lt;vo-attribute&gt;} against the disabled property of the UI item in the property inspector. For run time, get the handle of the bean. say&lt;br /&gt;OAMessageLovInputBean beanObj = (OAMessageLovInputBean)webBean.findIndexedChildRecursive("&lt;&gt;");&lt;br /&gt;beanObj.setAttributeValue(DISABLED_ATTR,new&lt;br /&gt;OADataBoundValueViewObject(beanObj, "&lt;vo-attribute&gt;", "&lt;voname&gt;"));&lt;br /&gt;Q: &lt;strong&gt;How I can change the values of the Categories (Category drop down) in the standard OAF Attachment page?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;String []maps=&lt;values&gt;;&lt;br /&gt;OAAttachmentTableBean attchmentBean=(OAAttachmentTableBean)webBean.findIndexedChi&lt;br /&gt;ldRecursive("AttachmentTable");&lt;br /&gt;attchmentBean.setCategoryMap(&lt;entity-name&gt;,maps,pageContext);&lt;br /&gt;Q: &lt;strong&gt;How I can set the Currency Code(Currency format) for a particular UI field?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;String formatter = "USD";&lt;br /&gt;OAMessageStyledTextBean regUSDAmtBean=(OAMessageStyledTextBean)webBean.findIndexedChildRecursive("USDTotalAmt");&lt;br /&gt;if (regUSDAmtBean != null)&lt;br /&gt;{&lt;br /&gt;regUSDAmtBean.setAttributeValue(CURRENCY_CODE,formatter);&lt;br /&gt;}&lt;br /&gt;Q: &lt;strong&gt;How to get the handle to a particular row of the Advance table?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;--------------Inside CO---------------------------------------------------------------------&lt;br /&gt;String rowReference =&lt;br /&gt;pageContext.getParameter(OAWebBeanConstants.EVENT_SOURCE_ROW_REFERENCE);&lt;br /&gt;Serializable[] params = { rowReference };&lt;br /&gt;am.invokeMethod("getHandleToRow",params);&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;------------Inside AM------------------------------------------------------------------------&lt;br /&gt;public void getHandleToRow()&lt;br /&gt;{&lt;br /&gt;OARow row = (OARow)findRowByRef(rowReference);&lt;br /&gt;-------&lt;br /&gt;}&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-3334298801681544804?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/3334298801681544804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=3334298801681544804' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/3334298801681544804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/3334298801681544804'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/04/help-questions-in-oafpart-3.html' title='Help Questions in OAF.......part -3'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-3001764177962921377</id><published>2008-04-03T05:03:00.000-07:00</published><updated>2008-12-05T05:04:35.872-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OAF'/><title type='text'>Help Questions in OAF.......part -2</title><content type='html'>Q: &lt;strong&gt;How do I find whether 'Next' or 'Previous' links are clicked or not? (Classic and Advanced)?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;/*Call the following logic in processFormRequest method of&lt;br /&gt;the web bean's controller that contains the table bean.*/&lt;br /&gt;String value = pageContext.getParameter("value");&lt;br /&gt;if (value != null)&lt;br /&gt;{&lt;br /&gt;int newValue = Integer.parseInt(value);&lt;br /&gt;if (tableBean.getValue() &lt; newValue)&lt;br /&gt;// next pressed.&lt;br /&gt;else&lt;br /&gt;// previous pressed.&lt;br /&gt;}&lt;br /&gt;Q:&lt;strong&gt; Is there a method for setting the length of the fields in a poplist? It seems to be sized to the length of the largest value in the list?&lt;/strong&gt;&lt;br /&gt;Answer:&lt;br /&gt;This is the standard HTML behavior. The only method available to you is to truncate the values being passed to the poplist.&lt;br /&gt;Q: &lt;strong&gt;Is there any way to check whether a field from the base page, that an LOV is dependent on, is blank?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;In OA Extension, set the Required property to yes for the field (region item). If the field is blank, the LOV will generate an exception.&lt;br /&gt;Q: &lt;strong&gt;How do I handle raising an unexpected database error and passing that back to the instantiating page?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;To handle database errors that occur within a PL/SQL procedure called through Java, code a standard exception handler for 'when others' within the PL/SQL procedure. The 'when others' exception handler should call FND_MSG_PUB.ADD_EXEC_MSG (pkg_name, proc_name,&lt;br /&gt;substr(sqlerrm, 1, 240)). This registers the database error in the standard FND error stack.&lt;br /&gt;You can then catch and throw that exception in the insertRow and updateRow methods using the procedure OAExceptionHelper.checkErrors (Tx, messageCount, returnStatus, messageData).&lt;br /&gt;Q: &lt;strong&gt;To convert oracle.jbo.domain.Date ==&gt; java.util.Date?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;oracle.jbo.domain.Date oracleDate = &lt;some&gt;;&lt;br /&gt;java.sql.Date javaSqlDate = oracleDate.dateValue();&lt;br /&gt;long javaMilliSeconds = javaSqlDate.getTime();&lt;br /&gt;java.util.Date javaUtilDate = new java.util.Date(javaMilliSeconds);&lt;br /&gt;Q: &lt;strong&gt;To convert java.util.Date ==&gt; oracle.jbo.domain.Date?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;java.util.Date javaDate = &lt;some&gt;;&lt;br /&gt;long javaMilliseconds = javaUtilDate.getTime();&lt;br /&gt;java.sql.Date javaSqlDate = new java.sql.Date(javaMilliseconds);&lt;br /&gt;oracle.jbo.domain.Date oracleDate = new oracle.jbo.domain.Date(javaSqlDate);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-3001764177962921377?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/3001764177962921377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=3001764177962921377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/3001764177962921377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/3001764177962921377'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/04/help-questions-in-oafpart-2.html' title='Help Questions in OAF.......part -2'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-7727082238975152245</id><published>2008-03-14T07:02:00.000-07:00</published><updated>2008-12-05T05:04:35.872-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OAF'/><title type='text'>Help Questions in OAF.......part -1</title><content type='html'>Q: &lt;strong&gt;How to group the Radio Buttons in a OAF page?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;Example:-&lt;br /&gt;OAMessageRadioButtonBean amountBasedRBBean =&lt;br /&gt;(OAMessageRadioButtonBean)&lt;br /&gt;webBean.findIndexedChildRecursive("AmountBasedRB");&lt;br /&gt;OAMessageRadioButtonBean rateBasedRBBean =&lt;br /&gt;(OAMessageRadioButtonBean)&lt;br /&gt;webBean.findIndexedChildRecursive("RateBasedRB");&lt;br /&gt;amountBasedRBBean.setName("AmountRadioGroup");&lt;br /&gt;amountBasedRBBean.setValue("A");&lt;br /&gt;rateBasedRBBean.setName("AmountRadioGroup");&lt;br /&gt;rateBasedRBBean.setValue("R");&lt;br /&gt;&lt;strong&gt;Q: After clicking submit button in OAF page,processFormRequest doesn’t get called. How do I correct this?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;Possible Solution:-Go to Tools--&gt;Preferences--&gt;Embedded&lt;br /&gt;OC4J--&gt; and confirm that the "Default Local IP Address"&lt;br /&gt;option is selected.&lt;br /&gt;&lt;strong&gt;Q: Clicking "Add another Row" button in a table results to “state loss” error on the page. How should I resolve this? (Classic and Advanced)&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;This happens when you have not executed the view object&lt;br /&gt;associated with the table. For any successful table event,&lt;br /&gt;the underlying table view object query must have been&lt;br /&gt;executed before a table event is caused. In the case where&lt;br /&gt;you don't want to display any rows when the page comes up,&lt;br /&gt;yet want to select on "Add Another Row" to add rows into&lt;br /&gt;the table, then before you add rows to the table, you must&lt;br /&gt;properly initialize the view object.&lt;br /&gt;Q: &lt;strong&gt;One of the most common errors we all face in OAF is "oracle.apps.fnd.framework.OAException:java.lang.NullPointerException". How should I resolve this?&lt;br /&gt;&lt;/strong&gt;Answer:&lt;br /&gt;The primary cause of this error is beacuse of you are&lt;br /&gt;trying to fetch the data from the VO, which&lt;br /&gt;does't contains any data.&lt;br /&gt;For example:-&lt;br /&gt;1)XXWRP_ServiceRegVORowImpl&lt;br /&gt;serviceRegVORow=(XXWRP_ServiceRegVORowImpl)getXXWRP_Service&lt;br /&gt;RegVO1().getCurrentRow();&lt;br /&gt;2)Date value=serviceRegVORow.getCompletionDate();&lt;br /&gt;Now if the XXWRP_ServiceRegVO1 is not executed, then above&lt;br /&gt;code will throw error at line number 2.To avoid this,&lt;br /&gt;either handle NullPointerException or check if the&lt;br /&gt;serviceRegVORow is null or not.&lt;br /&gt;Q: &lt;strong&gt;How do find out the selected view object rows using the table selector? (Classic and Advanced)?&lt;br /&gt;&lt;/strong&gt;Answer: - Place this logic in your view object and invoke&lt;br /&gt;it with invokeMethod from AM.&lt;br /&gt;int fetchedRowCount = getFetchedRowCount();&lt;br /&gt;if (fetchedRowCount &gt; 0)&lt;br /&gt;{&lt;br /&gt;// Save the original range size and range start.&lt;br /&gt;int savedRangeSize = getRangeSize();&lt;br /&gt;int savedRangeStart = getRangeStart();&lt;br /&gt;/* Alter the range size and start in this order to&lt;br /&gt;prevent any accidental row fault-in from the&lt;br /&gt;database. */&lt;br /&gt;setRangeStart(0);&lt;br /&gt;setRangeSize(fetchedRowCount);&lt;br /&gt;Row[] rows = getAllRowsInRange();&lt;br /&gt;for (int i = 0; i &lt; fetchedRowCount; i++)&lt;br /&gt;{&lt;br /&gt;if(rows[i]!=null &amp;amp;&amp;amp;&lt;br /&gt;"Y".equals(rows[i].getAttribute("SelectFlag")))&lt;br /&gt;{&lt;br /&gt;/*operation to be performed on row*/&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;/*Restore the range size and start. Do in the following&lt;br /&gt;order to prevent any accidental row fault-in. Reverse&lt;br /&gt;order upon restoring to a potentially smaller range size.*/&lt;br /&gt;setRangeSize(savedRangeSize);&lt;br /&gt;setRangeStart(savedRangeStart);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-7727082238975152245?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/7727082238975152245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=7727082238975152245' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/7727082238975152245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/7727082238975152245'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/03/help-questions-in-oafpart-1.html' title='Help Questions in OAF.......part -1'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2278194326889842740.post-7286356924366044687</id><published>2008-01-22T07:07:00.000-08:00</published><updated>2008-12-05T05:04:35.872-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OAF'/><title type='text'>Introduction to OA Framework.</title><content type='html'>&lt;div align="justify"&gt;OA Framework is a J2EE (Enterprise Edition) based application development platform to develop HTML based Oracle EBS applications. OA Framework is designed around the simple Model-View-Controller (MVC) architecture design pattern.The MVC paradigm is a way of breaking an application, into three parts: the model, the view, andthe controller. The controller delegates requests to an appropriate handler. The controller is the means by which the user interacts with the web application. The controller is responsible for the input to the model. The model represents, or encapsulates, an application's business logic or state. It captures not only the state of a process or system, but also how the system works. Control is then usually forwarded back through the controller to the appropriate view. The view is responsible for the output of the model.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a href="http://2.bp.blogspot.com/_GUc3firYMZA/R5YIfTDwNdI/AAAAAAAAAAY/CytWKxnbiv4/s1600-h/pic1.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5158319756984464850" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_GUc3firYMZA/R5YIfTDwNdI/AAAAAAAAAAY/CytWKxnbiv4/s400/pic1.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;We can use ADF to develop the business application; it’s just that it ADF is not yet tightly coupled with Oracle EBS. The OA Framework Model is implemented using Oracle Business Components for Java (BC4J). The OA Framework View is implemented using UI XML (UIX). And the Controller is implemented using a simple plain old java class.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a href="http://1.bp.blogspot.com/_GUc3firYMZA/R5YI-DDwNeI/AAAAAAAAAAg/6Xx0nJycdM8/s1600-h/pic2.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5158320285265442274" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_GUc3firYMZA/R5YI-DDwNeI/AAAAAAAAAAg/6Xx0nJycdM8/s400/pic2.bmp" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Let’s see each of these components in bit detail.&lt;br /&gt;&lt;strong&gt;The Model: -&lt;br /&gt;&lt;/strong&gt;The model component is implemented using the BC4J. BC4J consists of three components:-&lt;br /&gt;--&gt;Entity Object and Associations.&lt;br /&gt;--&gt;View Object and View Link objects.&lt;br /&gt;--&gt;Application Module.&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Entity Object&lt;/em&gt;:&lt;/strong&gt; - Entity Objects represents a database row in middle-tier. Database rows are&lt;br /&gt;represented as individual entities, in which attributes typically correspond to columns in the&lt;br /&gt;corresponding table to automatically implement queries, inserts, updates and deletes. Entity&lt;br /&gt;objects can also be based on views, synonyms or snapshots. Most entity objects that you create&lt;br /&gt;subclass the oracle.apps.fnd.framework.server.OAEntityImpl class. Entity Objects are also used&lt;br /&gt;to implement the business validations. Associations are used to establish the relationship between the entity objects. When you create an Entity Object, framework will provide you a Java class with the setter and getter methods corresponding to each column of the table to which you’re Entity Object is based on. And along with that it will provide you following methods which are called by framework itself on appropriate event:-&lt;br /&gt;&lt;em&gt;protected void validateEntity( ) &lt;/em&gt;- Any validation involving two or more attribute values on the&lt;br /&gt;entity should be included in the validateEntity() method.&lt;br /&gt;&lt;em&gt;public void create()&lt;/em&gt; - add any defaulting/initialization code, such as getting the value of a&lt;br /&gt;sequence and then assigning it to the corresponding attribute.&lt;br /&gt;&lt;em&gt;public void remove()&lt;/em&gt; - If you need to implement any special delete behavior (like&lt;br /&gt;checking to see whether the delete action is allowed, or implementing cascade-delete), you should&lt;br /&gt;add code to your entity's remove() method.&lt;br /&gt;&lt;em&gt;&lt;strong&gt;View Object&lt;/strong&gt;&lt;/em&gt;:-&lt;br /&gt;View Object accesses the result set of a SQL statement. It can be either based on the Entity Object or on plain SQL query. A view object is a business component that encapsulates&lt;br /&gt;SQL code and metadata that maps columns in the select statement to the attributes of one or more entity objects, if it is based on the Entity Object. A view object use SQL to join, filter or sort&lt;br /&gt;business data or to shape it for presentation. View objects provide row sets that can be viewed or used to update the underlying entity objects. You can define multiple view objects per entity object or a view object can select data from multiple entity objects. View Object can be created&lt;br /&gt;declaratively or programmatically. Which ever way you create it, you need an application module to contain it. View objects are not an appropriate home for business logic; we should not be writing validation rules in our view objects or view rows. All view objects that you createsubclass the oracle.apps.fnd.framework.server.OAViewObjectImpl class.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;a href="http://2.bp.blogspot.com/_GUc3firYMZA/R5YJ7TDwNfI/AAAAAAAAAAo/hIzwWrYFY3Y/s1600-h/pic3.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5158321337532429810" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_GUc3firYMZA/R5YJ7TDwNfI/AAAAAAAAAAo/hIzwWrYFY3Y/s400/pic3.bmp" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;em&gt;Application Module&lt;/em&gt;&lt;/strong&gt;: -&lt;br /&gt;A logical container that manages and provides access to "related" BC4J model objects. It&lt;br /&gt;represents the data model that client uses. To create the data model, the application module&lt;br /&gt;contains business components, including instances of view objects and view links. An application&lt;br /&gt;module may be a root application module or a nested application module. A root application&lt;br /&gt;module is not contained in another application module. It provides transaction context for all&lt;br /&gt;objects it contains. Root application module also maintains the database connection. All application modules that you create subclass the oracle.apps.fnd.framework.server.OAApplicationModuleImpl class.&lt;br /&gt;&lt;strong&gt;&lt;em&gt;The View&lt;/em&gt;&lt;/strong&gt;:-&lt;br /&gt;The View formats the data and presents the data to the user. In OAF View is implemented using&lt;br /&gt;the UIX. UIX uses XML to describe the components and hierarchy that make up an application&lt;br /&gt;page. UIX also provides runtime capabilities to translate that metadata into HTML output so that it can be shown on a Browser or a mobile device. The metadata used to describe the UI is loaded into a database repository, called Meta Data Services (MDS), at deployment time and optionally at design time as well. Pages are developed declaratively using the Oracle 9i Jdeveloper OA Extension. Pages are made up of hierarchy of regions and items. Each UI widget corresponds to one or more Java objects (beans). And these java beans are used to create the HTML at runtime. When you design a page, you store "page definition" in XML format on your local machine. When deploying to our system/server, we load this XML file into MDS repository using the xml import statements. When the user run the page in the browser, the page definition is fetched from the MDS repository and is converted into the XML file by the MDS engine. Each component in XML is translated into the Java web bean object. And this web bean is rendered by the OA Framework. Page definition is cached in to the memory, and if it is there, framework will not go to MDS repository to get the page definition.&lt;/p&gt;&lt;div align="justify"&gt;&lt;a href="http://3.bp.blogspot.com/_GUc3firYMZA/R5YKrjDwNgI/AAAAAAAAAAw/3XG6t7QEYZI/s1600-h/pic4.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5158322166461117954" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_GUc3firYMZA/R5YKrjDwNgI/AAAAAAAAAAw/3XG6t7QEYZI/s400/pic4.bmp" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;The Controller&lt;/em&gt;&lt;/strong&gt;:-&lt;br /&gt;The Controller responds to user action and direct application flow. It provides the wiring between the UIX web bean and the middle-tier. All the controllers that we create subclass the&lt;br /&gt;oracle.apps.fnd.framework.webui.OAControllerImpl. When the browser issues an OA.jsp request:-&lt;br /&gt;The oracle.apps.fnd.framework.webui.OAPageBean(the main OA Framework page processing class) uses the page name to determine which root AM it refers to, so that the VO’s related to the page can be accessed. Then user session is validated and then OAPageBean evaluates request parameter or figure out if it dealing with an HTTP POST or GET request. During the iteration, if the framework finds a web bean referencing a controller class it will call one of the following methods. &lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;Process Request&lt;/em&gt; - This phase is invoked upon a browser 'Get' or redirect/forward. This is where&lt;br /&gt;custom code can call the application module to initialize and query the data. This phase may&lt;br /&gt;optionally construct or modify the web beans to create or alter the page structure and web bean&lt;br /&gt;properties.&lt;br /&gt;&lt;em&gt;Process Form Data&lt;/em&gt; - This phase is invoked upon a browser 'Post'. During this phase the&lt;br /&gt;framework will automatically applies form changes back to the underlying view objects. Rarely is&lt;br /&gt;custom code required in this phase. If exceptions are thrown during this phase, the Process Form Request phase is skipped and the page is redisplayed.&lt;br /&gt;&lt;em&gt;Process Form Request&lt;/em&gt; - This phase is invoked upon a browser 'Post', assuming no exceptions&lt;br /&gt;were thrown during the Process Form Data phase. This is were custom code can handle the form&lt;br /&gt;submit events and call the application module to process the event.&lt;br /&gt;Framework passes two parameters OAPageContext and OAWebBean to the processRequest and processFormRequest. Following are the usages of OAPageContext parameters.&lt;br /&gt;1. To get and set values of the fields, using oapagecontext.getParameter and&lt;br /&gt;oapagecontext.putParameter&lt;br /&gt;2. For redirecting to the current page or another page. For example to redirecting to current page&lt;br /&gt;itself use oapagecontext.forwardImmediatelyToCurrentPage. Or you may use&lt;br /&gt;oapagecontext.sendRedirect(snewpage)&lt;br /&gt;3. To get a handle to application module(remember we attached AM to page)&lt;br /&gt;oapagecontext.getRootApplicationModule()&lt;br /&gt;4. Write debug messages, using oapagecontext.writeDiagnostics&lt;br /&gt;5. Get message text from FND Message dictionary, using oapagecontext.getMessage&lt;br /&gt;Usages of parameter OAWebBean:-&lt;br /&gt;Remember that webbean represents the hierarchy/structure of components in the page. Hence&lt;br /&gt;using this paremeter object, you can get a handle to any bean/component in that page hierarchy.&lt;br /&gt;Once you have a handle to that bean (say field bean or button bean), you can then invoke methods like setRendered etc to change the behaviour of page at runtime.&lt;br /&gt;Some examples are&lt;br /&gt;1. OAWebBean LastName = oawebbean.findIndexedChildRecursive("personLastName");&lt;br /&gt;Note: In this example, our page must have just one field whose name is personLastName&lt;br /&gt;2. Get a handle to region&lt;br /&gt;OAStackLayoutBean oastacklayoutbean =&lt;br /&gt;(OAStackLayoutBean)oawebbean.findIndexedChildRecursive("stackRegionName");&lt;br /&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2278194326889842740-7286356924366044687?l=kohlivikram.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kohlivikram.blogspot.com/feeds/7286356924366044687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2278194326889842740&amp;postID=7286356924366044687' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/7286356924366044687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2278194326889842740/posts/default/7286356924366044687'/><link rel='alternate' type='text/html' href='http://kohlivikram.blogspot.com/2008/01/introduction-to-oa-framework.html' title='Introduction to OA Framework.'/><author><name>Vikram Kohli</name><uri>http://www.blogger.com/profile/02013661085457246610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_GUc3firYMZA/R3Ie9DDwNbI/AAAAAAAAAAM/a_mMJndinqY/S220/IMG_2198.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_GUc3firYMZA/R5YIfTDwNdI/AAAAAAAAAAY/CytWKxnbiv4/s72-c/pic1.bmp' height='72' width='72'/><thr:total>8</thr:total></entry></feed>
