Domain Portal

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Saturday, 29 March 2008

ADF Task Flows - Managing Transactions

Posted on 01:51 by Unknown
You probably already know that ADF Task Flows are much more than simple page flow navigation. I was blogging previously on this topic, you can check - JDeveloper 11g and ADF Task Flow Parameters and ADF Task Flow in JDeveloper 11g. In this post I will describe how it's possible to manage transactions with ADF Task Flows.

Developed sample application - ADFTaskFlowTransactions.zip implements one transaction for Departments and Employees entities, this sample is based on HR schema from Oracle XE database.

How to understood transactions in ADF Task Flows? Basically speaking, ADF Task Flows allow to manage transactions declaratively in View layer. This means we can think about transactions in terms of forms available to the user. For example, if transportation information is entered into system through two screens - Source and Destination, transaction will be successful if both Source and Destination will be valid.

Sample application contains one main page and bounded task flow that implements transaction:


Transaction is opened from main page and is closed when control is returned back to main page.

If you will take closer look into bounded task flow that implements transaction, you will see here two pages and return activity defined. In updateDepartment page Department data is modified and in updateEmployees page Employees data is modified. Modified data is saved during return from bounded task flow:


Basic transaction for bounded ADF Task Flow is configured in two steps:

1. For bounded task flow, in Property Inspector tab, define transaction type in Behavior section. For my sample application I have defined new-transaction type.


2. Define behavior for task flow return activity. I have specified for Task Flow Return activity in Property Inspector tab, Behavior section, commit type for End Transaction property.


Both pages - updateDepartment and updateEmployees don't have Commit action defined in Page Definition files. This means that commit action isn't executed from those pages, it is executed only once when transaction is finished.

No Commit action defined in updateDepartmentPageDef.xml:


And there is no Commit action defined in updateEmployeesPageDef.xml as well:


How implemented transaction works? Transaction is opened from main page, where one of available locations is selected. During transaction, information about departments and employees from selected location will be updated:


Transaction is opened with first screen, where we can browse through and update information related to departments, from here we can open second step in transaction - information about employees update from selected department:


Second form is used to update information related to employees from selected department, here transaction is closed:

Email ThisBlogThis!Share to XShare to Facebook
Posted in ADF, JDeveloper 11g | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Groovy - Multiple LOV's per Attribute in JDeveloper 11g
    I was blogging previously about multiple LOV's per attribute functionality. I was using RowImpl class for View object in order to calcu...
  • Multiple LOV's per Attribute in JDeveloper 11g
    During OOW 2008 I have attended Steve Muench talk about new features in ADF Business Components available in 11g release - Oracle ADF: New D...
  • JBO-25058 and JBO-26001 exceptions
    In a case if you will get JBO-25058 and JBO-26001 exceptions after running application developed with Oracle ADF in JDeveloper 11g, most pro...
  • Oracle Always Rocks !
    This song was performed at Oracle OpenWorld 2007, after Larry Ellison and Safra Catz keynote - Sunday Night Live—30 Years Behind The Scenes ...
  • JDeveloper/ADF News from Oracle OpenWorld 2008
    This week I'm in San Francisco, attending Oracle OpenWorld 2008 conference. One of the main news for me, announced on Ted Farrell keyno...
  • JDev/ADF samples list
    This week, Steve Muench on his examples page have added a link to my JDev/ADF samples list . Thanks, I'm very proud of this - it is co...
  • Using #{row.rowKeyStr} property with Composite View Object
    Synchronizing view and edit pages in ADF is pretty easy. Let's say, in view page we have a read-only table and in edit page - editable f...
  • Oracle Fusion Middleware 11g Technology Preview 3 - whats included?
    Probably almost everyone have noticed Christmas gift from Oracle - JDeveloper 11g Technology Preview 3 . What new things are inside this gif...
  • Three Dependent List Boxes in af:table Component
    You may already have read Frank Nimphius blog post - ADF Faces: How-to create dependent list boxes in a table . Frank describes in his blog ...
  • Oracle Open World 2008 - Abstract Accepted
    I have very exciting news - my abstract for Oracle Open World 2008 session is accepted by Oracle and I will represent Vgo Software on this...

Categories

  • ADF
  • Apex
  • Apple
  • BPEL
  • Events
  • Forms
  • Groovy
  • JDeveloper 11g
  • Nomination
  • ODTUG Kaleidoscope
  • OFUG
  • Oracle Magazine
  • Oracle OpenWorld
  • Security
  • SOA
  • Spatial
  • TopLink
  • Traveling
  • Uncategorized
  • Vgo Software
  • Web Services
  • WebCenter
  • WebLogic
  • Workarounds

Blog Archive

  • ▼  2008 (72)
    • ►  December (2)
    • ►  November (3)
    • ►  October (9)
    • ►  September (4)
    • ►  August (9)
    • ►  July (6)
    • ►  June (10)
    • ►  May (4)
    • ►  April (5)
    • ▼  March (7)
      • ADF Task Flows - Managing Transactions
      • JDeveloper 11g Masterclass in Vilnius
      • Oracle Forms to SOA workshop in Vilnius
      • Technical Director in Vgo Software
      • The Best of IBM - IBM Bravo !
      • JDeveloper 11g and SOA Suite 11g integration
      • Oracle Maps in JDeveloper 11g - Perfectly Fits int...
    • ►  February (5)
    • ►  January (8)
  • ►  2007 (65)
    • ►  December (6)
    • ►  November (7)
    • ►  October (6)
    • ►  September (4)
    • ►  August (3)
    • ►  July (4)
    • ►  June (6)
    • ►  May (5)
    • ►  April (6)
    • ►  March (4)
    • ►  February (5)
    • ►  January (9)
  • ►  2006 (9)
    • ►  December (9)
Powered by Blogger.

About Me

Unknown
View my complete profile