Skip to main content

Posts

Showing posts with the label Task Flow

About adfc_diagram files in ADF

In short, files that end with "adfc_diagram" file type are metadata files to keep track of element position in an ADF task flow. ADF task flow offers a process-flow like visual panel for developers to re-position the elements (page/fragment, router, Java bean methods, etc). The file ending with "adfc_diagram" is the one tracking the positions of all elements so that next time the task flow is open the saved visual positions are presented. Another blog spot on the same matter: http://javalopez.blogspot.com/2015/03/should-i-commit-adfcdiagram-files.html

Changing Labels on Built-In WebCenter Taskflows

Recently I have a request from a customer to change the label of Comment button of the DocumentViewer TaskFlow in a WebCenter Portal application, from "Comment" to "Post your comment". Here is a screenshot of the standard view of the documentViewer Taskflow with the comment sidebar. The request itself is a customization request to change a label of a command button inside a built-in WebCenter Taskflow. There are two options to deal with customizations for WebCenter Portal: seeded customization or runtime customization. To give you an upfront warning, the seeded customization will not work for this case, and I will explain why. First, let's look at the seeded customizations. To enable seeded customization, there are several prerequisites to do. Make sure in the application adf-config.xml, customization class is is pointing oracle.adf.share.config.SiteCC in the MDS configuration. Enable the seeded customization option in project property - ADF View...

How to get the source codes of Build-In WebCenter Spaces Task Flows

Since WebCenter PS5, Oracle brings lots of standard task flows inside WebCenter Spaces. Some of them are already registered within the resource catalog and ready to use, most of them are also ready but you need to add them to the resource catalog first for business users to utilize. But from a developer standpoint, you may be interested in reviewing the source codes of the standard task flow shipped with Oracle WebCenter Spaces. Today I will show you how to locate the EAR or WAR file and take the advantages of build-in task flows. After the Oracle WebCenter Spaces is installed, go to the following directory and you will find the relevant EAR and WAR files are already installed. In my case, it’s WebCenter PS5 but it’s applicable to other 11g releases. $FMW_HOME/<WebCenter Instance Name>/webcenter/modules/oracle.webcenter.spaces_11.1.1 The one we are interested is the one at the bottom ‘oracle.webcenter.spaces.webapp.war’ file. You can ftp the...

Task Flow Pending Changes

Task flow as a functional unit provides great flexibility and offers  developers  lots of ways to get a hand on its state, transaction and management. Common requirements exist like web application needs to prompt to the user asking for save/cancel pending changes before navigating to a different frame. In ADF, pending changes can be caught at the modal layer by calling getTransaction().isDirty() in ApplicationModuleImpl. That's common for developer to come up with at the first moment. Here I present how it's easily handled by using task flow in terms of pending changes detection. ADF task flow, as main player in the ADF controller layer, provides several context interface to manage its state and transaction. In our case today, the context interface class is ControllerContext class. The ControllerContext class provides per-request information about the controller state for a web application.  To get hold of the ControllerContext in your managed bean: Contro...

Does your task flow need a transaction?

Task flow is a great feature in ADF and serve as a milestone for ADF 11g. The best documentation for ADF matters is to dig into the fusion developer's guide. The particular matter for task flow is here  (11.1.1.3). In ADF task flow, there is a concept - "transaction". It is a persisted collection of work that can be committed or rolled back as a group. Task flow present itself as a perfect group for such transaction. Transaction applies when one task flow is interacting with another. For example, there are two task flows here, one is parent task flow (flow P) and the other is child task flow (flow C). When P calls C, there are several transaction options for C. The options specify whether C will join P's existing transaction, create its own transaction or only create its own transaction if no existing transaction in P. Of course, C could also not have a transaction at all, which is the default option. Steve Muench stated the following in his article : If your bo...

Dynamic Tab Functionality

I followed a recent blog from Andrejus Baranovskis on a Dynamic Tab Functionality . Actually this functionality is very similar to Dynamic Region Functionality. An example of dynamic region can be found here . To summarize how to implement dynamic region functionality: 1. create several bounded task flows that you wish to be a member of the dynamic region. 2. drag the task flow you wish to be displayed by default into the region on a JSF page, and choose "dynamic region" tag, you will be asked to set a bean to handle the regions switch. 3. drag the other task flow to the region you want to control the region switch (like the navigation panel), and choose "dynamic link" and choose the dynamic region you created in step 2 (the name is "dynamicRegion1" by default). Jdeveloper will create the codes in the bean to handle the region switch when you hit any of the command links you created in this step. For Dynamic Tab Functionality, the steps are: 1....

Bounded task flow in ADF Regions

ADF bounded flows that execute in ADF regions are key enablers of enterprise web 2.0 development with the Oracle Fusion development platform. Bounded task flows let you build desktop-like web user interfaces that unveil the real power of Asynchronous JavaScript and XML (AJAX) without exposing developers to the complexity of AJAX programming. How to Access the task flow binding from Java: BindingContext bctx = BindingContext.getCurrent(); BindingContainer bindings = bctx.getCurrentBindingEntry(); DCTaskFlowBinding taskFlowBinding = null; taskFlowBinding = (DCTaskFlowBinding)bindings.get("dynamicRegion1"); The task flow binding is accessed by its name, "dyanamicRegion1", in this example.