| Oracle® BPEL Process Manager Developer's Guide 10g (10.1.3.1.0) Part Number B28981-03 |
|
|
View PDF |
The Oracle BPEL Worklist Application (Worklist Application) is a Web interface that enables users to act on their assigned human workflow tasks. This chapter discusses the sample Worklist Application that is provided with Oracle BPEL Process Manager, and how you can modify it to create your own worklist application.
This chapter contains the following topics:
You can use the Web interface of the Worklist Application for any activity that requires you to act on tasks in a BPEL process. A manager can approve employee vacation requests or a loan agent can review a loan application, each of which has been submitted as part of a BPEL process. Supervisors or group administrators can use the Worklist Application to analyze tasks assigned to the group and route them appropriately. Worklist Application users can also update payloads, attach documents or comments, and route the task to other users, in addition to completing tasks by providing conclusions such as approvals or rejections.
The Worklist Application is demonstrated in the following use cases:
Vacation Request—In this use case, an employee files a vacation request that is routed to his manager for approval. The manager sees the task in the Worklist Application in the My Tasks tab.
Document Review—In this use case, an author submits a document for review by multiple reviewers in parallel.
Expense Request Approval—In this use case, an employee's expense request is automatically routed to his manager for approval. The manager sees the task in the Worklist Application in the My Tasks tab. After the manager's approval, the task may be routed further up the management chain, depending on the content of the expense request. The BPEL process uses a decide activity to define the approval chain for a human workflow task dynamically, using Oracle Business Rules. The business rules determine the approval level required for the expense request, based on factors such as the amount of the request and the type of expense. The sample demonstrates how the approval chain for each expense report can be different, and how users can change the rules governing the approvals at run time.
Help Desk Service Request—In this use case, the supervisor resolves a service request by assigning it to any of his reportees using ad hoc routing. The assignee then approves the task after he responds to the service request.
Loan Demo Plus—In this use case, a loan application is assigned to the LoanAgent role. All loan agents see the task in their My & Group tasks view. One of the loan agents claims the task and reviews it. If the loan agent approves it, and if the loan amount is greater than $100,000, then the task is routed further, to two levels of management approval. When the loan agent's managers log in to their worklists, they see tasks that were routed to them and the actions performed by the previous approvers (for example, suggested APR, comments, or attachments).
See:
SOA_Oracle_Home\bpel\samples\demos for the following directories:
VacationRequest
DocumentReview
ExpenseReportApproval
HelpDeskServiceRequest
LoanDemoPlus
Sample applications that are built with the workflow service APIs and demonstrate common features such as listing, updates, approvals, and login and logout are also provided.
See:
SOA_Oracle_Home\bpel\samples\ for the following:
demos\ExpenseReportApproval
demos\LoanDemoPlus
tutorials\132.UserTasks
utils\AsyncLoanService\ StarLoanUI
The OrderBooking tutorial also demonstrates how to use the Worklist Application to approve a purchase order manually.
Chapter 15, "Oracle BPEL Process Manager Workflow Services" discussed how BPEL workflow services enable you to interweave human interactions along with connectivity to systems and services into an end-to-end process flow. The workflow service provides a programmatic interface to view and manage tasks from the BPEL process. The tasks displayed depend on the user's profile, and the actions allowed depend on the user's privileges. This Worklist Application is layered on top of the BPEL workflow service.
The Worklist Application recognizes different types of users, as listed in Table 16-1.
Table 16-1 Worklist Application User Types
| Type of User | Access |
|---|---|
| End user | Acts on tasks assigned to him or his group and has access to system and custom actions, routing rules, and custom views |
| Supervisor (manager) | Acts on the tasks, reports, and custom views of his reportees, in addition to his own end-user access |
| Process owner | Acts on tasks belonging to the process but assigned to other users, in addition to his own end-user access |
| Group administrator | Manages group rules and dynamic assignments, in addition to his own end-user access |
| Workflow administrator | Administers tasks that are in an errored state, for example, tasks that must be reassigned or suspended. The workflow administrator can also change application preferences and map flex fields, and manage rules for any user or group, in addition to his own end-user access. |
See "Identity Service" for more information about predefined roles in the identity service.
A work item or task that is assigned to a user has the following components:
Task attributes—Includes task title, number, status, priority, expiration, identification key, assignees, and other flex fields.
Task form—Consists of detailed information (the payload) about the task; for example, a loan application in the LoanDemoPlus sample or support ticket details in the HelpDeskServiceRequest sample.
Task comments—Comments entered by various users who have participated in the workflow.
Task attachments—Other documents or reference URLs that are associated with a task. These are typically associated with the workflow by the BPEL process or attached and modified by any of the participants in the workflow.
Task history—Consists of the approval sequence and the update history for the task. The history maintains an audit trail of the actions performed by the participants in the workflow and a snapshot of the task payload and attachments at various points in the workflow.
The types of actions that users can perform on a task include:
Update task details—The task form can include content that needs to be added or modified by the task reviewer. The reviewer can modify the task priority, include comments, or add attachments to the task.
Change outcome for the task—As part of the process model, the workflow designer can include various custom outcomes for the task (for example, approve or reject, acknowledge, defer). If a user modifies a task outcome, it is removed from his worklist and routed to the next approver or back to the business process based on the workflow pattern.
Perform system actions—In addition to the custom actions specified as part of workflow modeling, the user can perform other system actions such as escalate or delegate. These actions are available on all tasks based on the user's privileges. The process owner or workflow administrator can always perform any of these operations on processes that they own. See "Task Actions" for more information about system actions.
Use Internet Explorer 6.0 or Mozilla Firefox 1.0.4 to access the Worklist Application.
Open a Web browser.
Go to the following URL:
http://hostname:portnumber/integration/worklistapp/Login
hostname is the name of the host on which Oracle BPEL Process Manager is installed
The portnumber used at installation (typically 9700 or 8888) is noted in bpelsetupinfo.txt, at
SOA_Oracle_Home\install\
You can also select Start, then All Programs, then Oracle - Oracle_Home, then Oracle BPEL Process Manager, and then Worklist Application.
Type the username and password, and click Login.
You can use jstein and welcome1 to access the sample Worklist Application.
The username and password must exist in the user community provided to JAZN. See Oracle BPEL Process Manager Administrator's Guide for the organizational hierarchy of the demonstration user community used in examples throughout this chapter. See "Identity Service" for information on JAZN.
The Worklist Application displays tasks specific to the logged-in user based on the user's permissions and assigned groups and roles. Figure 16-1 shows the Worklist Application for the user jstein, who is a manager and is responsible for approving or rejecting his reportees' vacation requests.
Figure 16-1 Worklist Application—Task Listing (Home) Page

All task interactions—listing tasks, viewing task details, reassigning tasks, performing actions on tasks, setting outcomes, and so on—are initiated from the Task Listing (home) page. As Figure 16-1 shows, when jstein logs in to the Worklist Application, he sees the Task Listing (home) page, which shows the tasks assigned to him and to the group to which he belongs. Because jstein is a manager, the My Staff Tasks tab also appears. For tasks assigned to jstein, he selects an action from the Actions list to participate in the workflow. For tasks assigned to a group to which jstein belongs, he must claim the task before selecting an action. The task is not available to other users until jstein releases it back to the group.
From the home page, you can retrieve worklist tasks by using the Search field to do a keyword search or by using the Category, Priority, and Status fields to specify search criteria. The category filters that are available depend on which tab is selected. From the My Tasks tab, the category filters are My, Group, My & Group, and Previous (tasks worked on in the past). From the My Staff Tasks tab, the only category filter is Reportees. From the Initiated Tasks tab, the only category filter is Creator. In addition to the My Tasks, My Staff Tasks, and Initiated Tasks tabs, other tabs may be displayed, depending on the role granted to the logged-in user, as described in Table 16-2 (Tabs). From the Administration Tasks tab, the category filter is Owner if the user (who has been granted the BPMWorkflowAdmin role in order to see this tab) owns the tasks and Admin otherwise.
Table 16-2 describes the salient features of the Task Listing (home) page of the Worklist Application shown in Figure 16-1.
Table 16-2 Contents of the Worklist Application My Tasks Page
| Location in Figure 16-1 | Page Element |
|---|---|
| Top left | Tabs—The tabs displayed depend on the role granted to the logged-in user. Everyone sees My Tasks and Initiated Tasks. Managers also see My Staff Tasks. A user with the BPMWorkflowAdmin role also sees the Administration Tasks, Manage Rules, Flex Field Mappings, and Application Customization tabs. See "Using the Administration Functions" for more information.
Welcome jstein [jazn.com]—In the banner area, the logged-in user's name appears. Click the user name to display information. See "User and Group Information" for more information. |
| Top right | Reports link—The following reports are available: Unattended Tasks Report, Tasks Priority Report, Tasks Cycle Time Report, Tasks Productivity Report. See "Creating Reports" for more information.
Preferences link—Manages the logged-in user's preferences, including setting vacation and other workflow rules, managing custom views, and customizing worklist displays. See "Setting Preferences" for more information. |
| Left pane | Work Queues—Standard, custom, and proxy views. See "Using Work Queues" for more information. |
| Center pane | Show (Hide) Chart button—Toggles to show or hide a bar chart of the listed tasks in the selected task filter, broken down by status. See "Viewing a Bar Chart of Task Status" for more information. |
| Center pane, Search area | Search Keyword field—Enter a keyword to search task titles, comments, identification keys, and the flex string fields of tasks that qualify for the specified filter criterion.
Category—Select from the following:
Priority—Select from Any or 1 through 5, where 1 is the highest priority. Status—Select from the following: Any, Assigned, Completed, Suspended (can be resumed later), Withdrawn, Expired, Errored (while processing), Information Requested Advanced Search link—Provides additional search filters. See "Using Advanced Search" for more information. |
| Center pane,
task list area |
The default display shows the following columns. You can change the display from the Preferences link. See "Display Preferences" for more information.
Task Number—The task number generated when the BPEL process was created. Title—The title specified when the human workflow task was created. Tasks associated with a purged or archived process instance do not appear. See "Specifying the Task Title, Priority, Outcome, and Owner" for more information. Priority—The priority specified when the human workflow task was created. See "Reviewing the Sections of the Human Task Editor" for more information. Assigned Users—The assignments specified when the human workflow task was created. See "Assigning Task Participants" for more information. Assigned Groups—The assignments specified when the human workflow task was created. See "Assigning Task Participants" for more information. State—One of the following: Assigned, Completed, Errored, Expired, Info Requested, Stale, Suspended, and Withdrawn. See "Overriding Default System Actions" for more information. Created Date—Date and time the task was created using Oracle BPEL Process Manager Expiration Date—Date and time the tasks expires, specified when the human workflow was created. Actions—The group action (Claim) and the custom actions (for example, Accept and Reject) that were defined for the workflow. Other possible actions for a task, such as system actions, are displayed on the Task Details page for a specific task. See "Using Advanced Search" for more information. |
This section contains the following topics:
If you click a task in the Task Title column, the Task Details page for that task is displayed, as shown in Figure 16-2.
This section describes the following elements of the Task Details page:
Figure 16-3 shows a Task Action list. The actions in the list depend on the task design, the state of the task (for example, if the task has been completed, then no actions are listed), and the roles assigned to the logged-in user. Custom actions (actions defined in the BPEL process), such as Accept or Reject, are listed first. System actions, such as Escalate or Suspend, are listed below a separator line.
You act on tasks using either the Task Action list or a button. The Task Action list contains actions that do not require additional input, such as accept, reject, renew, and suspend. Buttons are provided for actions that require additional input, such as reassignment and requests for information.
System actions are available on all tasks based on the user's privileges. Table 16-3 lists system actions.
Table 16-3 System Task Actions
| Action | Description |
|---|---|
| Claim | If a task is assigned to a group or multiple users, then the task must be claimed first. Claim is the only action available in the Task Action list for group or multiuser assignments. After a task is claimed, all applicable actions are listed. |
| Escalate | If you are not able to complete a task, you can escalate it and add an optional comment in the Comments area. The task is reassigned to your manager. |
| Pushback | Use this action to send a task up one level in the workflow to the previous assignee. |
| Reassign | If you are a manager, you can delegate a task to reportees. A user with BPMWorkflowReassign privileges can delegate a task to anyone. |
| Release | If a task is assigned to a group or multiple users, it can be released if the user who claimed the task cannot complete the task. Any of the other assignees can claim and complete the task. |
| Renew | If a task is about to expire, you can renew it and add an optional comment in the Comments area. The task expiration date is extended one week. A renewal appears in the task history. The renewal duration for a task can be controlled by an optional parameter, oracle.tip.worklist.samples.taskactin.renew.duration, in the file pc.properties, which appears in SOA_Oracle_Home\bpel\system\services\config. The default value is P7D (seven days). |
| Submit More Information and Request More Information | Use these actions if another user requests that you supply more information or if you want to request more information from the task creator or any of the previous assignees. If reapproval is not required, then the task is assigned to the next approver or the next step in the business process. |
| Suspend and Resume | If a task is not relevant at present, you can suspend it. These options are available only to users who have been granted the BPMWorkflowSuspend role. Other users can access the task by selecting Previous in the task filter or by looking up tasks in the Suspended status. Buttons that update a task are disabled after suspension. |
| Withdraw | If you are the creator of a task and do not want to continue with it, for example, you want to cancel a vacation request, you can withdraw it and add an optional comment in the Comments area. The business process determines what happens next. You can use the Withdraw action on the home page by using the Creator task filter. |
After you select one of the actions, the task is routed to the next step, depending on how the business process was designed. When a task is completed, all actions and form elements are disabled.
For every update request (custom or system action) that you submit, the status of the request is displayed in the left portion of the header. If a request is successful, then you see a confirming message, as shown near the top of the page in Figure 16-4.
If a request is not successful, then you see an error message, as shown in Figure 16-5. You can click the link for additional information about the error.
The error shown in Figure 16-5 occurs when a user has attempted an action that is not permitted. This is possible in the following scenarios:
The task expired between the time the user loaded the page and actually performed the action.
The task was claimed and updated concurrently by another user (such as a manager, owner, or administrator) between the time the user loaded the page and actually performed the action.
Errored tasks are not assigned to a specific user. They are only assigned to the bpeladmin user. If you are a user other than bpeladmin and want to see these errors, select All in the Category list and Errored or Any in the Status list.
Figure 16-6 shows the header section. Header information includes the task number and title; the state, outcome, and priority of the BPEL process, and information about who created, updated, claimed, or is assigned to the task. It also displays dates related to task creation, last modification, and expiration.
Figure 16-7 shows the payload section for the Vacation Request Process Request workflow. The fields displayed—Creator, From Date, To Date, Reason—reflect how the BPEL process for vacation approval was designed, using the autogenerated JSP.
See "Automatically Generating a Simple Task Display Form" for information on using the autogenerated JSP in your workflow design.
Figure 16-8 shows where you add or delete comments and attachments. To add or delete a comment or attachment, you must have permission to update the task.
A newly added comment and the comment writer's username are appended to the existing comments. A trail of comments is maintained throughout the life cycle of the task. When adding attachments, you can use an absolute path name or browse for a file or provide a URL.
Figure 16-9 shows the short history for a vacation approval task.
The short history for a task lists all versions created by the following tasks:
Initiate task
Reinitiate task
Update outcome of task
Completion of task
Erroring of task
Expiration of task
Withdrawal of task
Alerting of task to the error assignee
You can include the following actions in the short history list by modifying the shortHistoryActions element in
SOA_Oracle_Home\bpel\system\services\config\wf_config.xml
Acquire
Adhoc route
Auto release of task
Delegate
Escalate
Information request on task
Information submit for task
Override routing slip
Update outcome and route
Push back
Reassign
Release
Renew
Resume
Skip current assignment
Suspend
Update
The full history lists all version changes in a task.
If there is no predetermined sequence of approvers or if the workflow was designed to permit ad hoc routing, then the task can be routed in an ad hoc fashion. For such tasks, a Route button appears on the Task Details page. From the Routing page, you can look up one or more users for routing. When you specify multiple assignees, you can choose whether the list of assignees is for simple (group assignment to all users), sequential, or parallel assignment. In the case of parallel assignment, you provide the percentage of votes required for approval.
From the Task Details page, you can request more information by using the Request Info button. The Reapproval Needed field appears if previous approvers must reapprove given the additional information, assuming that the process was designed to support reapproval. You can also add comments. After you have requested additional information, the task is assigned to the user from whom the additional information is needed. The user from whom additional information is requested uses Submit More Info to fulfill the request.
From the Task Details page, you can reassign a task using the Reassign button. As Figure 16-10 shows, you can either reassign (transfer) or delegate:
Reassign (transfer task to another user or group)—The task is moved from the assignee's worklist to another user's worklist. The newly assigned user then acts on the task, rather than the original user.
Delegate (allow specified user to act on my behalf)—The task is delegated to another user, but it shows up in both the original user's and the delegated user's worklists. The delegated user can act on behalf of the original assignee.
Use the Search button to find assignees and the up and down arrows to select or deselect assignees. Wildcard search is supported.
A supervisor can always reassign tasks to any of his reportees. Users with the BPMWorkflowReassign role can assign tasks to any users in the organization.
Parallel tasks are created when a parallel flow pattern is specified for scenarios such as voting. In this pattern, the parallel tasks have a common parent. The parent task is visible to a user only if the user is an assignee or an owner or creator of the task. The parallel tasks themselves (referred to as subtasks) are visible to whomever the task is assigned, just like any other task. It is possible to view the subtasks from a parent task. In such a scenario, the Task Details page of the parent task contains a View SubTasks button. The SubTasks page lists the corresponding parallel tasks. In a voting scenario, if any of the assignees updates the payload or comments or attachments, the changes are visible only to the assignee of that task. A user who can view the parent task (such as the final reviewer of a parallel flow pattern), can drill down to the subtasks and view the updates made to the subtasks by the participants in the parallel flow.
A user can view a task when associated with the task as one of the following: current assignee (directly or by group membership), current assignee's manager, creator, owner, or a previous actor.
A user's profile determines his group memberships and roles. The roles determine a user's privileges. Apart from the privileges, the exact set of actions a user can perform is also determined by the state of the task, the custom actions, and restricted actions defined for the task flow at design time.
The following algorithm is used to determine the actions a user can perform on a task:
Get the list of actions a user can perform based on the privileges granted to him.
Get the list of actions that can be performed in the current state of the task.
Create a combined list of actions that appear on the preceding lists.
Remove any action on the combined list that is specified as a restricted action on the task.
The resulting list of actions is displayed in the listing page and the Task Details page for the user. When a user requests a specific action, such as claim, suspend, or reassign, the workflow service ensures that the requested action is contained in the list determined by the preceding algorithm.
Step 2 in the preceding algorithm deals with many cases. If a task is in a final, completed state (after all approvals in a sequential flow), an expired state, a withdrawn state, or an errored state, then no further update actions are permitted. In any of the these states, the task, task history, and subtasks (parent task in parallel flow) can be viewed. If a task is suspended, then it can only be resumed or withdrawn. A task that is assigned to a group must be claimed before any actions can be performed on it.
See "Identity Service" for information about the identity service and how privileges can be assigned to users.
If you click the Advanced Search link, the page shown in Figure 16-11 is displayed.
When you search on a task type, the Select Workflow Task Type page is displayed. From this page, you select a task type and are returned to the Advanced Search page.
As Figure 16-12 shows, you can filter the search by adding conditions.
Conditions can be AND operations (the All of the following option) or OR operations (the Any of the following option). Each filter specifies a combination of attribute, operator, and value. The operator and value are tied to the type of the attribute and change based on the attribute chosen. For example, for identity fields such as Created By or Updated By, a flashlight icon appears so that you can search for names using the identity browser. For date fields, a calendar icon appears so that you an pick a date.
When you click the bar chart icon, a bar chart of the tasks is displayed, as shown in Figure 16-13.
The bar chart shows the tasks broken down by status, with a count of how many tasks in each status category.
The Work Queues pane, shown in Figure 16-14, is displayed by default. (Use the work queues icon to reopen a closed pane.)
The Work Queues pane displays the following:
Inbox—Shows all tasks that qualify for the user-chosen filter. The default shows all tasks, including high priority tasks, tasks due soon, new tasks, and so on.
My Work Queues—Shows standard work queues, and custom work queues that users have defined based on specific search criteria.
Proxy Work Queues—Shows queues to which a user has granted access to other users. Other users can act on those tasks on behalf of the user who granted access.
From the Preferences link, the following kinds of preferences are available:
Use the vacation preferences to make yourself unavailable for task assignments. As Figure 16-15 shows, you specify a vacation date range, and optionally create a rule. Based on the rules you specify, tasks can be approved automatically or reassigned to someone else, for example.
Figure 16-15 Setting a Vacation Preference in the Worklist Application

As Figure 16-16 shows, when creating a rule, you can specify which task the rule applies to, add conditions, and delegate or reassign the task to another user or a group.
Use a rule to specify conditions which, if true, cause an automatic action on a task. Examples include vacation rules, as discussed in the previous section, or a rule in which certain types of tasks are approved automatically. As Figure 16-16 shows, you can specify the following when creating a rule:
Rule name and description
Which task the rule applies to—If unspecified, then the rule applies to all tasks.
When the rule applies
Conditions on the rule—These are filters that further define the rule, such as specifying that a rule acts on priority 1 tasks only, or that a rule acts on tasks created by a specific user. The conditions can be based on standard task attributes as well as any flex fields that have been mapped for the specific tasks. See "Using the Administration Functions" for information about mapping flex fields.
Figure 16-17 shows how you add conditions to a rule.
Actions
Reassign to—You can reassign tasks to subordinates or groups you manage. If you have been granted the BPMWorkflowReassign role, then you can reassign tasks to any user or group.
Delegate to—You can delegate to any user or group.
Set outcome to—You can specify an automatic outcome if the workflow task was designed for those outcomes, for example, accepting or rejecting the task. The rule must be for a specific task type. If a rule is for all task types, then this option is not displayed.
Take no action—Use this action to prevent other more general rules from applying. For example, if you want to reassign all your tasks to another user while you are on vacation, with the exception of loan requests, for which you want no action taken, then create two rules. The first rule specifies that no action is taken for loan requests; the second rule specifies that all tasks are reassigned to another user. The first rule will prevent reassignment for loan requests.
Figure 16-18 shows the Rules List page. Rules are executed in the order in which they are listed. Use the Move Up and Move Down buttons to reorder rules. If a rule meets its filter conditions, then it is executed and no other rules are evaluated. For your rule to execute, you must be the only user assigned to that task. If the task is assigned to multiple users (including you), the rule does not execute.
Figure 16-18 Setting User Rules in Worklist Preferences

Figure 16-18 also shows the following:
You can create, delete, and edit rules (click the rule name).
A rule is active (see the Active column in Figure 16-18) if the date range you specified when you created the rule is current.
Use a group rule to specify how a workflow rule applies to members of a group. Examples of group rules include:
Assigning tasks from a particular customer to a member of the group
Ensuring an even distribution of task assignments to members of a group by using round-robin assignment
Ensuring that high-priority tasks are routed to the least busy member of a group
Creating a group rule is similar to creating other rules (see Figure 16-16, "Creating a Rule in the Worklist Application"); only some of the actions are different. For group rules, you can specify the following actions:
Reassign via—You can specify a criterion to determine which member of the group gets the assignment. This dynamic assignment criterion can include round-robin assignment, assignment to the least busy group member, or assignment to the most productive group member. You can also add your custom functions for allocating tasks to users in a group. See the following for more information:
"Runtime Config Service" for more information about dynamic assignment
"Implementing a Dynamic Assignment Function" for more information about custom functions
Reassign to—As with user rules, you can reassign tasks to subordinates or groups you directly manage. If you have been granted the BPMWorkflowReassign role, then you can reassign tasks to any user or group (outside your management hierarchy).
Take no action—As with user rules, you can create a rule with a condition that prevents a more generic rule from being executed.
The group Rules List page is similar to the user Rules List page, with the addition of a list of the groups that you (as the logged-in user) manage. You can select from this list to specify the group for which you are creating a rule.
Use a custom view to customize your task list display. Examples of custom displays include:
Ordering the task list in a particular way
Displaying only those tasks that meet a particular condition
Displaying specific attributes (columns) in your task list
You can also grant other users access to your views.
Figure 16-19 shows the Custom Views page.
The following functionality is available:
You can create, edit, copy, and delete views, and choose to make the view visible or not in the My Views section of the Work Queues pane.
For each view in the Granted Views list, you can choose to make the view visible or not in the Delegated Views section of the Work Queues pane on the Task List page.
Details are available for granted views. You can rename a view granted to you.
Figure 16-20 shows the Create Custom View page.
You can specify the following when creating a custom view:
General—You must specify a name for your view.
Columns—You can specify which columns you want to display in your task list. The columns in the views can be standard task attributes as well as any flex fields that have been mapped for the specific task type. See "Using the Administration Functions" for information about mapping flex fields.
The default columns are the same as the columns in your inbox. You can also choose to show tasks actions in your task list and select ascending or descending order for a single column.
Filter—You can specify which task categories you want to display, for example, My, Group, My & Group, and so on. You can also add conditions, for example, a condition that displays a task only when the title contains the words loan request.
Sharing—You can grant access to this view to another user; for example, if jstein grants access to a My & Group category of tasks to jcooper, then jcooper will see jstein's tasks and group tasks. Sharing a view with another user is similar to delegating all tasks that correspond to that view to the other user; that is, the other user can act on your behalf. Shared views are visible in the Proxy Work Queues section of the worklist (shown in Figure 16-14, "Work Queues Pane").
Use display preferences to customize how tasks are displayed in your worklist. As Figure 16-21 shows, you can use the following options to customize the display:
Maximum number of tasks per page
Page height in pixels
Default ordering of tasks
Show the following columns in the inbox view
Show task actions in task list
Figure 16-21 Setting Display Preferences in the Worklist Application

Administrators are users who have been granted the BPMWorkflowAdmin role. Administrators see the following tabs on the Worklist Application home page:
An administrator uses the Manage Rules tab, shown in Figure 16-22, to view or edit the rules for any user or group.
This tab is useful if an administrator is needed to fix a problem with a rule. Also, for a user who no longer works for the company, administrators can set up a rule for that user so that all tasks assigned to the user are automatically assigned to another user or group.
An administrator uses the Flex Field Mappings tab, shown in Figure 16-23, to promote data from the payload to inline attribute flex fields. By promoting data to flex fields, the data becomes searchable and can be displayed as columns in the Task Listing (home) page.
To create a flex field mapping, an administrator first defines a semantic label, which provides a more meaningful display name for the flex field attribute. Click Create Label to use the Create Payload Mapping Label interface, as shown in Figure 16-24.
As the figure shows, the label amount is mapped to the flex field NumberAttribute1, The payload attribute is also mapped to the label. In this example, the Number attribute type is associated with the amount label. The end result is that the value of the Number attribute is stored in the NumberAttribute1 column, and amount is the column label for that value as displayed in the user's task list. Labels can be reused for different task types. You can delete a label only if it is not used in any mappings.
A mapped payload attribute can also be displayed as a column in a custom view, and used as a filter condition in both custom views and workflow rules. The display name of the payload attribute is the attribute label that is selected when doing the mapping.
When this option is selected, all flex field mappings defined for all task types are displayed, as shown in Figure 16-25.
To display all the payload attributes mapped to a particular label, click the respective row in the label table.
When this option is selected, administrators can view or edit flex field mappings for a particular task type.
To edit mappings by task type:
Select Edit mappings by task type and click the flashlight icon.
Select a task type and click Select, as shown in Figure 16-26.
With the task type displayed in the Edit mappings by task type field, click Go.
All current mappings for the task type are displayed, as shown in Figure 16-27.
Select a mapping label and click Select.
Figure 16-28 shows a completed mapping.
If you want to create a new label, click Create Label and provide a label name, as shown in Figure 16-29. Note that the data type will be restricted based on the data type of the payload attribute.
To add a new mapping, click Add Row (if needed) and select a payload attribute from the list.
Click the flashlight icon and select a label.
Note the following restrictions:
Only simple type payload attributes can be mapped. Mapping specific simple types within a complex type is not supported.
A flex field (and thus a label) can be used only once per task type.
Data type conversion is not supported for the number or date data types. For example, you may not map a payload attribute of type string to a label of type number.
An administrator uses the Application Customization tab, shown in Figure 16-30, to customize the appearance of the Worklist Application.
Values can be specified for the following parameters:
Login page realm label—If the identity service is configured with multiple realms, then the Worklist Application login page displays a list of realm names. LABEL_LOGIN_REALM specifies the resource bundle key used to look up the label to display these realms. The term realm can be changed to fit the user community—terms such as country, company, division, or department may be more appropriate. Administrators can customize the resource bundle, specify a resource key for this string, and then set this parameter to point to the resource key.
See "Customizing the Login Page" for information on customizing the image on the login page.
Branding image location—This is the image displayed in the top left corner of every page of the Worklist Application. (The Oracle logo is the default.) Administrators can provide a .gif, .png, or .jgp file for the logo. This file must be in the public_html directory of the Worklist Application.
See "Customizing Header Information" for information about the header.
Application resource bundle classname—A resource bundle provides the strings displayed in the Worklist Application. By default, this is the class at:
oracle.bpel.services.workflow.resource.WorkflowResourceBundle
Administrators can change the strings shown in the application by copying WorkflowResourceBundle and creating their own. This parameter allows administrators to specify the classpath to this custom resource bundle.
The Worklist Application offers the following reports from the Reports link:
To create a report:
Click the Reports link.
Click the name of the report you want.
Provide inputs to define the search parameters of the report.
See the following sections on each report type for information about input parameters.
Click Run.
As shown in Figure 16-31, report results (for all report types) are displayed in both a table format and a bar chart format. The input parameters used to run the report are displayed under Report Inputs, in the lower-left corner (may require scrolling to view).
Figure 16-31 Report Display—Table Format, Bar Chart Format, and Report Inputs

This report provides an analysis of tasks assigned to users' groups or reportees' groups that have not yet been claimed (unattended tasks). Use the following input parameters to define the report:
Assignee—The tasks analyzed are based on the category chosen as it applies to the user; that is, tasks assigned to the user's groups, tasks assigned to the reportee's groups, tasks where the user is a creator, and tasks where the user is an owner.
Creation Date (range)
Expiration Date (range)
Task State
Priority
See Table 16-2 for descriptions of Creation (or Created) Date, Expiration Date, Task State (or Status), and Priority.
Figure 16-32 shows an example of an Unattended Tasks Report.
The report shows that the California group has 15 unattended tasks, the Supervisor group has 7 unattended tasks, and the LoanAgentGroup has 11 unattended tasks. The unattended (unclaimed) tasks in this report are all DocumentReview tasks. If more than one type of unattended task exists when a report is run, all task types are included in the report, and the various task types are differentiated by color.
This report provides an analysis of the number of tasks assigned to a user, reportees, or their groups, broken down by priority. Use the following input parameters to define the report:
Assignee—Depending on the assignee that you choose, this includes tasks assigned to you (My), tasks assigned to you and groups that you belong to (My & Group), or tasks assigned to groups to which your reportees belong.
Creation Date (range)
Ended Date (range)—This is the end dates of the tasks to be included in the report.
Priority
See Table 16-2 for descriptions of Creation (or Created) Date and Priority.
Figure 16-33 shows an example of a Tasks Priority Report.
The report shows that the California group, the Supervisor group, and the LoanAgentGroup each have 16 tasks of normal priority. The users rsteven and jcooper have 5 and 22 tasks, respectively, all normal priority. Priorities (highest, high, normal, low, lowest) are distinguished by different colors in the bar chart.
This report provides an analysis of the time taken to complete tasks from creation to completion based on users' groups or reportees' groups. Use the following input parameters to define the report:
Assignee—Depending on the assignee that you choose, this includes your tasks or tasks assigned to groups to which your reportees belong.
Creation Date (range)
Ended Date (range)—This is the end dates of the tasks to be included in the report.
Priority
See Table 16-2 for descriptions of Creation (or Created) Date and Priority.
Figure 16-34 shows an example of a Tasks Cycle Time Report.
The report shows that it takes 1 hour and 6 minutes on average to complete DocumentReview tasks, and 1 hour and 28 minutes on average to complete VacationApproval tasks. The bar chart shows the average cycle time in milliseconds.
This report provides an analysis of assigned tasks and completed tasks in a given time period for a user, reportees, or their groups. Use the following input parameters to define the report:
Assignee—Depending on the assignee that you choose, this includes your tasks or tasks assigned to groups to which your reportees belong.
Creation Date (range)—The default is one week.
Task Type—Use the flashlight icon to select from a list of task titles. All versions of a task are listed on the Select Workflow Task Type page, as shown in Figure 16-35.
Figure 16-36 shows an example of a Tasks Productivity Report.
The report shows the number of tasks assigned to the California, LoanAgentGroup, and Supervisor groups. For individual users, the report shows that jcooper has 22 assigned tasks. In addition to his assigned tasks, jcooper has completed 2 tasks. The report shows that mtwain and rsteven have completed 6 and 11 tasks respectively. In the bar chart, the two task states—assigned and completed—are differentiated by color.
In the banner area, the logged-in user's name appears, as in Welcome jstein [jazn.com]. Click the user name to display information such as the user's full name, telephone number, e-mail address, manager, reportees, groups to which the user belongs, and roles that have been granted, as shown in Figure 16-37.
The roles that have been granted control the actions that the user can perform in the application. The user can click the manager and reportee links to get user information by traveling up and down the management chain. Clicking a group displays the Group Info page for that group. The Group Info page displays the list of direct and indirect users (users contained in child groups of the current group).
The identity service determines a user's preferred language and time zone. This information is extracted from either the JAZN file-based community or from an external directory service such as Oracle Internet Directory. If no preference information is available, then the user's preferred language and time zone are set to the system default (en_US and America/Los_Angeles, as shown in the following sample code).
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
SOA_Oracle_Home\bpel\system\services\config
The Worklist Application supports the locales shown in Table 16-4.
Table 16-4 Languages and Java Locales Supported by the Worklist Application
| Language | Java Locale |
|---|---|
| English | (en) |
| English (United States) | (en_US) |
| German | (de) |
| Spanish (International) | (es) |
| Spanish (Spain) | (es_ES) |
| French | (fr) |
| French (Canada) | (fr_CA) |
| Italian | (it) |
| Japanese | (ja) |
| Korean | (ko) |
| Portuguese | (pt) |
| Portuguese (Brazil) | (pt_BR) |
| Chinese (Simplified) | (zh_CN) |
| Chinese (Traditional) | (zh_TW) |
If an LDAP-based provider such as OID is used, then language settings are changed in the OID community.
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
However, this can be changed to a custom resource bundle by setting the appropriate application preference. See "Using the Administration Functions" for more information.
For task attribute names, flex field attribute labels, and dynamic assignment function names, the strings come from configuring the resource property file WorkflowLabels.properties. This file exists in the wfresource subdirectory of the services config directory. See Chapter 15, "Oracle BPEL Process Manager Workflow Services" for information on adding entries to this file for dynamic assignment functions and attribute labels.
For custom actions and task titles, the display names come from the message bundle specified in the task configuration file. If no message bundle is specified, then the values specified at design time are used. See Chapter 15, "Oracle BPEL Process Manager Workflow Services" for information on how to specify message bundles so that custom actions and task titles are displayed in the preferred language.
The sample Worklist Application described in this chapter is fully functional. Use it as a starting point to create a customized Worklist Application to suit your specific needs. This section discusses the architecture of the Worklist Application and provides specific details for customizing it.
The Worklist Application is available in the samples directory at
SOA_Oracle_Home\bpel\samples\hw\worklistapp
The Worklist Application follows the standard model-view-controller approach, as shown in Figure 16-38.
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. The worklist client APIs support a variety of different protocols (local and remote EJBs, direct java invocation, SOAP) for invoking the underlying workflow service. The clients send the API request to the workflow services, using the appropriate protocol. 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. Hence the servlets and the JSPs have different functions. 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
SOA_Oracle_Home\bpel\samples\hw\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
SOA_Oracle_Home\bpel\samples\hw\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
See Chapter 15, "Oracle BPEL Process Manager Workflow Services" for more information.
A typical page flow sequence is shown in Figure 16-39.
This sequence encompasses logging in to the application to view the details of a task. 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. Page flows for other functionality, such as updating the payload, adding an attachment, reassigning a task, viewing history, and updating user preferences, are similar.
The separation of responsibility—between servlets that handle API calls and processing, and JSPs that handle formatting of the data—facilitates customizing the application. The page flow requirements for many customer requirements are probably similar to the page flow for the sample Worklist Application. Therefore, it may be sufficient to modify the JSPs (and the Java class HTMLFormatter.java used for formatting HTML data).
Table 16-5 lists the Worklist Application JSPs.
Table 16-5 Worklist Application JSPs
| JSP | Servlet | Notes |
|---|---|---|
AdminPrefs.jsp |
Admin | Application customization preferences |
AdvancedSeach.jsp |
TaskList | Advanced query for tasklist |
Branding.jsp |
-- | Branding information displayed in the top left corner of every page |
ColumnSelectIncludes.jsp |
-- | Control that allows users to select a list of columns. Used in DisplayPrefs.jsp and ViewEdit.jsp |
DisplayPrefs.jsp |
Preferences | User display preferences |
Error.jsp |
-- | All servlets redirect to this page when the exception is caught |
FilterForm.jsp |
-- | Control that allows users to define advanced task queries. Used in AdvancedSearch.jsp and ViewEdit.jsp |
FilterIncludes.jsp |
-- | Control that allows users to define task filtering criteria, used in FilterForm.jsp and RuleEdit.jsp |
Footer.jsp |
-- | Appears at the bottom of every page |
GetHWTaskHistory.jsp |
-- | -- |
Header.jsp |
-- | Appears at the top of every page |
HeaderIncludes.jsp |
-- | Used to include common Javascript function into the page headers |
Home.jsp |
Admin | Used as a container for the administrator pages |
IdentityBrowser.jsp |
IdentityBrowserPopup | Control that allows users to select users and groups |
IdentityBrowserPopup.jsp |
IdentityBrowserPopup | Pop-up window that includes the identity browser control |
Login.jsp |
Login | Application login page |
PayloadMapping.jsp |
Admin | Flex field payload mapping |
PayloadMappingBrowser.jsp |
PayloadMappingBrowser | Flex field payload mapping |
PayloadMappingBrowserPopup.jsp |
PayloadMappingBrowserPopup | Flex field payload mapping |
PayloadMappingEditor.jsp |
-- | Flex field payload mapping |
PayloadMappingLabelPopup.jsp |
-- | Flex field payload mapping |
PopUpHeader.jsp |
-- | Header displayed in pop-up windows |
Preferences.jsp |
Preferences | Used as a container for the user preferences pages |
ReportChart.jsp |
Reports | Task reporting |
ReportEdit.jsp |
Reports | Task reporting |
ReportInput.jsp |
Reports | Task reporting |
ReportOutput.jsp |
Reports | Task reporting |
Reports.jsp |
Reports | Container page for the task reporting pages |
RequestInfo.jsp |
RequestInfo | Task request info requests |
RuleCreate.jsp |
Preferences | Create a new workflow rule |
RuleEdit |
Preferences | Edit workflow rule details |
RuleList.jsp |
Preferences | Listing of workflow rules |
SubTasks.jsp |
SubTasks | View task subtasks |
TaskAssignees.jsp |
TaskAssignee | Handle task reassignment |
TaskDetails.jsp |
TaskDetails | Display task details |
TaskHistory.jsp |
TaskHistory | Display task history |
TaskList.jsp |
TaskList | Main application page. Displays lists of tasks |
TaskRouting.jsp |
TaskRouting | Handle updates to task routing |
TaskTypeDetails.jsp |
TaskType | Display details for workflow tasktype |
TaskTypeList.jsp |
TaskType | Display a list of task types in a pop-up window |
UserInfo.jsp |
UserInfo | Display user information |
UserInfoContent.jsp |
UserInfo | Display user information |
Vacation.jsp |
Preferences | User vacation preference |
ViewDetails.jsp |
Preferences | Details for delegated user task views |
ViewEdit.jsp |
Preferences | Edit details for owned user task views |
ViewList.jsp |
Preferences | Listing of user task views |
The following sections discuss how to customize some commonly used pages.
You can customize the image on the login page (the default is an image of people). In Login.jsp, replace the portion of the image tag shown in bold (people.jpg) with your own image:
<IMG HEIGHT="55" SRC="img/people.jpg">
See "Application Customization" for information on customizing the login page realm label.
The header section appears on every page above the bread crumb navigation. You can customize the header by modifying the Header.jsp file. The logo and the name of the application in the left corner are contained in the Branding.jsp file that is included in the header.
See "Application Customization" for information on changing the branding image.
The upper-right area contains HTML controls for filters and search criteria for retrieving tasks. The filters can be customized to include only those choices that are relevant to the application.
The Task Details page is used to examine the contents of the task and view or update the payload. The layout of the details page consists of the actions and buttons at the top, a header section, the payload section, and the footer section consisting of optional contents such as comments and attachments. The information displayed on this form is typically defined by the task definition for the task being displayed (and the format is controlled by the workflow task designer). You can customize the Task Details page by modifying the TaskDetails.jsp file. See "Generating a Custom Task Display Form" for information on how to customize this file.
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
In addition, ensure that the wf_client_config.xml file is correctly set up for the client type that you select.
The top-level directory of the sample Worklist Application contains an ant script, build.xml, that can be used to build and deploy the Worklist Application. This ant script makes use of the properties file orabpel.properties that exists in the same directory. The instructions in this section also provide fixes to some incorrect files in the sample Worklist Application source files configuration.
This section contains the following topics:
Task 4: Building and Deploying the Application
See Also:
"Enabling the Worklist Application for Single Sign-On" after performing these tasks if you want to secure the Worklist Application to be Java single sign-on (JSSO)-enabled