<?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-117331183902018014</id><updated>2011-11-27T16:40:22.802-08:00</updated><category term='MiddleWare'/><category term='JAVA'/><category term='SOA'/><category term='Fusion'/><category term='ADF'/><title type='text'>XML , ADF, Java &amp; Oracle</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://exmloracle.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/117331183902018014/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://exmloracle.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>eoracleapps</name><uri>http://www.blogger.com/profile/13273545679602930642</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-117331183902018014.post-1289378986705508808</id><published>2009-07-08T16:46:00.000-07:00</published><updated>2010-12-16T00:05:46.435-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='MiddleWare'/><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusion'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Oracle ADF</title><content type='html'>Oracle ADF tools has introduced for simplification of application development.&lt;br /&gt;ADF makes it easy to develop application based on standards. With ADF , developer need not to learn everything about J2EE for design and development. In nutshell ADF provide declarative way to do the things. E.g drag and Drop.&lt;br /&gt;&lt;br /&gt;In ADF oracle has introduced around 150 AJAX based control and it’s provide very easy approach to bind the business services /components with user interface.&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;ADF has very rich Client Components and it offers&lt;/strong&gt;&lt;br /&gt;Rich Internet Applications&lt;br /&gt;Rich enterprise applications&lt;br /&gt;ADF faces&lt;br /&gt;150+ Ajax controls&lt;br /&gt;Data visualization components&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Key feature of ADF’s key are&lt;/strong&gt;&lt;br /&gt;Declarative approach (drag/Drop)&lt;br /&gt;Groovy&lt;br /&gt;LOV&lt;br /&gt;Data Binding&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Other key feature of ADF is Task flow&lt;/strong&gt;&lt;br /&gt;Task flows are logical unit of page flows and can be bounded or unbounded task flows. Task flows is extension of page flow and has designed on top of JSF.&lt;br /&gt;&lt;br /&gt;Unbounded task flows - they are act as entry point to an application and have following characteristics.&lt;br /&gt;First entry on task flow.&lt;br /&gt;There is no boundary or single point of entry.&lt;br /&gt;They Cannot be used as region on a page.&lt;br /&gt;They Can be used a bookmarker.&lt;br /&gt;&lt;br /&gt;Bounded taskflow –&lt;br /&gt;They are modular blocks of task flow, and have following characteristics.&lt;br /&gt;They have only one entry point and zero or more exit points.&lt;br /&gt;They can be use as region on a page.&lt;br /&gt;They offer transaction management (commit/rollback).&lt;br /&gt;Bookmark feature is not available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/117331183902018014-1289378986705508808?l=exmloracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://exmloracle.blogspot.com/feeds/1289378986705508808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://exmloracle.blogspot.com/2009/04/oracle-adf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/117331183902018014/posts/default/1289378986705508808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/117331183902018014/posts/default/1289378986705508808'/><link rel='alternate' type='text/html' href='http://exmloracle.blogspot.com/2009/04/oracle-adf.html' title='Oracle ADF'/><author><name>eoracleapps</name><uri>http://www.blogger.com/profile/13273545679602930642</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-117331183902018014.post-9025622466279180529</id><published>2009-07-07T06:07:00.000-07:00</published><updated>2010-12-16T00:06:12.187-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='MiddleWare'/><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusion'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>ADF Navigation List to update the Page</title><content type='html'>Navigation List in ADF Page is a list that when updated will actually update/refresh another part of page.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Test case –&lt;/b&gt; we have an application to capture the details from credit card statements and then prepare Monthly Budget (Budget has Header, lines and Spending category).&lt;br /&gt;In this example, I will create a VO with the Budget category and Lines and then design a Page that will show all the expenses for a particular category for all existing budgets. Whenever user change the category name , underline page will be refreshed to show the detail of the newly selected category.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Steps&lt;/b&gt;&lt;br /&gt;Open Oracle Jdeveloper (Jdev11g).&lt;br /&gt;1. Select New application.&lt;br /&gt;2. Select the template Fusion Web Application (ADF) and Wizard will help you to create TWO projects.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.Model&lt;br /&gt;2.View Controller.&lt;br /&gt;&lt;br /&gt;Model is for Data Control and ViewController for UI.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In Model Project Design the Business Services by selecting categories &amp;gt; business tier &amp;gt;ADF Business components &amp;gt;“Business Components from table”.&lt;br /&gt;1.Complete Database connection Setup.&lt;br /&gt;2.Select the budget_lines and budget_categories table and created Entity Object (EO). Then Create VO by joining the budget_lines and budget_category via category_id, finally create Application Module (AM)&lt;br /&gt;3.Creation of Application Model will exposed our VO to client, and they will appear under Data Control.&lt;br /&gt;4.Save your Work.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In ViewController Project open adfc-config.xml and drag a JSF page component by dragging View from Component palette (Pic 1.1). Save your work&lt;br /&gt;&lt;br /&gt;1.Open the page and save it as NavigationList.jspx. (Please note that this is unbounded task flow).&lt;br /&gt;2.Drag BgBudgetCategoryView1 VO on the page and select navigation List from Popup as shown in Pic 1.2/1.3.&lt;br /&gt;3.Select the Display Attribute of List, as shown in Pic 1.4. (In my example it is Category Name)&lt;br /&gt;4.Jdev will Drop Navigation List Component. This component has 2 section,&lt;br /&gt;Section 1- List (where it drops the List component in my example categoryName.&lt;br /&gt;Section 2- this is for detail block as shown in Pic 1.5&lt;br /&gt;5.In the Detail section drag and drop the view BGBudgetLinesView2 from Data Control (Pic 1.6)&lt;br /&gt;6.Select the column that you want to display in Details (Pic 1.7)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Now I will explain how it works.&lt;/b&gt;Go to Property of the list and check the ID, and Auto Submit (pic 1.8). Auto submit is TRUE and ID = navList1.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Go to the Detail Block and check the Property Partial Trigger, System has populated it with navList1 (Pic 1.9) . (it indicates that whenever there us change in the List value refresh the detail section).&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_7Ak4gihVK6k/SenRxsJgfuI/AAAAAAAAAEU/Q-Rl6w8vUNo/s1600-h/capture1.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5326018685937155810" src="http://2.bp.blogspot.com/_7Ak4gihVK6k/SenRxsJgfuI/AAAAAAAAAEU/Q-Rl6w8vUNo/s400/capture1.bmp" style="height: 256px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_7Ak4gihVK6k/SenR_WUkZoI/AAAAAAAAAEc/wHTMOXVyqKs/s1600-h/capture2.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5326018920596137602" src="http://1.bp.blogspot.com/_7Ak4gihVK6k/SenR_WUkZoI/AAAAAAAAAEc/wHTMOXVyqKs/s400/capture2.bmp" style="height: 151px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As shown below , when we update the category Name in Navigation List , underlying block got refreshed with the respective data.&lt;br /&gt;In Pic1.1 below category Name = Gas , but when we change the Category Name = “Home Phone and Internet “ in Pic 1.2 , underlying block updated/refreshed with the data for = “Home Phone and Internet “&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_7Ak4gihVK6k/SerMhXWTJMI/AAAAAAAAAEs/J0TxHa1zrRs/s1600-h/capture3.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5326294382894326978" src="http://1.bp.blogspot.com/_7Ak4gihVK6k/SerMhXWTJMI/AAAAAAAAAEs/J0TxHa1zrRs/s400/capture3.bmp" style="height: 384px; width: 400px;" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/117331183902018014-9025622466279180529?l=exmloracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://exmloracle.blogspot.com/feeds/9025622466279180529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://exmloracle.blogspot.com/2009/05/adf-navigation-list-to-update-page.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/117331183902018014/posts/default/9025622466279180529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/117331183902018014/posts/default/9025622466279180529'/><link rel='alternate' type='text/html' href='http://exmloracle.blogspot.com/2009/05/adf-navigation-list-to-update-page.html' title='ADF Navigation List to update the Page'/><author><name>eoracleapps</name><uri>http://www.blogger.com/profile/13273545679602930642</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7Ak4gihVK6k/SenRxsJgfuI/AAAAAAAAAEU/Q-Rl6w8vUNo/s72-c/capture1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-117331183902018014.post-2540113715679706773</id><published>2009-07-07T03:46:00.000-07:00</published><updated>2010-12-16T00:06:32.152-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='MiddleWare'/><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusion'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Oracle ADF Master Detail Page</title><content type='html'>In this blog I will provides details about ADF Master detail Page, plus how to drop graph UI on Page.&lt;br /&gt;&lt;br /&gt;Test case – we have an application to capture the details from credit card statements and then prepare Monthly Budget and compare Actual Amount Vs Allocated Account for each Spending category, plus display Bar Chart for Allocated amount Vs Actual Amount for each Category.&lt;br /&gt;&lt;br /&gt;In this blog I will explain how to design Master Detail Page , plus how to add graph Component.&lt;br /&gt;&lt;strong&gt;Components for this example&lt;/strong&gt;&lt;br /&gt;Database table&lt;br /&gt;budget_header&lt;br /&gt;budget_lines.&lt;br /&gt;budget_categories&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Steps&lt;/strong&gt;&lt;br /&gt;1.Open Oracle Jdeveloper (Jdev11g).&lt;br /&gt;2.Select New application.&lt;br /&gt;3.Select the template Fusion Web Application (ADF) and Wizard will help you to create TWO projects.&lt;br /&gt;A. Model&lt;br /&gt;B. View Controller.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Model is for Data Control and ViewController for UI.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;In Model Project&lt;/strong&gt;1. Design the Business Services by selecting categories &amp;gt; business tier &amp;gt;ADF Business components &amp;gt;“Business Components from table” and Wizard will help you to create Business Components..&lt;br /&gt;2. Complete Database connection Setup.&lt;br /&gt;3. Select the budget_header, budget_lines and budget_categories table and create &lt;strong&gt;Entity Object (EO), Updatable view (VO) and Application Module (AM) .&lt;/strong&gt;4. Define view links between these 3 Vos.&lt;br /&gt;5. Creation of Application Model will exposed all the Vos to client, and they will appear under Data Control.&lt;br /&gt;6. Save your Work.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;In ViewController Project &lt;/strong&gt;open adfc-config.xml and drag a JSF page component by dragging View from Component palette. Save your work&lt;br /&gt;&lt;br /&gt;1. Open the page and save it as budget.jspx. (Please note that this is unbounded task flow).&lt;br /&gt;2. From Component palette Drag Panel Splitter in page as shown in pic1.1 and add the Panel Accordion, Panel collection and panel tabbed to newly created Spitted panel.&lt;br /&gt;3. Now Drag the Budget header, lines from data control to JSF Page and our page is ready, as shown below.&lt;br /&gt;&lt;br /&gt;In Pic 1.1&lt;br /&gt;Split area “Split1” shows Budget Headre&lt;br /&gt;Split area “Split2.1” shows budget lines Detail in table (Read – Only).&lt;br /&gt;Split area “Split2.2” shows budget lines Detail in Form.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/SemwPfs2j6I/AAAAAAAAADU/gW7UAd8pFCA/s1600-h/capture8.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5325981814596472738" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/SemwPfs2j6I/AAAAAAAAADU/gW7UAd8pFCA/s400/capture8.bmp" style="cursor: hand; height: 264px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;Pic 1.2 shows the Graph for Actual Spending Amount Vs Allocated Amount for a category.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_7Ak4gihVK6k/SemwbF5RewI/AAAAAAAAADc/-Q12ZCNmj_4/s1600-h/capture4.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5325982013827676930" src="http://1.bp.blogspot.com/_7Ak4gihVK6k/SemwbF5RewI/AAAAAAAAADc/-Q12ZCNmj_4/s400/capture4.bmp" style="cursor: hand; height: 208px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;Pic 1.2&lt;br /&gt;&lt;br /&gt;Both Pic 1.1 &amp;amp;1.2 shows the Master detail relationship between Budget Header/Lines.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_7Ak4gihVK6k/Semw4-T9raI/AAAAAAAAADk/xXm7YTggrXQ/s1600-h/capture2.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5325982527188217250" src="http://4.bp.blogspot.com/_7Ak4gihVK6k/Semw4-T9raI/AAAAAAAAADk/xXm7YTggrXQ/s400/capture2.bmp" style="cursor: hand; height: 131px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;Pic 1.3&lt;br /&gt;&lt;br /&gt;As shown above Pic 1.3, ADF Control offer you built in function to select the column you want to Show or Hide, no coding has required for it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As shown below Pic 1.4 , you can move the columns at run time without writing any code. In this example I have moved /draged Category Name column from last to First position.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_7Ak4gihVK6k/Sem0P88PNII/AAAAAAAAAEM/chP-6-3rFfg/s1600-h/capture3.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5325986220492141698" src="http://2.bp.blogspot.com/_7Ak4gihVK6k/Sem0P88PNII/AAAAAAAAAEM/chP-6-3rFfg/s400/capture3.bmp" style="cursor: hand; height: 205px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;Pic 1.4&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ADF Provide another built in feature “Detach” as shown below in Pic 1.5, that will detach one particular Page Section (in my case detail table section ) and display it over the Main Page. It will be very helpful if there is large amount of data in Detail and you want to see it all.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_7Ak4gihVK6k/SemyE0WiigI/AAAAAAAAADs/WRdxGhS92vU/s1600-h/capture5.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5325983830184724994" src="http://1.bp.blogspot.com/_7Ak4gihVK6k/SemyE0WiigI/AAAAAAAAADs/WRdxGhS92vU/s400/capture5.bmp" style="cursor: hand; height: 312px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;Pic 1.5&lt;br /&gt;&lt;br /&gt;As shown below in Pic 1.6, I am calling the Custom Menu Function to export table data to excel sheet. (Please refer my previous blog about how to do that)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/SemyaSQmZiI/AAAAAAAAAD0/hL48kziW7QI/s1600-h/capture6.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5325984198990128674" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/SemyaSQmZiI/AAAAAAAAAD0/hL48kziW7QI/s400/capture6.bmp" style="cursor: hand; height: 130px; width: 313px;" /&gt;&lt;/a&gt;&lt;br /&gt;Pic 1.6&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/SemywuFRhKI/AAAAAAAAAD8/L1vt0EReAOY/s1600-h/capture7.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5325984584415937698" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/SemywuFRhKI/AAAAAAAAAD8/L1vt0EReAOY/s400/capture7.bmp" style="cursor: hand; height: 317px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pic 1.7&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/117331183902018014-2540113715679706773?l=exmloracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://exmloracle.blogspot.com/feeds/2540113715679706773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://exmloracle.blogspot.com/2009/05/oracle-adf-master-detail-page.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/117331183902018014/posts/default/2540113715679706773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/117331183902018014/posts/default/2540113715679706773'/><link rel='alternate' type='text/html' href='http://exmloracle.blogspot.com/2009/05/oracle-adf-master-detail-page.html' title='Oracle ADF Master Detail Page'/><author><name>eoracleapps</name><uri>http://www.blogger.com/profile/13273545679602930642</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7Ak4gihVK6k/SemwPfs2j6I/AAAAAAAAADU/gW7UAd8pFCA/s72-c/capture8.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-117331183902018014.post-2432577444115024895</id><published>2009-07-05T05:17:00.000-07:00</published><updated>2010-12-16T00:06:49.147-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='MiddleWare'/><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusion'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>How to export ADF table data into excel Sheet.</title><content type='html'>Oracle ADF provides lot of utilities and controls. Among them is how to export data from ADF table to Excel Sheet.&lt;br /&gt;In my example I am taking case to add this in Menu Item.&lt;br /&gt;&lt;br /&gt;Following are steps to do that.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add Toolbar , Menu and Menu Item to your ADF Page.&lt;/li&gt;&lt;li&gt;Give a meaningful name to your Menu Item.&lt;/li&gt;&lt;li&gt;Add Table control.&lt;/li&gt;&lt;li&gt;From "Component Palette" go to "Operation" and drag “Export Collection Action Listener” and drop it over your Menu Item.&lt;/li&gt;&lt;li&gt;In the Popup “Insert Export Collection Action Listener” enter value for table you want to export in “ExportedId” and “Type” as shown below. &lt;a name='more'&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://2.bp.blogspot.com/_7Ak4gihVK6k/SeSAahzxCgI/AAAAAAAAACs/d-NhktveH3M/s1600-h/capture1.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5324521852699216386" src="http://2.bp.blogspot.com/_7Ak4gihVK6k/SeSAahzxCgI/AAAAAAAAACs/d-NhktveH3M/s400/capture1.bmp" style="cursor: hand; height: 153px; width: 334px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For “ExportedId” select the value of the table that you want to export as shown below. (In my example, I have 2 split frames and my table is in 2nd Split Frame).&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://2.bp.blogspot.com/_7Ak4gihVK6k/SeSBgqRFlEI/AAAAAAAAAC0/z50Y0RxYl3o/s1600-h/capture3.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5324523057560523842" src="http://2.bp.blogspot.com/_7Ak4gihVK6k/SeSBgqRFlEI/AAAAAAAAAC0/z50Y0RxYl3o/s400/capture3.bmp" style="cursor: hand; height: 288px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For Type “Select excelHTML” from drop down list and you are all set to go.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://4.bp.blogspot.com/_7Ak4gihVK6k/SeSBv5GeqtI/AAAAAAAAAC8/Hhpqrw7vMbI/s1600-h/capture4.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5324523319240600274" src="http://4.bp.blogspot.com/_7Ak4gihVK6k/SeSBv5GeqtI/AAAAAAAAAC8/Hhpqrw7vMbI/s400/capture4.bmp" style="cursor: hand; height: 152px; width: 395px;" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;ul&gt;&lt;li&gt;At Run time select your Menu and export data to excel.&lt;/li&gt;&lt;/ul&gt;For more details or demo , send me an email.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/117331183902018014-2432577444115024895?l=exmloracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://exmloracle.blogspot.com/feeds/2432577444115024895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://exmloracle.blogspot.com/2009/04/how-to-export-adf-table-data-into-excel.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/117331183902018014/posts/default/2432577444115024895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/117331183902018014/posts/default/2432577444115024895'/><link rel='alternate' type='text/html' href='http://exmloracle.blogspot.com/2009/04/how-to-export-adf-table-data-into-excel.html' title='How to export ADF table data into excel Sheet.'/><author><name>eoracleapps</name><uri>http://www.blogger.com/profile/13273545679602930642</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7Ak4gihVK6k/SeSAahzxCgI/AAAAAAAAACs/d-NhktveH3M/s72-c/capture1.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-117331183902018014.post-2984552233616696036</id><published>2009-07-04T00:20:00.000-07:00</published><updated>2010-12-16T00:07:10.014-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='MiddleWare'/><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusion'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>How to Create LOV in JSF Page (Java /SOA)</title><content type='html'>In this blog I will explain in details how to create LOV on JSF Page.&lt;br /&gt;&lt;strong&gt;Test case – &lt;/strong&gt;In this example, I will create a VO on STATEMENT_LINES(BgStatementLinesView). One of attribute of this VO is Budget category_id.I will create another VO on BUDGET_CATEGORY(BgBudgetCategoryView) , this VO has attributes&lt;br /&gt;1.Category ID&lt;br /&gt;2.Category Name.&lt;br /&gt;Finally I create LOV that will display category Name and category ID and attach that to the category_id attribute of BUDGET_LINES.&lt;br /&gt;&lt;strong&gt;Steps&lt;/strong&gt;1.Open Oracle Jdeveloper (Jdev11g).&lt;br /&gt;2.Select New application.&lt;br /&gt;3.Select the template Fusion Web Application (ADF) and Wizard will help you to create TWO projects.&lt;br /&gt;Model&lt;br /&gt;View Controller.&lt;br /&gt;Model is for Data Control and ViewController for UI.In Model Project Design the Business Services by selecting categories &amp;gt; business tier &amp;gt;ADF Business components &amp;gt;“Business Components from table”.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;1. Complete Database connection Setup. &lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/Se2KGdeq_RI/AAAAAAAAAFU/Jq9E6TW1P2c/s1600-h/capture2.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5327065777846287634" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/Se2KGdeq_RI/AAAAAAAAAFU/Jq9E6TW1P2c/s400/capture2.bmp" style="cursor: hand; float: right; height: 204px; margin: 0px 0px 10px 10px; width: 230px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Select the BUDGET_LINES and BUDGET_CATEGORIES table and created Entity Object (EO). Then Create VO budgetlinesVOI and budgetcategoryVO finally create Application Module (AM)&lt;br /&gt;&lt;br /&gt;3. Creation of Application Model will exposed our VO to client, and they will appear under Data Control.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.Save your Work.&lt;br /&gt;&lt;br /&gt;In ViewController Project open adfc-config.xml and drag a JSF page component by dragging View from Component palette. Save your work&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_7Ak4gihVK6k/Se2LOG9OjSI/AAAAAAAAAFk/qwZf7cYlBZk/s1600-h/capture3.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5327067008751013154" src="http://2.bp.blogspot.com/_7Ak4gihVK6k/Se2LOG9OjSI/AAAAAAAAAFk/qwZf7cYlBZk/s400/capture3.bmp" style="cursor: hand; float: right; height: 357px; margin: 0px 0px 10px 10px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;1. Open the page and save it as budgetlov.jspx. (Please note that this is unbounded task flow).&lt;br /&gt;2.Drag Statement lines VO (BgStatementLilnesView)from data control and drop on JSF pages as ADF Form.&lt;br /&gt;3.Open BgStatementLilnesView.xml and Select View Accessor and then select ADD (+).&lt;br /&gt;4. Add BudgetCategory VO (bgBudgetCategoryView1) to BudgetStatementLines VO by moving bugetcategory VO from “Available View Objects “ to “View Accessors” as shown in Pic1.1&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/Se2MOduyL8I/AAAAAAAAAF0/B-8gVsGTQ0I/s1600-h/capture4.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5327068114376077250" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/Se2MOduyL8I/AAAAAAAAAF0/B-8gVsGTQ0I/s400/capture4.bmp" style="cursor: hand; height: 51px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4. Go to the attributes of the BgStatementLinesView.xml (STATEMENT LINES VO) select the attribute where you want attach LOV (in my case it is CategoryId).&lt;br /&gt;&lt;br /&gt;5. Double click the attribute&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/Se2L0WqeGcI/AAAAAAAAAFs/epdOqleXWVU/s1600-h/capture5.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5327067665802336706" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/Se2L0WqeGcI/AAAAAAAAAFs/epdOqleXWVU/s400/capture5.bmp" style="cursor: hand; height: 328px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. Select List of Values (in Searach) and then Check the check box “Enable List of values”, it will highlight the category view “BgBudgetCategoryView1” , double click the category ID (because we want to build LOV on category ID , as category_id column exists in both the Vos).&lt;br /&gt;&lt;br /&gt;7. Go to “Go to UI Hints” tab&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/Se2WsY7S1LI/AAAAAAAAAHE/u3pcsdu60UI/s1600-h/capture9.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5327079623598724274" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/Se2WsY7S1LI/AAAAAAAAAHE/u3pcsdu60UI/s400/capture9.bmp" style="cursor: hand; height: 322px; width: 363px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_7Ak4gihVK6k/Se2URR40fTI/AAAAAAAAAGs/YoeWdE2a4lU/s1600-h/capture3.bmp"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;8. Set Default List Type = Combo box with List of valies and Include Search region = All Queryable Attributes&lt;br /&gt;&lt;br /&gt;9. If Include Search Region = “All Query able attribute” LOV will popup search block which allow us to search based on all the fields of category table&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_7Ak4gihVK6k/Se2UlmmSmjI/AAAAAAAAAG0/zohw9E-XbVY/s1600-h/capture10.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5327077307986385458" src="http://4.bp.blogspot.com/_7Ak4gihVK6k/Se2UlmmSmjI/AAAAAAAAAG0/zohw9E-XbVY/s400/capture10.bmp" style="cursor: hand; height: 216px; width: 395px;" /&gt;&lt;/a&gt;&lt;br /&gt;On the other hand , if we have requirement to allow user to query based on few attribute we need to define the view criteria.In my example I have added a restriction to allow user to do query based on 1.BudgetID&lt;br /&gt;2.BudgetName&lt;br /&gt;3.Comments&lt;br /&gt;by defining view criteria&lt;br /&gt;4.save and let’s go back to LOV again.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/Se2VnxCsHII/AAAAAAAAAG8/Elq_qUCnhss/s1600-h/capture16.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5327078444661218434" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/Se2VnxCsHII/AAAAAAAAAG8/Elq_qUCnhss/s400/capture16.bmp" style="cursor: hand; height: 400px; width: 366px;" /&gt;&lt;/a&gt;&lt;br /&gt;As we can see in above Pic while defing LOV definition we can see just defined view criteria that we have created in previous step.&lt;br /&gt;Save and Run page again&lt;br /&gt;&lt;br /&gt;Seach page on selecting the category ID attribute will allow us to Query only based on BudgetID, BudgetName and Comments.&lt;br /&gt;&lt;br /&gt;Litte more Add on for this blog - If we change Default List Type to Choice List , JSF page will not dispaly serach Page any more , It will just list of value with category ID and category Name.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/Se2QYjGtyHI/AAAAAAAAAGk/EgrKcTc88qM/s1600-h/capture17.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5327072685663832178" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/Se2QYjGtyHI/AAAAAAAAAGk/EgrKcTc88qM/s400/capture17.bmp" style="cursor: hand; height: 363px; width: 400px;" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/117331183902018014-2984552233616696036?l=exmloracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://exmloracle.blogspot.com/feeds/2984552233616696036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://exmloracle.blogspot.com/2009/05/how-to-create-lov-in-jsf-page-java-soa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/117331183902018014/posts/default/2984552233616696036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/117331183902018014/posts/default/2984552233616696036'/><link rel='alternate' type='text/html' href='http://exmloracle.blogspot.com/2009/05/how-to-create-lov-in-jsf-page-java-soa.html' title='How to Create LOV in JSF Page (Java /SOA)'/><author><name>eoracleapps</name><uri>http://www.blogger.com/profile/13273545679602930642</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7Ak4gihVK6k/Se2KGdeq_RI/AAAAAAAAAFU/Jq9E6TW1P2c/s72-c/capture2.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-117331183902018014.post-4945376247762339032</id><published>2009-07-02T17:53:00.000-07:00</published><updated>2010-12-16T00:07:30.175-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='MiddleWare'/><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusion'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>How to pass Parameters between ADF Pages. (SOA)</title><content type='html'>&lt;strong&gt;Test case –&lt;/strong&gt; How to pass parameter between ADF Pages.we have an application to capture the details from credit card statements and then prepare Monthly Budget (Budget has Header, lines and spending category).&lt;br /&gt;In this example,&lt;br /&gt;1. I will create a Master – Detail Page based on the Budget Header and Lines. I will call it Budget detail page,&lt;br /&gt;2. Create another page that will just Display the&lt;br /&gt;a. Buget ID&lt;br /&gt;b. Budget Name&lt;br /&gt;c. Process flag. I will call it Budget Page.&lt;br /&gt;3. At Run time, I open Budget Page (Display Budget Details in Table) and click Budget ID, and it will open Budget detail page with all the details of budget whose ID I have selected.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Steps&lt;/strong&gt;Open Oracle Jdeveloper (Jdev11g).&lt;br /&gt;Select new application.&lt;br /&gt;Select the template Fusion Web Application (ADF) and Wizard will help you to create TWO projects.&lt;br /&gt;Model&lt;br /&gt;View Controller.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Model is for Data Control and ViewController for UI.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In Model Project Design the Business Services by selecting categories &amp;gt; business tier &amp;gt;ADF Business components &amp;gt;“Business Components from table”.&lt;br /&gt;1. Complete Database connection Setup.&lt;br /&gt;2. Select the budget header, budget_lines and budget_categories table and created Entity Object (EO) , then Create VO for Budget header and budget lines and finally create Application Module (AM)&lt;br /&gt;3. Creation of Application Model will exposed our VO to client, and they will appear under Data Control.&lt;br /&gt;4. Save your Work.&lt;br /&gt;&lt;br /&gt;In ViewController Project open adfc-config.xml and drag a JSF page component by dragging View from Component palette. Save your work&lt;br /&gt;1. Create Master Detail page (Budget detail page) for budget Header /Lines. (Refer my blog).&lt;br /&gt;As shown Pic 1.1&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_7Ak4gihVK6k/Se0c-YbpEfI/AAAAAAAAAE0/Rtz1PhuTLJg/s1600-h/capture22.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5326945792285020658" src="http://2.bp.blogspot.com/_7Ak4gihVK6k/Se0c-YbpEfI/AAAAAAAAAE0/Rtz1PhuTLJg/s400/capture22.bmp" style="cursor: hand; height: 400px; width: 297px;" /&gt;&lt;/a&gt;&lt;br /&gt;2. Create Budget Page. This Page will display 3 columns of Budget Header table in tabular Form. As shown Pic 1.2&lt;br /&gt;&lt;br /&gt;3.Drag “Control flow case” from the Component palette and draw link between these 2 as&lt;br /&gt;shown Pic 1.3&lt;br /&gt;&lt;br /&gt;4.Give name “budget” to flow from Budget Page to Budget detail page and Param between Budget detail page to Budget page.&lt;br /&gt;&lt;br /&gt;5. (as Shown Pic 1.4)Open Budget Page, Follow below navigation&lt;br /&gt;Data Control &amp;gt; Select Data Control for Budget Page &amp;gt; Operations &amp;gt; setCurrentRowWithKeyvalue.&lt;br /&gt;Drag It and drop it over the BudgetID as “ADF Link” in BudgetPage.&lt;br /&gt;&lt;br /&gt;6. (as Shown Pic 1.5 )&lt;br /&gt;Go to Property of the BudgetID and copy value property.&lt;br /&gt;Common&amp;gt;Value &amp;lt; #{row.BudgetId} 7. (as Shown Pic 1.6) Go to Property of line setCurrentRowWithKeyvalue replace Common &amp;gt;Text with #{row.BudgetID}&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_7Ak4gihVK6k/Se0dUmBMd4I/AAAAAAAAAFE/Fdd6YT2u0fY/s1600-h/capture3.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5326946173889312642" src="http://2.bp.blogspot.com/_7Ak4gihVK6k/Se0dUmBMd4I/AAAAAAAAAFE/Fdd6YT2u0fY/s400/capture3.bmp" style="cursor: hand; height: 321px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;8. (as Shown Pic 1.7) Navigate to Binding tab from Designer tab and Click “setCurrentRowWithKeyvalue”. In structure window as shown in Pic 1.8, expand the “setCurrentRowWithKeyvalue” select rowkey&lt;br /&gt;&lt;br /&gt;9. (as Shown Pic 1.9 ) In property box paste “#{row.BudgetId}” rowkey property “Ndvalue”.&lt;br /&gt;&lt;br /&gt;10. (as Shown Pic 1.10) Click on the BudgetID link and in properties window select Action = Budget&lt;br /&gt;&lt;br /&gt;11. Drag and drop button component on the Budget Detail Page , Open the Property tab for button and set Action = param.&lt;br /&gt;&lt;br /&gt;12.Save your work and run the Page, as shown below.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_7Ak4gihVK6k/Se1aZCiFh0I/AAAAAAAAAFM/I36sHfsIa0g/s1600-h/capture3_1.bmp"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5327013320472233794" src="http://1.bp.blogspot.com/_7Ak4gihVK6k/Se1aZCiFh0I/AAAAAAAAAFM/I36sHfsIa0g/s400/capture3_1.bmp" style="cursor: hand; height: 164px; width: 400px;" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/117331183902018014-4945376247762339032?l=exmloracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://exmloracle.blogspot.com/feeds/4945376247762339032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://exmloracle.blogspot.com/2009/05/how-to-pass-parameters-between-adf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/117331183902018014/posts/default/4945376247762339032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/117331183902018014/posts/default/4945376247762339032'/><link rel='alternate' type='text/html' href='http://exmloracle.blogspot.com/2009/05/how-to-pass-parameters-between-adf.html' title='How to pass Parameters between ADF Pages. (SOA)'/><author><name>eoracleapps</name><uri>http://www.blogger.com/profile/13273545679602930642</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7Ak4gihVK6k/Se0c-YbpEfI/AAAAAAAAAE0/Rtz1PhuTLJg/s72-c/capture22.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-117331183902018014.post-1462443619127932970</id><published>2009-07-02T02:11:00.000-07:00</published><updated>2009-10-27T09:22:25.260-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='MiddleWare'/><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusion'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Oracle Jdev ADF Bounded Task flow</title><content type='html'>&lt;strong&gt;What is Bounded Task flow -&lt;/strong&gt; As name says these are the task flows with well-defined boundary.&lt;br /&gt;&lt;strong&gt;They have activities of type&lt;/strong&gt; -View, Router, Method call , task flow call and return etc.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Some of Important characteristics of bounded task flows are&lt;br /&gt;&lt;/strong&gt;1.Single point of entry &amp;amp; zero or more exit points.&lt;br /&gt;2.Use as region on a page with Page Fragments.&lt;br /&gt;3.You can pass parameters to bounded task flows.&lt;br /&gt;4.It must be called to invoke it etc&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;There are 2 methods to create bounded task flow&lt;br /&gt;&lt;/strong&gt;Initially create bounded task flow flow with pages and then convert into fragments after testing pages completely. Please note that you cannot run individual fragments itself.&lt;br /&gt;Create unbounded task flow and then extract part of it as unbounded task flow.&lt;br /&gt;&lt;br /&gt;Jdev provide us option to convert Bounded task flow with pages into Bounded task flow with fragments and vice – versa in single click of mouse.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Application of Bounded task flow – &lt;/strong&gt;&lt;br /&gt;As set of pages and Other activities in a large application.&lt;br /&gt;As a region, providing navigation between page fragments in a single containing page.&lt;br /&gt;With a modal dialog box, launched from a page.&lt;br /&gt;&lt;br /&gt;In this example, I will explain how a Unbounded task flow Page work.&lt;br /&gt;For my test case I have design a JSF Page with Panel Accordin (with 2 Panels).&lt;br /&gt;Panel 1 has simple Button that calls Unbounded Task flow&lt;br /&gt;Panel 2 has bounded task flow with 3 fragments along with Train Control.&lt;br /&gt;&lt;br /&gt;Here, I will discuss unbounded task flow only.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Create one U&lt;strong&gt;nbounded task flow &lt;/strong&gt;as shown below&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_7Ak4gihVK6k/Sg6DfgU_h-I/AAAAAAAAAbQ/Lbznd4NtBpY/s1600-h/bounded+18.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336347185757784034" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 270px" alt="" src="http://2.bp.blogspot.com/_7Ak4gihVK6k/Sg6DfgU_h-I/AAAAAAAAAbQ/Lbznd4NtBpY/s400/bounded+18.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Create &lt;strong&gt;Bounded task flow &lt;/strong&gt;“Stat-task_flow_definition.xml: as shown below&lt;br /&gt;web Tier &gt; JSF Page &gt; ADF Task Flow).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6DqjORgLI/AAAAAAAAAbY/ZcPJPIpTXG0/s1600-h/Bounded+Taskf001.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336347375513469106" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 294px" alt="" src="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6DqjORgLI/AAAAAAAAAbY/ZcPJPIpTXG0/s400/Bounded+Taskf001.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Uncheck "Create with page Fragments", as we canot run the Fragments for testing.We can Run only Pages.&lt;br /&gt;Check "Create Train"&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6Dv6uQB_I/AAAAAAAAAbg/tIO4Oz0oBYI/s1600-h/Bounded+Taskf002.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336347467720951794" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 294px" alt="" src="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6Dv6uQB_I/AAAAAAAAAbg/tIO4Oz0oBYI/s400/Bounded+Taskf002.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Drop "view" component from component pallete into task flow.Since this is First page , it will work as Default Page.Default page is always surrounded by GREEN Circle.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6D2Z_aW8I/AAAAAAAAAbo/4NVy9XBhm8A/s1600-h/003.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336347579193646018" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 151px" alt="" src="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6D2Z_aW8I/AAAAAAAAAbo/4NVy9XBhm8A/s400/003.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Drop other required pages.Since we have checked the checkbox "Create train", JDEV automatically create train beteen pages.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6D5lYNKDI/AAAAAAAAAbw/qBvWBRraOUE/s1600-h/004.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336347633790036018" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 201px" alt="" src="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6D5lYNKDI/AAAAAAAAAbw/qBvWBRraOUE/s400/004.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After you drop all pages , Drop the Return Activity.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6D8Qg1MCI/AAAAAAAAAb4/Akc30T_HIbU/s1600-h/005.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336347679728676898" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 333px" alt="" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6D8Qg1MCI/AAAAAAAAAb4/Akc30T_HIbU/s400/005.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once all components for bounded pages droped on task flow, create the pages, by double -click the page .It will create .jspx file.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6EDXgZ-hI/AAAAAAAAAcA/a_L35GDJcPs/s1600-h/006.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336347801865026066" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 310px" alt="" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6EDXgZ-hI/AAAAAAAAAcA/a_L35GDJcPs/s400/006.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;'&lt;br /&gt;&lt;br /&gt;Once Pages are readt , Drop the train components from component pallete.&lt;br /&gt;There are 2 types of train components&lt;br /&gt;1.Train&lt;br /&gt;2.train Buttom bar.&lt;br /&gt;&lt;br /&gt;In my example I will display both&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6EGWu2B0I/AAAAAAAAAcI/wI9CKATW9lk/s1600-h/007.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336347853196756802" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 121px" alt="" src="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6EGWu2B0I/AAAAAAAAAcI/wI9CKATW9lk/s400/007.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Drop train component for each page.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6EJHDad0I/AAAAAAAAAcQ/umafYnEopEs/s1600-h/008.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336347900527671106" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 118px" alt="" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6EJHDad0I/AAAAAAAAAcQ/umafYnEopEs/s400/008.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Drop train component for each page.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6EMWgRw5I/AAAAAAAAAcY/fWh3WMy1e94/s1600-h/009.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336347956214875026" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 151px" alt="" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6EMWgRw5I/AAAAAAAAAcY/fWh3WMy1e94/s400/009.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Drop train component for each page.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_7Ak4gihVK6k/Sg6EYaDvW9I/AAAAAAAAAcg/bfmbeyQe1wk/s1600-h/Bounded+Taskf012.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336348163327351762" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 294px" alt="" src="http://1.bp.blogspot.com/_7Ak4gihVK6k/Sg6EYaDvW9I/AAAAAAAAAcg/bfmbeyQe1wk/s400/Bounded+Taskf012.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once all pages are tested , convert them in page fragments as shown below.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6EfBVy3GI/AAAAAAAAAco/fM6KRNwjpeI/s1600-h/Bounded+Taskf013.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336348276951276642" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 294px" alt="" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6EfBVy3GI/AAAAAAAAAco/fM6KRNwjpeI/s400/Bounded+Taskf013.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Page Fragrements will stores with extension jsff.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6EiN-3FnI/AAAAAAAAAcw/gU3NFlBQnTA/s1600-h/014.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336348331884353138" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 332px" alt="" src="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6EiN-3FnI/AAAAAAAAAcw/gU3NFlBQnTA/s400/014.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Page Fragments conversion.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6ElKKGAvI/AAAAAAAAAc4/FiDDCqsWVqs/s1600-h/015.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336348382397334258" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 341px" alt="" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6ElKKGAvI/AAAAAAAAAc4/FiDDCqsWVqs/s400/015.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can convert back fragents into Pages , as shown below.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6EoprxgYI/AAAAAAAAAdA/pQ3VrlYvbxQ/s1600-h/016.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336348442399703426" style="WIDTH: 391px; CURSOR: hand; HEIGHT: 400px" alt="" src="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6EoprxgYI/AAAAAAAAAdA/pQ3VrlYvbxQ/s400/016.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Go to adfc-config.xml and design Page "Taskflows.jspx", as shown below.&lt;br /&gt;Drag "Panel Accordin" component on Taskflowx.jspx.&lt;br /&gt;In panel Accordin, Create 2 panel&lt;br /&gt;1. Unbounded &amp;amp;&lt;br /&gt;2. Bounded.&lt;br /&gt;&lt;strong&gt;In Unbounded Panel drop a button to cal unbounded taskflow&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;In Bounded Panel Drop the bounded task flow as region.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_7Ak4gihVK6k/Sg6EsaEUTII/AAAAAAAAAdI/NnGtVgKSgSM/s1600-h/Bounded+Taskf017.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336348506927156354" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 294px" alt="" src="http://2.bp.blogspot.com/_7Ak4gihVK6k/Sg6EsaEUTII/AAAAAAAAAdI/NnGtVgKSgSM/s400/Bounded+Taskf017.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Unbounded Task flows to be called from Taskflows.jspx.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_7Ak4gihVK6k/Sg6EvP917wI/AAAAAAAAAdQ/27Y7qC3TAVQ/s1600-h/Bounded+Taskf018.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336348555755253506" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 294px" alt="" src="http://2.bp.blogspot.com/_7Ak4gihVK6k/Sg6EvP917wI/AAAAAAAAAdQ/27Y7qC3TAVQ/s400/Bounded+Taskf018.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bounded task flow droped as region on "taskflows.jspx".&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_7Ak4gihVK6k/Sg6EyZffjjI/AAAAAAAAAdY/N6-bFz1PWd0/s1600-h/019.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336348609851919922" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 91px" alt="" src="http://1.bp.blogspot.com/_7Ak4gihVK6k/Sg6EyZffjjI/AAAAAAAAAdY/N6-bFz1PWd0/s400/019.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bounded task flow droped as region on "taskflows.jspx".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6E1qcMQ6I/AAAAAAAAAdg/MJnyo43sXOQ/s1600-h/020.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336348665941083042" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 185px" alt="" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6E1qcMQ6I/AAAAAAAAAdg/MJnyo43sXOQ/s400/020.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Run "taskflows.jspx".&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_7Ak4gihVK6k/Sg6E4e8vEdI/AAAAAAAAAdo/OCCdHUltuBg/s1600-h/021.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336348714395963858" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 78px" alt="" src="http://1.bp.blogspot.com/_7Ak4gihVK6k/Sg6E4e8vEdI/AAAAAAAAAdo/OCCdHUltuBg/s400/021.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6E7c0tBOI/AAAAAAAAAdw/SzwTKTXXO1c/s1600-h/022.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336348765365011682" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 178px" alt="" src="http://3.bp.blogspot.com/_7Ak4gihVK6k/Sg6E7c0tBOI/AAAAAAAAAdw/SzwTKTXXO1c/s400/022.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Run "taskflows.jspx".&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6E-qFd7AI/AAAAAAAAAd4/4B4RJykvN2E/s1600-h/023.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336348820464593922" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 209px" alt="" src="http://4.bp.blogspot.com/_7Ak4gihVK6k/Sg6E-qFd7AI/AAAAAAAAAd4/4B4RJykvN2E/s400/023.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Run "taskflows.jspx".&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_7Ak4gihVK6k/Sg6FBtsW2-I/AAAAAAAAAeA/Xe10DsjaSLs/s1600-h/024.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336348872972622818" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 228px" alt="" src="http://1.bp.blogspot.com/_7Ak4gihVK6k/Sg6FBtsW2-I/AAAAAAAAAeA/Xe10DsjaSLs/s400/024.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Run "taskflows.jspx".&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_7Ak4gihVK6k/Sg6FFpnOvvI/AAAAAAAAAeI/FBhVe1EIA4Y/s1600-h/025.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5336348940596854514" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 165px" alt="" src="http://1.bp.blogspot.com/_7Ak4gihVK6k/Sg6FFpnOvvI/AAAAAAAAAeI/FBhVe1EIA4Y/s400/025.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Fusion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/117331183902018014-1462443619127932970?l=exmloracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://exmloracle.blogspot.com/feeds/1462443619127932970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://exmloracle.blogspot.com/2009/05/oracle-jdev-adf-bounded-task-flow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/117331183902018014/posts/default/1462443619127932970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/117331183902018014/posts/default/1462443619127932970'/><link rel='alternate' type='text/html' href='http://exmloracle.blogspot.com/2009/05/oracle-jdev-adf-bounded-task-flow.html' title='Oracle Jdev ADF Bounded Task flow'/><author><name>eoracleapps</name><uri>http://www.blogger.com/profile/13273545679602930642</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7Ak4gihVK6k/Sg6DfgU_h-I/AAAAAAAAAbQ/Lbznd4NtBpY/s72-c/bounded+18.bmp' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
