Skip Headers
Oracle® BPEL Process Manager Developer's Guide
10g (10.1.3.1.0)

Part Number B28981-03
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

16 Worklist Application

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:

16.1 Use Cases for the Worklist Application

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:

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.

16.2 Overview of Worklist Application Concepts

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.

16.2.1 Worklist Application User Types

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.

16.2.2 Task Components

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.

16.3 Features of the Worklist Application

Use Internet Explorer 6.0 or Mozilla Firefox 1.0.4 to access the Worklist Application.

  1. Open a Web browser.

  2. 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.

  3. 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

Task Listing (Home) Page
Description of the illustration wl_homepg2.gif

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:

  • My—Retrieves tasks directly assigned to the logged-in user

  • Group—Tasks assigned to the groups to which the logged-in user belongs

  • My & Group—Tasks assigned to the user and the groups to which the logged-in user belongs

  • Previous—Tasks that the logged-in user has updated

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:

16.3.1 Using the Task Details Page

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:

16.3.1.1 Task Actions

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.

16.3.1.2 Request Status

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.

Figure 16-4 A Successful Update Request

Description of wl_successful.gif follows
Description of the illustration wl_successful.gif

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.

16.3.1.3 Header Section

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-6 Header Section of the Task Details Page

Description of wl_header1.gif follows
Description of the illustration wl_header1.gif

16.3.1.4 Payload Section

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.

16.3.1.5 Comments and Attachments Section

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.

Figure 16-8 Adding a Comment or Attachment

Description of wl_comments.gif follows
Description of the illustration wl_comments.gif

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.

16.3.1.6 History Section

Figure 16-9 shows the short history for a vacation approval task.

Figure 16-9 History Section of the Task Details Page

Description of wl_history.gif follows
Description of the illustration wl_history.gif

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.

16.3.1.7 Routing

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.

16.3.1.8 Requesting More Information

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.

16.3.1.9 Reassignment

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:

Figure 16-10 Reassigning Tasks

Description of wl_reassign2.gif follows
Description of the illustration wl_reassign2.gif

  • 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.

16.3.1.10 Parallel Tasks

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.

16.3.1.11 Determining Action Permissions

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:

  1. Get the list of actions a user can perform based on the privileges granted to him.

  2. Get the list of actions that can be performed in the current state of the task.

  3. Create a combined list of actions that appear on the preceding lists.

  4. 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.

16.3.2 Using Advanced Search

If you click the Advanced Search link, the page shown in Figure 16-11 is displayed.

Figure 16-11 Advanced Search Page

Description of wl_advsearch.gif follows
Description of the illustration wl_advsearch.gif

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.

Figure 16-12 Adding Conditions to an Advanced Search

Description of wl_search1.gif follows
Description of the illustration wl_search1.gif

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.

16.3.3 Viewing a Bar Chart of Task Status

When you click the bar chart icon, a bar chart of the tasks is displayed, as shown in Figure 16-13.

Figure 16-13 My Tasks Page with Chart Displayed

Description of wl_barchart.gif follows
Description of the illustration wl_barchart.gif

The bar chart shows the tasks broken down by status, with a count of how many tasks in each status category.

16.3.4 Using Work Queues

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.

16.3.5 Setting Preferences

From the Preferences link, the following kinds of preferences are available:

16.3.5.1 Vacation Preferences

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

Description of wl_rule_vac.gif follows
Description of the illustration wl_rule_vac.gif

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.

Figure 16-16 Creating a Rule in the Worklist Application

Description of wl_vac.gif follows
Description of the illustration wl_vac.gif

16.3.5.2 My Rules

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.

    Figure 16-17 Adding Conditions on a Rule

    Description of wl_rules_cond.gif follows
    Description of the illustration wl_rules_cond.gif

  • 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

Description of wl_rules2.gif follows
Description of the illustration wl_rules2.gif

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.

16.3.5.3 Group Rules

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:

  • 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.

16.3.5.4 Custom Views

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.

Figure 16-19 The Custom Views Page

Description of wl_custview_list.gif follows
Description of the illustration wl_custview_list.gif

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.

Figure 16-20 Creating a Custom View

Description of wl_custview.gif follows
Description of the illustration wl_custview.gif

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").

16.3.5.5 Display Preferences

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

Description of wl_display.gif follows
Description of the illustration wl_display.gif

16.3.6 Using the Administration Functions

Administrators are users who have been granted the BPMWorkflowAdmin role. Administrators see the following tabs on the Worklist Application home page:

16.3.6.1 Manage Rules

An administrator uses the Manage Rules tab, shown in Figure 16-22, to view or edit the rules for any user or group.

Figure 16-22 The Manage Rules Tab

Description of wl_manage_rules.gif follows
Description of the illustration wl_manage_rules.gif

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.

16.3.6.2 Flex Field Mappings

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.

Figure 16-23 The Flex Field Mappings Tab

Description of wl_flexfields2.gif follows
Description of the illustration wl_flexfields2.gif

16.3.6.2.1 Creating Labels

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.

16.3.6.2.2 Browsing All Mappings

When this option is selected, all flex field mappings defined for all task types are displayed, as shown in Figure 16-25.

Figure 16-25 Browsing Mappings

Description of wl_browseall.gif follows
Description of the illustration wl_browseall.gif

To display all the payload attributes mapped to a particular label, click the respective row in the label table.

16.3.6.2.3 Editing Mappings by Task Type

When this option is selected, administrators can view or edit flex field mappings for a particular task type.

To edit mappings by task type:

  1. Select Edit mappings by task type and click the flashlight icon.

  2. Select a task type and click Select, as shown in Figure 16-26.

  3. 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.

  4. Select a mapping label and click Select.

    Figure 16-28 shows a completed mapping.

    Figure 16-28 Flex Field Mapping Created

    Description of wl_savedmapping.gif follows
    Description of the illustration wl_savedmapping.gif

    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.

    Figure 16-29 Creating a Payload Mapping Label

    Description of wl_flexfields1.gif follows
    Description of the illustration wl_flexfields1.gif

  5. To add a new mapping, click Add Row (if needed) and select a payload attribute from the list.

  6. Click the flashlight icon and select a label.

16.3.6.2.4 Restrictions

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.

16.3.6.3 Application Customization

An administrator uses the Application Customization tab, shown in Figure 16-30, to customize the appearance of the Worklist Application.

Figure 16-30 The Application Customization Tab

Description of wl_customizing2.gif follows
Description of the illustration wl_customizing2.gif

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.

16.3.7 Creating Reports

The Worklist Application offers the following reports from the Reports link:

To create a report:

  1. Click the Reports link.

  2. Click the name of the report you want.

  3. Provide inputs to define the search parameters of the report.

    See the following sections on each report type for information about input parameters.

  4. 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

Description of wl_rpt_inputs.gif follows
Description of the illustration wl_rpt_inputs.gif

16.3.7.1 Unattended Tasks Report

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.

Figure 16-32 Unattended Tasks Report

Description of wl_unattend_rpt2.gif follows
Description of the illustration wl_unattend_rpt2.gif

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.

16.3.7.2 Tasks Priority Report

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.

Figure 16-33 Tasks Priority Report

Description of wl_prio_rpt.gif follows
Description of the illustration wl_prio_rpt.gif

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.

16.3.7.3 Tasks Cycle Time Report

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.

Figure 16-34 Tasks Cycle Time Report

Description of wl_cyctime_rpt.gif follows
Description of the illustration wl_cyctime_rpt.gif

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.

16.3.7.4 Tasks Productivity Report

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-35 Select Workflow Task Type

    Description of wl_seltasktype.gif follows
    Description of the illustration wl_seltasktype.gif

Figure 16-36 shows an example of a Tasks Productivity Report.

Figure 16-36 Tasks Productivity Report

Description of wl_product_rpt.gif follows
Description of the illustration wl_product_rpt.gif

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.

16.3.8 User and Group Information

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.

Figure 16-37 User Information

Description of wl_user.gif follows
Description of the illustration wl_user.gif

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).

16.4 Accessing the Worklist Application in Local Languages

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.

16.5 Customizing the Worklist Application

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

16.5.1 Worklist Application Architecture

The Worklist Application follows the standard model-view-controller approach, as shown in Figure 16-38.

Figure 16-38 Worklist Application Architecture

Description of bpmdg032.gif follows
Description of the illustration bpmdg032.gif

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.

Figure 16-39 A Typical Page Flow Sequence

Description of bpmdg031.gif follows
Description of the illustration bpmdg031.gif

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.

16.5.1.1 Customizing the Login Page

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.

16.5.1.2 Customizing Header Information

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.

16.5.1.3 Customizing the Task Details Page

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.

16.5.1.4 Changing the Client-Service Binding for the Worklist Application

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.

16.5.1.5 Deploying the Custom Worklist Application

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:

16.5.1.5.1 Task 1: Changing the Application Configuration

The sample web.xml and worklist-taglib.tld file files are not currently in sync with the ones in the deployed Worklist Application and must be