X

MAF 2.1 - New task Flow PageFlow Scope Default: push-new

MAF 2.1 has been released to public and the New features document mentions a feature provides a behavior to task flows that is familiar for ADF developers: "Support for limiting pageFlowScope variables to task flow boundaries MAF 2.1.0 provides the ability to restrict the scope of a pageFlowScope variable to the bounded task flow only. Any updates to the variable in one bounded task flow would not impact a pageFlowScope variable with thesame name in another bounded task flow....

Wednesday, January 28, 2015 | Mobile | Read More

Working with the ADF Faces Diagrammer component

Duncan Mills from Product Management became the go-to expert for ADF Faces Data Visualization Tools (DVT) Diagrammer matters. Duncan put together a yet 11 part tutorial that he released on the DVT product blog. Below is the complete list of links to all 11 documents for your and mine easy and convenient access https://blogs.oracle.com/data-visualizations/entry/a_guide_to_diagram_part1 https://blogs.oracle.com/data-visualizations/entry/a_guide_to_diagram_part2 https://blogs.orac...

Tuesday, December 9, 2014 | ADFv | Read More

How to solve "apapt.exe file missing" error when uprading ADF Mobile

Investigating the issue in which a missing aapt.exe file is reported by JDeveloper after upgrading to the latest ADF Mobile patch I found a bug that fixes a previous problem which was that Google moved the executable file. As a response ADF Mobile now looks in the Android build path for the executable and also allows you to select the build tools location in the ADF Mobile preferences if the executable cannot be found by JDeveloper. If you are on an old version of the Android...

Wednesday, February 5, 2014 | ADF Mobile | Read More

Setting-up ADF Mobile for Android using JDeveloper 11.1.2.4 with the latest ADF Mobile patch

Installing the latest ADF Mobile patch for JDeveloper 11.1.2.4 prevented deployment of mobile applications with some weird error messages. I concluded that its probably my Android SDK that needed renewal. To go for a clean approach, I deleted my Android SDK and downloaded the latest and greatest from the Web. Since my last SDK installation, Google has changed the Android directory structure quite a bit. For those struggling, here is what I configured in the Android SDK and...

Monday, February 3, 2014 | ADF Mobile | Read More

To German Customers: Get Trainined on ADF Mobile

To all German Customers! Oracle Germany runs two free-of-charge ADF Mobile single day workshops in Munich (Feb. 4th) and Frankfurt (Feb. 6th) Agenda 09:30    Registrierung           10:00    Beginn: Vorstellung Agenda und Workshop    11:00    Übungen Teil 1 - ADF Anwendung erstellen und deployen           12:00    Mittagspause mit Mittagessen           13:00    Übungen Teil 2 - ADF Mobile Anwendung erweitern, deployen, testen           15:00    Kaffeepause          15:30   ...

Friday, December 20, 2013 | ADF Mobile | Read More

Review: Oracle Data Integrator Essentials [Video]

Packt Publishing (http://www.packtpub.com/). released a new video tutorial about Oracle Data Integrator http://bit.ly/1i8k1jr  authored by Andreas Nobbmann of TrivadisAG in Switzerland. The video is well paced and structured and in its larger parts focuses on ODI Studio, the IDE for building data integration projects. The TOC shown below is from the Packt Publishing website and while it gives  the timing for each section as +20 minutes, each item on the TOC is provided in its...

Wednesday, December 11, 2013 | Book Reviews | Read More

ADF Mobile Deployment Problem to Google Play

Joe Huang from ADF Mobile Product Management answered a question on OTN regarding changes in Google Play that cause ADF mobile applications to fail deployment if accessed from a tablet. The OTN question and answer is referenced from this link:  https://forums.oracle.com/thread/2575378 However, Joe went the extra mile and wrote  a blog summary of what happened at Google Play and how you can fix this for current ADF Mobile applications (up to version 11.1.2.4, as I expect a fix...

Monday, September 9, 2013 | ADF Mobile | Read More

JDeveloper 11g R2 and 12c: How-to "virtually" press a button on page load

A frequent asked question is about how to press a command button upon load of a page or view. If you are on JDeveloper 11g R2 or JDeveloper 12c, then the solution to this programming challenge is the use of JavaServer Faces (JSF) 2 system events (If you are on JDeveloper 11g R1 then you are on JSF 1.2 and this JSF functionality doesn't exist). System events are phase listeners that you  associate with a component instead of a view or page as a whole. In the use case mentioned...

Thursday, September 5, 2013 | ADFv | Read More

New: Check-out the ADF Architecture TV Channel on Youtube

The new Oracle ADF TV channel - or ADF Architecture TV channel - on YouTube is a direct outcome of the "Real World ADF Design & Architecture Principles" training Oracle Product Management built over the last year and a half. This channel is free and publishes, week by week, episode by episode, a huge array of short, distinct topics as relating to all parts of the ADF development lifecycle, from planning, to design, todevelopment, deployment and delivery.  All in all we...

Tuesday, July 23, 2013 | Info | Read More

Free EMEA ADF and ADF Mobile 2-day workshop for beginners

We offer free 2 days hands-on ADF & ADF mobile workshops for Oracle partners who want to become ADF Specialized. Oracle Application Development Framework (ADF) is the standards based, strategic framework powering Oracle Fusion Middleware and Oracle Fusion Applications. From desktop, to Web, to mobile, we′ll introduce you to the development platform Oracle is using for its Fusion enterprise applications, discussits architecture and offer hands-on experience on how to get...

Thursday, July 18, 2013 | ADF Mobile | Read More

Book Review: Instant Oracle BPM for Financial Services How-to

Just recently, Packt Publishing released "Instant Oracle BPM for Financial Services How-to" (http://www.packtpub.com/oracle-business-process-management-financial-services/book)  by B. M. Madhusudhan Rao (a.k.a James Smith  - http://jamessmith73.wordpress.com/ - for those familiar with the SOA blog-sphere. The book follows the layout of the cookbook series the sample publisher runs, is cheap as it only costs 3.39 Euro for 62 pages it covers, which appears to be a fair price. The...

Saturday, June 8, 2013 | Book Reviews | Read More

How-to highlight input field content when accessed from auto-tab

A question on the OTN forum has been how to highlight the content of an input field when navigation to it occurs using the auto tab functionality. As a reminder, the "autotab" property of an input field, if set to "true", tabs out of the field that you currently edit when the maximum length of the field entry is reached. The problem reported on OTN for JDeveloper 11.1.2.4 (and I am sure its the same on other versions of JDeveloper) is that manual tabbing into a next field will...

Tuesday, June 4, 2013 | JavaScript | Read More

Table Pagination with JDeveloper 11.1.1.7

One of the new features listed for JDeveloper 11.1.1.7 is pagination for tables, a frequently requested and long awaited feature (http://www.oracle.com/technetwork/developer-tools/jdev/index-088099.html). The tag documentation about this feature states that to switch pagination on you simply set the scrollPolicy property to page.Truth to be told, there is a little bit more for you to do. 1. You need to set the autoHeightRows property to 0 2. You need to make sure the...

Wednesday, May 15, 2013 | ADF Mobile | Read More

Heads up! ADF News Session - Thursday March 7th, 8.30 - 9:00 AM (CET) - Topic: ADF - Q & A

The German ADF Partner Community organizes a webcast with Duncan Mills. This session is in English and thus suitable for everyone to attend (as far as timezone differences allow it). To quote from the official announcement: Duncan Mills is a senior director of product management.for Oracle´s application development tools. In recent years responsible for the Oracle Application Development Framework (ADF). With a strong background as well in Forms<<<You are invited to join the...

Tuesday, February 26, 2013 | Info | Read More

Book Review: SOA Made Simple by L. Dikmans and R.v.Luttikhuizen

Just finished reading "SOA Made Simple" by Lonneke Dikmans and Ronald van Luttikhuizen, published in 12/2012 by Packt Publishing and use this summary to share my thoughts.  "SOA Made Simple" is a very good book that - beside of helping readers to do SOA right - will have an impact to how you look at going out for breakfast. The "breakfast example" is one of the great samples that the authors consistently use throughout the book.In addition, this book is well written and covers...

Wednesday, February 20, 2013 | Book Reviews | Read More

How-to programmatically display a popup message

For an ADF mobile sample I needed to display a confirmation message upon successful upload of an image. Because I could not see how to do this from Java using the ADF Mobile popup dialog, I used JavaScript. The JavaScript function I called is part of PhoneGap, which is neat because this ensures I don't have to maintain custom JavaSCript code in my AMX page.  To call the PhoneGap notification dialog, I  added 20-October 2013: important. Since I've written this sample, the...

Wednesday, January 23, 2013 | ADF Mobile | Read More

JavaScript function to intercept or listen for tab remove event

The af:panelTabbed component allows you to remove tabs from display using the tabRemoval property tabRemoval Valid Values: none, all, allExceptLast determines if tab removal is enabled. This attribute supports these tabRemoval types: none - tab removal is not enabled. all - tab removal is enabled on all tabs, regardless if they are disclosed. The last tab in the panelTabbed can be removed. allExceptLast - tab removal is enabled on all tabs, regardless ifthey are disclosed. The...

Friday, January 4, 2013 | JavaScript | Read More

Book Review: Securing WebLogic Server 12c

"Security is a must in modern Enterprise architecture, and WebLogic implements a very complete, complex architecture for this." is a quote taken from the book covers of Securing WebLogic Server 12c book written by Luca Masini and Rinaldi Vincenzo, published by Packt Publishing (http://www.packtpub.com/weblogic-12c-security-handbook/book).The book then sets the reader's expectation within another quote from the book covers: "Securing WebLogic Server 12c will simplify this...

Thursday, December 27, 2012 | Book Reviews | Read More

Accessing ADF Faces components that are read-only from JavaScript

Almost as a note to myself and to justify the time I spent on analyzing aproblem, a quick note on what to watch out for when working trying to access read-only ADF Faces components from JavaScript.  Those who tried JavaScript in ADF Faces probably know that you need to ensure the ADF Faces component  is represented by a JavaScript object on the client. You do this either implicitly by adding an af:clientListener component (in case you want to listen for a component event) or...

Monday, December 17, 2012 | ADFv | Read More

Book Review: Oracle ADF Real World Developer’s Guide

Recently PACKT Publishing published "Oracle ADF Real World Developer’s Guide" by Jobinesh Purushothaman, a product manager in our team. Though already the sixth book dedicated to Oracle ADF, it has a lot of great information in it that none of the previous books covered, making it a safe buy even for those who own the other books published by Oracle Press (McGrwHill) and PACKT Publishing. More than the half of the "Oracle ADF Real World Developer’s Guide" book is dedicated to...

Thursday, November 29, 2012 | Book Reviews | Read More

How-to get the binding for a tab in the Dynamic Tab Shell Template

The Dynamic Tab Shell template does expose a method on the Tab.java class that allows you to get access to the ADF binding container for a tab. At least in theory this works, because in practice this call always returns a null value (a bug is filed for this). To work around the problem, you can use code similar to the following to get the ADF binding for a specific tab DCBindingContainer currentBinding = (DCBindingContainer)...

Sunday, October 7, 2012 | ADFv | Read More

Displaying Exceptions Thrown or Caught in Managed Beans

Just came a cross a sample written by Steve Muench, which somewhere deep in its implementation details uses the following code to route exceptions to the ADF binding layer to be handled by the ADF model error handler (which can be customized by overriding the DCErrorHandlerImpl class and configuring the custom class in DataBindings.cpx file) To route an exception to the ADFm error handler, Steve used the following code ((DCBindingContainer)BindingContext.getCurrent().getCurrentB...

Thursday, September 20, 2012 | ADFv | Read More

Oracle ADF Coverage at OOW

Below is the schedule for all ADF related sessions at a glance. Note the Meet and greet session added for Wednesday Octiber 3rd from 4.30 pm to 5:30. Oracle ADF and Fusion Development General Session Mon 1 Oct, 2012 Time Title Location 10:45 AM - 11:45 AM General Session: The Future of Development for Oracle Fusion—From Desktop to Mobile to Cloud Marriott Marquis - Salon 8 12:15 PM - 1:15 PM General Session: Extend Oracle Fusion Apps to Tablets/Smartphones with Oracle Mobile Technology Mo...

Wednesday, September 19, 2012 | Info | Read More

Iterating selected rows in an ADF Faces table

In OTN Harvest May 2012; http://www.oracle.com/technetwork/developer-tools/adf/learnmore/may2012-otn-harvest-1652358.pdf I wrote about "Common mistake when iterating <af:table> rows". In this entry I showed code to access the row associated with a selected table row from the binding layer to avoid the problem of having to programmatically change the selected table row. As it turns out, my solution only worked fro selected table rows that are in the current iterator query...

Wednesday, September 12, 2012 | ADFv | Read More

ADF Partner Community News Session - Open Invitation: "ADF as a basis of Fusion Apps - the biggest ADF project ever (in English)"

After a successful guest performance of Ted Farrell in 2011, this year's international ADF speaker to speak during an ADF News session is Chris Muir from Oracle.  ADF News Session - Friday September 14, 8:30 AM - 9.00 AM (CET) - Topic: ADF as a basis of Fusion Apps - the biggest ADF project ever (in English)+++ this webcast will be conducted in English +++ dial-in numbers conc. ADF News Session, Sep. 14 2012 You are invited to join the next ADF News Session, that is going totak...

Monday, August 27, 2012 | Info | Read More

ADF EMG Sunday at OOW 2012 (30. Sep 2012) - A day full of content

I do know what I am doing on Sunday September 30 2012 at OOW - how about you ? Well, I am sitting in the back of a room packed with ADF enthusiasts at the ADF EMG Sunday session at Moscone South room 305. Chris Muir managed to get a full day track for the EMG on that Sunday, which I know was a lot of work. In addition a he got lots of good speakers with interesting topics lined up. The below is copied from Chris' announcement at: https://blogs.oracle.com/onesizedoesntfitall/ent...

Thursday, August 23, 2012 | Info | Read More

Book Review: Oracle WebLogic Server 12c: First Look

"Oracle WebLogic Server 12c: First Look" written by Michel Schildmeijer and published by Packt Publishing (ISBN 978-1-84968-718-8) is a well structured overview of new features in Java EE 6 and Oracle WebLogic Server 12c. On 117 pages (no typo on my side), Michel provides a well done digest of what you need to know about Java EE 6 development and deployment with WebLogic server 12c. Michel shows in depth expertise in the Java EE and open source landscape as well as in...

Monday, August 20, 2012 | Book Reviews | Read More

Warning: java.lang.IllegalArgumentException: The file .jsff is not a source file

Randomly I experienced the following error when working with JSFF page fragments in JDeveloper 11g R2 (11.1.2.2): Warning: java.lang.IllegalArgumentException: The file file:<directory listed here>\DepartmentsView.jsff is not a source file This happened when I compiled the project. As it seems the compiler treats JSFF page fragments as Java source files. This issue has been reported as bug 12732652 for applications using Facelets as the page source holder. The fix for both...

Tuesday, July 31, 2012 | ADFv | Read More

How-to reset ADF Faces inputFile components

When working with the ADF Faces input file component, you'll notice a change in the UI after uploading a file in that the file name is displayed as a label and the upload button text changes to Update. From a use case perspective this behavior may be fine if you bind the component value property to a managed bean that you want to update with changed file uploads. For generic file upload functionality though you probably preferthe input file to reset its state to the original...

Monday, July 23, 2012 | ADFv | Read More

How-to add new ADF bound table row at the end of a table

A frequent question on OTN, which I often see answered with new rows created on the ADF BC view object level instead the ADF binding layer, is about how to create a new row for a table and append it as the last row in the table. The following code below shows how to do this properly using the binding layer only. Note that while it adds the row as the last row of the table, it doesn't do this as the last row of all possible rows that haven't yet been queried from the database....

Tuesday, July 17, 2012 | ADFm | Read More

How-to dynamically filter model-driven LOV

Often developers need to filter a LOV query with information obtained from an ADF Faces form or other where. The sample below shows how to define a launch popup listener configured on the launchPopupListener property of the af:inputListOfValues component to filter a list of values. <af:inputListOfValues id="departmentIdId" value="#{bindings.DepartmentId.inputValue}" model="#{bindings.DepartmentId.listOfValuesModel}" launchPopupListener="#{PopupLauncher.onPopupLaunch}" … > …</af:inp...

Sunday, June 24, 2012 | ADFm | Read More

Oracle Fusion Applications Design Patterns Now Available

"The Oracle Fusion Applications user experience design patterns are published! These new, reusable usability solutions and best-practices, which will join Oracle dashboard patterns and guidelines that are already available online, are used by Oracle to artfully bring to life a new standard in the user experience, or UX, of enterprise applications. Now, the Oracle applications development community can benefit from the science behind the Oracle FusionApplications user...

Friday, June 22, 2012 | Info | Read More

Partial Submit vs. Auto Submit

Partial Submit ADF Faces adds the concept of partial form submit to JavaServer Faces 1.2 and beyond. A partial submit actually is a form submit that does not require a page refresh and only updates components in the view that are referenced from the command component PartialTriggers property. Another option for refreshing a component in response to a partial submit is call AdfContext.getCurrentInstance.addPartialTarget(component_instance_handle_goes_here)in a managed bean. If...

Thursday, June 21, 2012 | ADFv | Read More

When JDeveloper IDE doesn't render the visual editor

Though with Oracle JDeveloper 11g the problem of the IDE not rendering JSF pages properly in the visual editor has become rare, there always is a way for the creative to break IDE functionality. A possible reason for the visual editor in JDeveloper to break is a failed dependency reference, which often is in a custom JSF PhaseListener configured in the faces-config.xml file. To avoid this from happening, surround the code in your PhaseListener class with the following...

Thursday, June 21, 2012 | JDeveloper | Read More

OEPE with ADF binding support available: Total Eclipse

The current release of Oracle Enterprise Pack for Eclipse, though in technology preview, brings Oracle ADF binding to the Eclipse IDE. You can download the Software from the link below: Oracle Enterprise Pack for Eclipse (12.1.1.1.0) Technical Preview New June 2012 Certified on Windows 7/XP/Vista, MacOS, and Linux. Supported on JDK 6. For many Eclipse users, ADF is new and therefore I expect them to need guidance and help in case they run into issues they don't know how to...

Thursday, June 21, 2012 | Info | Read More

Free Advanced ADF eCourse, part II

A second part of the advanced Oracle ADF online training is available for free. Lynn Munsinger and her team worked hard to deliver this second part of the training as close to the release of the first installment as possible. This two part advanced ADF training provides you with a wealth of advanced ADF know-how and insight for you to adopt in a self-paced manner. Part 1 (though I am sure you have this bookmarked): http://tinyurl.com/advadf-part1 Part 2 (the new material):http://...

Wednesday, June 20, 2012 | Info | Read More

Pretty URL in ADF Faces of JDeveloper 11.1.2.2

Many features planned for Oracle JDeveloper 12c find their way into current releases of Oracle JDeveloper 11g R1 and JDeveloper 11g R2. One example of such a feature is "pretty URL" - or "clean URL" as the Oracle JDeveloper 11g R2 (11.1.2.2) documentation puts it. "A.2.3.24 Clean URLs Historically, ADF Faces has used URL parameters to hold information, such as window IDs and state. However, URL parameters can prevent search engines from recognizing when URLs are actually the...

Monday, June 18, 2012 | ADFv | Read More

af:inputSlider doesn't render in popup for FF, Safari and Chrome

A problem reported on OTN is that the af:inputSlider component of Oracle JDeveloper 11.1.2.2 doesn't show on all browsers except IE when the slider is added as the sole component in a popup. The problem reproduces with the ADF Faces component demo and I filed bug 14207690. The work around, posted by OTN user "Tses" is to set the inlineStyle property on the slider to table <af:inputNumberSlider ... inlineStyle="display:table;"/>

Monday, June 18, 2012 | ADFv | Read More

Programmatically disclosing a node in af:tree and af:treeTable

A common developer requirement when working with af:tree or af:treeTable components is to programmatically disclose (expand) a specific node in the tree. If the node to disclose is not a top level node, like a location in a LocationsView -> DepartmentsView -> EmployeesView hierarchy, you need to also disclose the node's parent node hierarchy for application users to see the fully expanded tree node structure. Working on ADF Code Corner sample #101, I wrote the following code...

Tuesday, June 12, 2012 | ADFv | Read More

Solving the context menu problem with drag and drop in trees

The following drag-and-drop problem has been reported on OTN: An ADF Faces tree component is configured with a af:collectionDropTarget tag to handle drop events. The same tree component also has a context menu defined that is shown when users select the tree with the right mouse button. The problem now was - and I could reproduce this - that the context menu stopped working after the first time the tree handled a drop event. The drag and dropuse case is to associate employees...

Monday, June 11, 2012 | ADFv | Read More

Problem with deleting table rows using ctrl+a for row selection

The following code is commonly shown and documented for how to access the row key of selected table rows in an ADF Faces table configured for multi row selection. public void onRemoveSelectedTableRows(ActionEvent actionEvent) { RichTable richTable = … get access to your table instance … CollectionModel cm =(CollectionModel)richTable.getValue(); RowKeySet rowKeySet = (RowKeySet)richTable.getSelectedRowKeys(); for (Object key : rowKeySet) { richTable.setRowKey(key); JUCtrlHierNodeBindi...

Wednesday, May 30, 2012 | ADFv | Read More

Solving File Upload Cancel Issue

In Oracle JDeveloper 11g R1 (I did not test 11g R2) the file upload component is submitted even if users click a cancel button with immediate="true" set. Usually, immediate="true" on a command button by-passes all modle updates, which would make you think that the file upload isn't processed either. However, using a form like shown below, pressing the cancel button has no effect in that the file upload is not suppressed. Update Aug 29/2012: Appears that all the...

Wednesday, May 30, 2012 | ADFv | Read More

Common mistake when iterating rows

In a blog entry from 2010, Oracle's Jobinesh Purushothaman writes about exceptions that are getting raised after developers iterate the collection of a RichTable instance using calls to setRowKey(key). http://jobinesh.blogspot.co.uk/2010/02/common-mistake-while-iterating-through.html The reason for the exception is that the selected row state is change on the table without synchronization to happen with the ADF bindinglayer. The failure of synchronizing the table selected row...

Tuesday, May 29, 2012 | ADFm | Read More

Guess What - We Want You!

Grant Ronald and the team are looking for help. Grant put the following job posting out on the Internet today The ADF Product Management team are looking for a strong ADF technologist to join people like Frank Nimphius, Chris Muir and Lynn Munsinger as part of the ADF Product Management team tasked with ensuring customers are able to successfully adopt and implement ADF applications. Full details of the job post can be found from the link below, or search on IRC1793732 at https:...

Friday, May 11, 2012 | Info | Read More

Managing component value state correctly

A frequent problem reported on OTN is about failure in saving component values using managed beans especially when multi-select components are used. Usually the problem arises when developers store select choice components values in managed beans they use for JSF component bindings as well (which then makes the managed bean becoming a backing bean). Backing beans however are saved in request scope (at least they should to not err again).Request scope beans however reset their...

Tuesday, May 8, 2012 | ADFv | Read More

Scope object serialization failed (object not serializable)

A common reason for the "SEVERE: ADFc: Scope object serialization failed (object not serializable)" error message is that application developers reference JSF components in managed beans with a scope larger than request. When using the JSF component Binding property to point to a managed bean, think backing bean and thus don't reference beans that are in scopes larger than request scope (don't: viewScope, pageFlowSope, sessionScope, applicationScope). If, from a managed bean...

Friday, May 4, 2012 | ADFv | Read More

How-to invoke a method once upon application start

A requirement on the OTN forum was to execute a method only once upon application start either for the application as a whole (all user instances) or once per application user session. In addition, the method to be executed was exposed as an Operation binding on the ADF binding layer. One way to provide a solution to this requirement is to within the combination of a phase listener on the JSPX of JSF document level and amanaged bean in application or session scope (dependent...

Monday, April 23, 2012 | ADFv | Read More

Which option to choose for accessing Web Services in ADF

Oracle ADF provides three options for integrating Web Service:· Web Service Data Control · JAX-WS proxy client and POJO Data Control · JAX-WS proxy client and programmatic View Objects Note: In the above, I exclude REST services in my recommendation because this is what ADF will address much better using the URL data control in JDeveloper 11g R2 (available) and with improved functionality in the upcoming Oracle JDeveloper 12c release. For deciding which option to use for...

Friday, April 20, 2012 | Web Service | Read More

Task Flow navigation using QueueActionEventInRegion on ADF Region

A common requirement in Oracle ADF is to perform navigation within an ADF region triggered by the parent page. While contextual event is one option to perform this task, the queueActionEventInRegion method exposed on the RichRegion instance is another. The queueActionEventInRegion performs navigation following control flow cases defined for the current view exposed in the region. Control flow cases can be flows that are defined from the view activity to a next activity or...

Wednesday, April 18, 2012 | ADFc | Read More

Gotcha when using JavaScript in ADF Regions

You use the ADF Faces af:resource tag to add or reference JavaScript on a page. However, adding the af:resource tag to a page fragment my not produce the desired result if the script is added as shown below <?xml version='1.0' encoding='UTF-8'?><jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"> <af:resource type="javascript"> function yourMethod(evt){ ... }</af:resource> Adding scripts to a page...

Wednesday, March 28, 2012 | JavaScript | Read More

URL Task Flow vs. WSRP Portlets

A URL task flow is bounded task flow that is deployed as a stand-alone Java EE application on a remote server with its URL Invoke property set to url-invoke-allowed. The URL task flow is accessed either from a direct browser GET request or, when called from another ADF application, through the task flow call activity. For more information about how to invoke URL task flows from a task flow call activity see chapter 15.6.4 How to Call a Bounded Task Flow Using a URL of the...

Monday, March 19, 2012 | ADFc | Read More

Using af:serverListener as a JS client-server proxy

Despite of ADF Faces having a client side JavaScript architecture, JavaScript rule #1 in ADF Faces is to use JavaScript as a fallback option only for development use cases in which there is no native solution to a problem. A built-in feature of the ADF Faces JavaScript client architecture is security that disallows certain component properties like disabled and readOnly to be changed from JavaScript. To quote the JavaScript doc for the AdfRichInputText object: http://docs.oracle...

Thursday, March 8, 2012 | JavaScript | Read More

Creating a custom master-detail presentation using af:panelAccordion

ADF Code Corner sample #81 explains how-to create a custom layout to render master-detail information. In the sample ADF Faces panel tabs are used to render the master data and DVT components are used in the panel tabs to show the detail information. http://www.oracle.com/technetwork/developer-tools/adf/learnmore/81-master-detail-tab-with-graphs-394252.pdf http://www.oracle.com/technetwork/developer-tools/adf/learnmore/81-master-detail-tab-with-graphs-394253.zip The sample...

Monday, March 5, 2012 | ADFv | Read More

Solving JDeveloper 11gR2 issue with ADF Faces login page in IE8

Using Microsoft IE8, forms based authentication in which the login form is built with ADF Faces doesn't load and instead the browser console report complains about invalid or undefined ADF Faces JavaScript objects. The problem that has been reported for JDeveloper 11g R2 using ADF Faces with Facelets seems to occur only for applications using the ADF Security "ADF Authentication" configuration option in combination with an ADF Faces based login form. Using the ADF Security...

Thursday, March 1, 2012 | ADF Security | Read More

The infamous Missing IN or OUT parameter error

Often error messages like "attempt to set a parameter name that does not occur in the SQL" and "Missing IN or OUT parameter at index" are caused by developers mixing required and optional bind variables in their SQL queries WHERE clause. If you used bind variables in ADF Business Components SQL queries, make sure the bind variables are set to required. Bind variables that are marked as optional are only good to be used in View Criterias. In a future version of Oracle...

Wednesday, February 29, 2012 | ADFbc | Read More

How-to learn ADF Skinning

Recently I observed an increase of questions on OTN and Oracle internal that aim for applying CSS on the generated HTML output of an ADF Faces application. Surely, skinning in ADF is not the same as using CSS in tools like Dreamweaver, but it is the proper way of applying custom images and colors to ADF Faces applications. The biggest risk in styling the generated ADF Faces HTML output with CSS is change in the renderer classes. Oracle constantly works onimproving its ADF...

Wednesday, February 29, 2012 | ADF Security | Read More

Accessing WebLogic Server JDBC DataSource from Java in JSF

There may be a requirement for you to access a JDBC data source defined on the WebLogic Server (for example to query a database or database schema other than the one the application's business service is connected with. To access the JDBC DataSource, for example from a managed bean in JSF, you code like the following: java.sql.Connectionconnection = null; try {javax.naming.Context initialContext = new javax.naming.InitialContext(); javax.sql.DataSource dataSource = (javax.sql.Data...

Tuesday, February 28, 2012 | ADFv | Read More

Best practice invoking business services methods from JSF beans

Recently there was an increasing interest on OTN in best practices for invoking methods exposed on the ADF Business Components client interface. There exist two options to access methods exposed on ADF Business Components application modules and view objects from a managed bean through ADF. Call findDataControl(String) on the BindingContext and access the application module to invoke a method exposed on the Application Module or View Object client interface. Create a method...

Tuesday, February 28, 2012 | ADFm | Read More

Learn ADF! Online and for Free!

The Oracle JDeveloper and ADF curriculum team has created a 700 minute online advanced ADF training that is accessible for free from the Oracle Learning library. https://apex.oracle.com/pls/apex/f?p=44785:24:0::NO::P24_CONTENT_ID,P24_PREV_PAGE:6022,1 Quoting the Oracle Learning library: This self-paced "eCourse" is the first in a series that addresses Oracle ADF 11g topics through video presentations, quizzes and practices. The course was designed toprovide you with the most...

Friday, February 24, 2012 | Info | Read More

Book Review: Do More with SOA Integration: Best of Packt

Packt Publishing released "Do More with SOA Integration: Best of Packt", book that aggregates the knowledge of  eight (!) SOA books into one 650 pages mashup. Lets start my review with a little problem I had when reading this book: For me it was not easy to identify the audience this book a was written for. The book contains chapters that point towards beginners and others pointing towards experienced SOA experts. Other chapters are more hands-on oriented, indicating they are...

Friday, February 24, 2012 | Book Reviews | Read More

How-to define a default action for page fragments

The af:form component has a DefaultCommand property that, when set to the component Id of a command component like af:commandButton invokes the associated command action when the enter key is pressed anywhere in this form. However, if the form fields are contained in a page fragment exposed in a region then using the DefaultCommand property may not be an option as it is difficult to predict the command button id and its surrounding naming containers. A solution to this is to...

Thursday, February 23, 2012 | JavaScript | Read More

Strategies for controlling the af:popup close event

In a previous OTN Harvest summary, I discussed how to handle the af:dialog OK and Cancel event: http://www.oracle.com/technetwork/developer-tools/adf/learnmore/77-ok-cancel-support-in-dialog-351871.pdf . In this post, I get back to this though not covering the "Cancel" case. There are two options developers have to handle the "Ok" event of an af:dialog component in an af:popup · Using a DialogListener with the default Ok button · Using a custom command button instead of thedefa...

Thursday, February 23, 2012 | ADFv | Read More

Disclose panelBox with a double-click on the header

No long post today, just some sample code showing the bit of JavaScript you need to add to a panel box to toggle it open/close on a double click. <f:view xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"> <af:document title="PanelBoxTester.jsf" id="d1"> <af:resource type="javascript"> function togglePanelBox(mouseEvent){ var panelBox = mouseEvent.getSource(); panelBox.broadcast(new AdfDisclosureEvent(panelBox,...

Monday, January 30, 2012 | JavaScript | Read More

Adding checkboxes to sortable table headers

Using the header facet of the af:column tag, developers can add components to the table header, for example to indicate the component to be excluded from printing or export to Excel. The side effect of adding a command item to a table header is when the table column is sortable. In this case, selecting the component, for example an instance of af:selectBooleanCheckBox , will also trigger sorting on the table, which you don't want to happen until users explicitly ask for this.T...

Friday, January 20, 2012 | ADFv | Read More

How to access selected rows in an af:selectManyChoice component

To create an ADF bound select many choice component, drag a collection from the Data Controls panel to a JSF page. In the opened context menu, choose Multiple Selection | ADF Select Many Choice. This generates the page source code similar to this: <af:selectManyChoice value="#{bindings.allDepartments.inputValue}" label="#{bindings.allDepartments.label}" id="smc1"> <f:selectItems value="#{bindings.allDepartments.items}" id="si1"/></af:...

Wednesday, January 18, 2012 | ADFm | Read More

How-to determine the ADF tree node type using EL

Creating an ADF tree in ADF produces an entry similar to this in the PageDef file of the view. <tree IterBinding="AllCountriesIterator" id="AllCountries"><nodeDefinition DefName="oracle.summit.model.views.CountryVO" Name="AllCountries0"> <AttrNames> <Item Value="Country"/> </AttrNames> <Accessors> <Item Value="CustomerVO"/> </Accessors> </nodeDefinition><nodeDefinition DefName="oracle.summit.model.views.CustomerVO"...

Wednesday, January 18, 2012 | ADF Security | Read More

How-to invoke ADF bindings in page templates

ADF Faces page templates may have their own PageDef file defined to access the ADF binding layer or have ADF bound components added to the template. ADF Faces pages that use the template will reference the template's PageDef file in the Executable section of their own PageDef file. In this sample, the template binding reference in the the template consumer page PageDef file is ptb1. The code below invokes a method binding in the template's PageDef file from a command button on...

Sunday, January 15, 2012 | ADFm | Read More

Display selected table row number and total rows

A question on OTN was how to display the current row number and the number of totally available rows in a formatted output string. In the example used below, the format is row no. [<row index>] of max rows [<total numbers of rows>] For this example, I used an af:outputText component to display the information on the page. The value of the af:outputText component is calculated from expression language (EL) accessing the ADF binding layer as shown below. Note that for better...

Wednesday, January 11, 2012 | ADFm | Read More

OTN Harvest Summary for December 2011 merges with January 2012 edition

December 2011 has been busy for me and so I decided to merge OTN Harvest summary for December 2011 with the January 2012 edition. I did post this information on twitter before but recognized that not everyone reading the summary is following me on Twitter  (twitter.com/fnimphiu, twitter.com/adfcodecorner), therefore posting it here too.

Wednesday, January 11, 2012 | Info | Read More

Oracle JDeveloper 11.1.2 ADFc Savepoint Script

The save point (save for later) feature of the ADF Controller is enabled from Application Resources | Descriptors | ADF META-INF in the Application Navigator. To enable controller save points, double click onto the adf-config.xml file and assign a data source name to the Savepoints | Data Source property using the magnifying glass. In JDeveloper 11g R1, make sure the account accessing the schema into which save points should be storedhas the create table permission granted....

Monday, January 9, 2012 | ADFc | Read More

Using JSTL in ADF Faces

The JavaServer Pages Standard Tag Library (JSTL) provides expressions for common web application functionalities. Though JavaServer Faces Expression Language (EL) is different from JSTL expressions, the two can be used in combination for functional for which it makes sense. For example, the table below lists JSTL expressions that operate on String values. Function Description fn:contains() Tests if an input string contains the specified substring. fn:containsIgnoreCase() Tests if...

Tuesday, December 27, 2011 | ADFv | Read More

How to detect browser type and version from ADF Faces

Sometimes ADF applications need to know about the user browser type and version. For this, assuming you need this information in Java, you can use the Trinidad RequestContext object. You could also use the AdfFacesContext object for the same, but since the ADF Faces Agent class is marked as deprecated, using the equivalent Trinidad classes is the better choice. The source code below prints the user browser information to the Oracle JDeveloper message window importorg.apache.myfa...

Friday, November 25, 2011 | ADFv | Read More

Accessing the JSESSIONID from JSF

The following code attempts to access and print the user session ID from ADF Faces, using the session cookie that is automatically set by the server and the Http Session object itself. FacesContext fctx = FacesContext.getCurrentInstance();ExternalContext ectx = fctx.getExternalContext();HttpSession session = (HttpSession) ectx.getSession(false); String sessionId = session.getId(); System.out.println("Session Id = "+ sessionId); Cookie[] cookies =...

Thursday, November 24, 2011 | ADFv | Read More

Creating ADF Faces Comamnd Button at Runtime

In ADF Faces, the command button is an instance of RichCommandButton and can be created at runtime. While creating the button is not difficult at all, adding behavior to it requires knowing about how to dynamically create and add an action listener reference. The example code below shows two methods: The first method, handleButtonPress is a public method exposed on a managed bean. public void handleButtonPress(ActionEvent event){ System.out.println("Event handled"); //optional:...

Tuesday, November 22, 2011 | ADFv | Read More

How-to read data from selected tree node

By default, the SelectionListener property of an ADF bound tree points to the makeCurrent method of the FacesCtrlHierBinding class in ADF to synchronize the current row in the ADF binding layer with the selected tree node. To customize the selection behavior, or just to read the selected node value in Java, you override the default configuration with an EL string pointing to a managed bean method property. Inthe following I show how you change the selection listener...

Tuesday, November 22, 2011 | ADFv | Read More

Reading train stop display names from a resource bundle

In Oracle JDeveloper 11g R1, you set the display name of a train stop of an ADF bounded task flow train model by using the Oracle JDeveloper Structure Window. To do so Double-click onto the bounded task flow configuration file (XML) located in the Application Navigator so the task flow diagram open In the task flow diagram, select the view activity node for which you want to define the display name. In the Structure Window., expand the viewactivity node and then the train-stop...

Thursday, November 17, 2011 | ADFc | Read More

JSF 2.0 Preemptive Navigation in ADFc of JDeveloper 11.1.2

Preemptive navigation is a new feature in JavaServer Faces 2.0 and allows runtime introspection of control flow cases for their target view.The JSF API for this is the ConfigurableNavigationHandler class that exposes the following methods getNavigationCase(FacesContext context, java.lang.String fromAction, java.lang.String outcome) getNavigationCases() – returns a Map<String, Set<NavigationCase>> that lists all available navigation cases with the viewId as...

Wednesday, November 9, 2011 | ADFv | Read More

Accessing View Object UI hints from EL

View Objects can have UI hints defined in their General category. For example, you may want to set the Display Name, Display Name (Plural) and Description on Employees View Object that is based on an Employees entity representing the Employees table in the HR database sample schema. The page snippet below shows how you can access the UI hints on a View Object to display them a header information on an page.  <af:panelGroupLayout id="pgl2" layout="horizontal"><af:outputText valu...

Saturday, November 5, 2011 | ADFbc | Read More

Using ADF logger with Groovy in ADF BC

Groovy is a scripting language that can be used in the context of ADF BC. It simplifies Java object access and method execution. Basically everything you could access from Java you can access from Groovy. If logging is needed in your Groovy scripting, then this can be achieved using the ADF Logger as shown below. Just add script similar to this into the Groovy code are (e..g when working with custom entity validators) //log information to console. Create a logger instance for//...

Tuesday, November 1, 2011 | ADFbc | Read More

Using Groovy in Entity Validation

The use case for this sample has been posted on OTN as follows: "How to define entity validation for the Salary attribute of the Employees table so that pay raises going beyond the cumulated salary budget for a departments throws an exception". The logic for this is as follows: AvailableBudget – (AllSalariesInDepartment + newEmployeeSalar) + currentEmployeeSalary < 0 The available budget is compared to all salaries paid in adepartment. Chances are that some salaries have been...

Tuesday, November 1, 2011 | ADFbc | Read More

November 10th 2011 - 30 Minutes ADF Mobile Online Session with Ted Farrell (VP and Chief Architect Oracle FMW, JDeveloper and ADF)

 The German ADF Partner community conducts ADF online session every other weeks for their members to learn from each other and join forces in evangelizing Oracle JDeveloper and ADF. For November 10th, the ADF Partner Community invited Ted Farrell, Oracle VP and Chief Architect of Oracle JDeveloper, ADF and FMW to speak about Oracle ADF Mobile and new Mobile Framework to be expected in 2012. Don't miss this opportunity. There is no need for you to be a member of the German...

Friday, October 28, 2011 | JDeveloper | Read More

How to render different node icons for different tree levels

 Nodes of the af:tree component are stamped, which means that upon rendering, the UI component defined in the nodeStamp facet is printed repeatedly with different data values. If the requirement is to icons differently on each node level, then EL and the af:switcher component help as explained in the following. <af:tree value="#{bindings.LocationsView1.treeModel}" var="node" selectionListener="#{bindings.LocationsView1.treeModel.makeCurrent}" ...

Wednesday, October 19, 2011 | ADFv | Read More

How to programmatically set focus on an input component

The af:document component has a property InitialFocusId that allows you to define the Id of an input component that should take focus when a page initially loads. But how do you set the component focus for pages that are already rendered? A use case for this is a partial submit that executes logic on the server, after which the cursor focus in the UI needs to be set to a specific input component of a page or page fragment. The solutionto this use case is JavaScript that is...

Friday, October 14, 2011 | JavaScript | Read More

Book Review: Oracle WebCebter 11g PS3 Administration Cookbook

Packt Publishing (http://www.packtpub.com/)  asked me to review one of their new books: Oracle WebCenter 11g PS3 Administration Cookbook written by Yannick Ongena, a proven WebCenter community expert and founder of the WebCenter Methododlogy Group (http://sites.google.com/site/oracleemg/wc). The book basically holds on what it promises on the backside of it, which is that you learn: - to create and manage navigation models - about JSR 286 use in WebCenter - integrate content sing...

Thursday, October 13, 2011 | Book Reviews | Read More

How-to launch browser print dialog when showing printable page

The following code, when referenced from the beforePhase property of the f:view component, automatically opens the browser print dialog if a page is rendered as printable. I did write about this topic in the OTN Harvest summary of January 2011. To this time however I used an internal flag, which doesn't feel right. The code used in this post only uses public APIs and thus is a solution that lasts. public void beforePhaseMethod(PhaseEvent phaseEvent) { if...

Friday, September 16, 2011 | ADFv | Read More

Adding a clientListener dynamically at runtime using JavaScript

In ADF Faces, the client listener component - af:clientListener - is added to ADF Faces components to listen for component events that should be handled in JavaScript on the client. The following JavaScript function allows you to add a client listener dynamically at runtime, which may become handy when working on client side integration, or use cases that cannot be implemented on the server: for example, adding custom behavior to a command button that is part of an existing...

Thursday, September 8, 2011 | ADFv | Read More

How-to hide or show components in printable pages

Not all web pages are suitable for printing, which means they contain components that either should not print, print different or should be replaces by other content. ADF Faces allows you to print pages using the af:showPrintableBehavior tag, which you add as a child to a command component. http://download.oracle.com/docs/cd/E21764_01/apirefs.1111/e12419/tagdoc/af_showPrintablePageBehavior.html The ADF Faces context object exposes an outputMode property that you can use todete...

Tuesday, August 16, 2011 | ADFv | Read More

ADF Faces web crawler support in Oracle JDeveloper 11.1.1.5 and 11.1.2

Web crawler support, also known as search engine optimization (SEO), has been added to ADF Faces in Oracle JDeveloper 11.1.1.5 (PS4) and Oracle JDeveloper 11g R2 (11.1.2). "Search engine optimization (SEO) is the process of improving the visibility of a website or a web page in search engines via the "natural" or un-paid ("organic" or "algorithmic") search results." - Wikipedia, http://en.wikipedia.org/wiki/Search_engine_optimization The difference between ADF Faces pages...

Tuesday, August 16, 2011 | ADFv | Read More

Heads up ! New monthly OTN Harvest Feature: OTN Harvest Spotlight

The ADF community is growing at an exponential rate. New developers joining the community will find that they are joining a family of like-minded ADF practitioners, many whom personally know each other and are motivated to help others where they can. To make it easier for new developers to find their way around the ADF community, a new feature column, the OTN Harvest Spotlight starts in this month's OTN Harvest Summary, which I release on August 19th at: http://www.oracle.com/...

Monday, August 15, 2011 | JDeveloper | Read More

ADF Enterprise Methodology Group (EMG) Sunday during OOW

"The ADF EMG is where ADF users get down and dirty in discussing their FMW experiences."                                                                                                                       – Chris Muir One theme (ADF), one room (Moscone West - 2000), one community (ADF EMG) ! The ADF Enterprise Methodology Group (EMG) staffs a complete day of ADF developer talks on Sunday October 2nd.  --------------------- AGENDA -------------------- - 09:00 - Sten E....

Monday, August 15, 2011 | JDeveloper | Read More

Disabling the browser form auto-complete

As often, somebody's heaven is another one's hell. The browser auto-complete functionality is one example for this. In Oracle ADF Faces, there is no property that switches auto complete-off for input field components or the af:form component. Thanks to the ADF Faces client side architecture switching off this browser functionality is easy to achieve: <af:form> …<af:clientListener type="mouseOver" method="suppressAutoComplete"/></af:form> The mouse over event is issued one...

Friday, August 12, 2011 | ADFv | Read More

Disabling keyboard input on af:inputDate

Setting the ReadOnlyproperty on an af:inputDate component to true does not only make the input field read-only but also hides the calendar icon. If the use case is to force users to always select an input date from the popup calendar and to prevent keyboard input, as show in the image above, you can use a JavaScript based solution as shown below: <af:resource> function disableEntry(evt){ evt.cancel(); } </af:resource> … <af:inputDate label="Label 1" id="id1"...

Tuesday, August 9, 2011 | ADFv | Read More

row.attributeName vs. row.bindings.attributeName

ADF uses two different types of EL to reference the binding layer in af:tree,af:treeTable and af:table components. For example, if a table is read-only, using af:outputText to render the table column values, the cell values are referenced as #{row.attributeName}. If the table is editable, the EL is #{row.bindings.attributeName.inputValue}. In the case of #{row.attributeName}, the value object is of type String. In thecase of #{row.bindings.attributeName.inputValue}, the value...

Friday, August 5, 2011 | ADFm | Read More

Suggested skin editor workflow

Following the work flow outlined below helps you to create a custom skin for your AD Faces application using the integrated or stand alone skin editor. Integrated Skin Editor The integrated skin editor is good to use for projects that are migrated or newly created in Oracle JDeveloper 11g R2. 1. Create a skin project. Skins are reusable components and as such should be created in their own project or workspace. 2. Create a new skin by extending an existing skin. Oracle ADF...

Tuesday, August 2, 2011 | ADFv | Read More

Accessing database connect information in ADF

To get the database connect information of an ADF BC model in ADF, expose the following code in a public method on the ApplicationModule Impl class public String getDatabaseInformation(){ DBTransaction dbTransaction = (DBTransaction) this.getTransaction(); PreparedStatement prepStatement = dbTransaction.createPreparedStatement("select * from dual", 0); try { String dbSchema = prepStatement.getConnection().getMetaData().getUserName(); ...

Tuesday, August 2, 2011 | ADFm | Read More

ADF Summit sample application, a case study in redeveloping Forms applications in ADF

A new sample application and related documentation has been released to the Oracle JDeveloper demo site on OTN this week: http://www.oracle.com/technetwork/developer-tools/jdev/index-098948.html ADF Summit  is a case study in redeveloping an Oracle Forms application to Oracle ADF and is based on the Oracle Forms "Summit Sports Good" training application. You get an overview of the project in a Camtesia recording that Grant Ronald produced and in which he shows how the Forms...

Tuesday, July 12, 2011 | Read More

How-to access UI component that queued a custom client event

In ADF Faces, to invoke a server side method in a managed bean, you use the af:serverListener tag. The af:serverListener tag is added as a child to the component that owns the event and called from JavaScript in a call to AdfCustomEvent.queue( … ) In this example, the af:serverListener is added to a table to notify a manage bean method about a double-click action. <af:table ...> <af:column> ... </af:column> ... <af:clientListener method="handleTableDoubleClick" type="dblClick"/> <...

Friday, July 8, 2011 | ADFv | Read More

favicon and browser bookmark icons in JDeveloper 11.1.2

The favicon is the little icon that displays in the Browser URL address field when a requested page loads. In Oracle JDeveloper 11.1.1.x releases, the favicon needed to be added to the page source. In JDeveloper 11.1.2 a new attribute, smallIconSource has been added to the af:document tag to serve the favicon easily. See: http://download.oracle.com/docs/cd/E16162_01/apirefs.1112/e17491/tagdoc/af_document.html smallIconSource Specifies a smallicon that the browser may insert...

Thursday, July 7, 2011 | ADFv | Read More

New client behavior tag - af:checkUncommittedDataBehavior

In Oracle JDeveloper 11.1.2, a new client behavior tag af:checkUncommittedDataBehavior is provided to check for uncommitted data when navigating away from a page using a command button that has its immediate property set to true. The tag can be applied as a child of any command component, like af:commandButton af:commandLink af:commandMenuItem af:commandToolbarButton … http://download.oracle.com/docs/cd/E16162_01/apirefs.1112/e17491/tagdoc/af_checkUncommittedDataBehavior.html For...

Thursday, July 7, 2011 | ADFv | Read More

Five hours of Task Flow Overview Recordings Available

In addition to the ADF Controller task flow documentation inOracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework 11g Release 1 http://download.oracle.com/docs/cd/E21764_01/web.1111/b31974/partpage3.htm#BABHIIAI The ADF Insider website … http://www.oracle.com/technetwork/developer-tools/adf/learnmore/adfinsider-093342.html … hosts five online videos that explain how to build and work with ADF Controller task flows in Oracle ADF. ADF Task...

Tuesday, June 28, 2011 | ADFc | Read More