As you probably know, the “Table” component allows you to use an out of the box filtering.
A while ago, I’ve been asked to execute a table filtering programmatically – that is, use a java code to automatically populate the filter.
In my current example I’m using a button to perform a filtering action. Of curse you can use the code in many other ways,

Well, here are the steps:

First, add a binding to the table with getter & setter:


binding code

Continue Reading »


You might face a problem in your ADF application, when based on a HumanTask component (BPM), using the out of the box Comments & Attachemnts.

Well…suddenly it’s not working anymore…you press the add attachmen/comment button, and nothing happen.

So, obviously you first need to verify that the user has the right permission for that action. Once it is clear, check that the following declaration exists in your .jspx page:


Bug or not…it can sometimes disappear and might driving you crazy.

Good Luck

I’m getting many questions regarding to how can we control components base on other components.

One of the standards ways is to use the object’s properties and EL expression.
So, this is something very basic in ADF and I think it’s important to understand and know.

Many of the ADF faces component have 2 important properties: AutoSubmit and PartialTriggers.
Basically what they are saying:

  1. AutoSubmit: when it is set to true, you are partially submitting an action. For example, changing the value of an inputText.
    When the value is being changed, there is no need to wait for a refresh or a global update.
    That way you can control a specific objects in your page.
  2. PartialTriggers: in this property you are referring to the previous input text.
    If you want the current object to fire an action, based on another object (like inputText changing value), you need to set the partialTriggers value to the id of that component.

Here is a simple example: You have 2 inputtext, A & B. B is disable, until a value will be enter in A. For that we will use only EL expression:




Good Luck


In this post I will explain, how in a simple way you can use managed bean to perform a binding operation.
In case of using ADF for managing Human Task flows (BPM process), you sometimes want to perform post/pre actions to the native operation.
For example: you want the user to press the approve action, and in the background you want to call a Web service for some validations.
Here is how you do it:

  1. Create a bean method by double click the action button, or manually create a class with the required method:beanto copy:
    public String approveAction() {
    BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
    OperationBinding validateNameOP = bindings.getOperationBinding("validateName");
    Object resultCommit = validateNameOP.execute();
    if (!validateNameOP.getErrors().isEmpty()) {
    return null;
    AttributeBinding status =(AttributeBinding)bindings.get("status");
    if (status.getInputValue().toString().equalsIgnoreCase("Y")){
    OperationBinding operationBinding = bindings.getOperationBinding("APPROVE");
    Object result = operationBinding.execute();
    if (!operationBinding.getErrors().isEmpty()) {
    System.out.println("inside error");
    return null;
    return null;
    return "refreshTaskFlow";
  2. Declare the bean in the action listener property of the command button:approve-button

That’s it.

Just be sure, that both APPROVE & validateName operations are declared in the binding. Or else you will get nullPointerException.

Good Luck

Let’s say you want to call a a taskFlow activity, for example, a “back” activity, but declarative within your java code:


Use the below code in a bean in order to call a task flow navigation within your ADF application:

import javax.faces.application.NavigationHandler;
import javax.faces.context.FacesContext;


NavigationHandler backHnd =
backHnd.handleNavigation(FacesContext.getCurrentInstance(), null,"back");

Good Luck!

A very simple but frequently asked question is: how use more then 1 human task, of the same type, in one ADF application?

Go to your ViewController project and open the file hwtaskflow.xml

Copy the hwTaskFlow element, and its content, and change the values for: WorkflowName & TaskDefinitionNamespace elements (those are the name & targetNamespace from the Human Task).


Good Luck!

In this post I will show how to create and deploy your composite with a simple BPEL process. The main goal is to describe the deployment process in the local SOA environment. The steps are very simple and almost the same as in 11g version.
If you haven’t yet install the environment or started the server, go to my previous post Oracle SOA Suite 12c Installation.

For this post I’ve create a SOA application with new project, and selected a BPEL component:

SOA 12c New Application

Create SOA Application - Step 2 of 3

Create SOA Application - Step 3 of 3

Continue Reading »