The Oracle BPEL Worklist Application (Worklist Application) is a Web interface that enables users to act on their assigned human workflow tasks.
Accessing the Worklist Application in Local Languages
Using the sample worklist configured with the user community in the JAZN XML file, you can set the user's preferred language and time zone in the demo-users-properties.xml file as follows:
<timeZone>America/Los_Angeles</timeZone> <languagePreference>en_US</languagePreference>
The demo-users-properties.xml file is found in Oracle_Home\bpel\system\services\config
The demo-users-properties.xml file is found in Oracle_Home\bpel\system\services\config
When a user opens a browser and logs in to the Worklist Application, the worklist screens are rendered in the browser's locale and time zone. Most strings in the Worklist Application come from the worklist application bundle. By default, this is the class
oracle.bpel.services.workflow.resource.WorkflowResourceBundle
oracle.bpel.services.workflow.resource.WorkflowResourceBundle
Customizing the Worklist Application
I. Worklist Application Architecture
I. Worklist Application Architecture
The Worklist Application follows the standard model-view-controller approach.
i. A request coming from the browser is handled by a servlet. The servlet validates the request and calls the appropriate workflow service client API to query or update data.
ii. The worklist client APIs support a variety of different protocols (local and remote EJBs, direct java invocation, SOAP) for invoking the underlying workflow service.
iii. After the API call, the servlet stores the data required for rendering the next page in the session. The JSP picks up the data from the session, renders the data, and removes it from the session.
iv. The servlets are responsible for making the back-end API calls and the JSPs are responsible for formatting the data.
The Worklist Application servlets are at
$ORACLE_HOME/j2ee/oc4j_soa/applications/hw_services/worklistapp/src/worklistapp/servlets
All servlets extend the class worklistapp.servlets.BaseServlet. This class implements common functionality required by all servlets, such as authentication.
The JSPs are at $ORACLE_HOME/j2ee/oc4j_soa/applications/hw_services/worklistapp/public_html
The workflow client API is a public interface made available by the workflow services. The
interface is at oracle.bpel.services.workflow.client.IWorkflowServiceClient
An instance of the API interface can be obtained by invoking the getWorkflowServiceClient
method on oracle.bpel.services.workflow.client.WorkflowServiceClientFactory
A typical page flow sequence is as follows
- The first time a user enters the login URL, the login servlet redirects the page to the login JSP that is sent to the browser.
- The user enters a username and password and the login servlet calls the authenticate method on the task query service.
- If successful, it redirects to the TaskList servlet URL.
- The browser's request then goes to the TaskList servlet that calls the queryTasks method on the task query service for getting the tasks that the user should see.
- Then it redirects the page to the TaskList JSP that is sent to the browser.
- When a user clicks a task link, the request is handled by the TaskDetails servlet.
- This calls the getTaskDetailsById method on the task query service and redirects the page to the TaskDetails JSP that is sent to the browser.
The workflow services client interfaces can use a number of protocols to communicate with the workflow services. The client implementations encapsulate all the communication details,
and users of the client interfaces do not need to be concerned with the details.
The Worklist Application is deployed in the same container as the workflow services, by default, and the application uses the Java client.
To switch the client type used by the Worklist Application, modify the init method in BaseServlet.java as follows:
public void init(ServletConfig config) throws ServletException
{
super.init(config);
try
{
wfSvcClient = WorkflowServiceClientFactory.getWorkflowServiceClient(
WorkflowServiceClientFactory.JAVA_CLIENT);
}
catch (Exception e)
{
wlSvcError = getStackTraceString(e);
}
}
Also, change WorkflowServiceClientFactory.JAVA_CLIENT to one of the following:
- WorkflowServiceClientFactory.SOAP_CLIENT—to use the SOAP-based Web services interface
- WorkflowServiceClientFactory.LOCAL_CLIENT—to use the local EJB interface
- WorkflowServiceClientFactory.REMOTE_CLIENT—to use the remote EJB interface














