32 Using Approval Management

This chapter describes the approval management extensions available for the human workflow services of Oracle SOA Suite. The human workflow service is responsible for handling all interactions with users or groups participating in the business process. It does this by creating and tracking tasks for the appropriate users in the organization. Users typically access tasks through a variety of clients, including Oracle BPM Worklist, email, portals, or custom applications. Approval management extensions enable you to define complex task routing slips for human workflow by taking into account business documents and associated rules to determine the approval hierarchy for a work item. Additionally, approval management extensions let you define multi-stage approvals with associated list builders based on supervisor or position hierarchies. You define the approval task in the Human Task Editor of Oracle JDeveloper, and associate the task with a BPEL process.

32.1 Introduction to Approval Management

Approval Management extensions extend human workflow services with complex approval patterns. It serves as a sophisticated "Assignment Manager" for human workflow. Some of the key workflow features that are provided include:

Declarative modeling of approval management processes

The ability to define complex multi-stage approval with static and dynamic approval list

The ability to look up users and roles in various user directories, including Oracle Internet Directory, LDAP, and third-party directories

AMX provides the following additional features:

Attributes derived from ADF view object in transactional applications

The ability to retrieve various job, position, and supervisory hierarchies from HR systems using hierarchy provider plug-ins.

The ability to define rules for controlling approval lists and hierarchy configurations

32.1.1 AMX Components

Figure 32-1 shows the key AMX and human task integration components. These components are described in subsequent sections of this chapter.

Figure 32-1 Overall Architecture

The human workflow service enables users to model human interactions as part of a business process. The human workflow service handles requests based on task and rules metadata. It consists of the following set of core services:

The core components required for approval management include the following:

Human Task Editor in JDeveloper

This task editor is used to define the metadata for a human task and the routing slip. The task editor lets you define such things as task parameters, outcomes, expiration and escalation, and notification settings. Some of the components added by AMX include the ability to do the following:

Determine the approval hierarchy based on business documents (ADF objects) and business rules. This is done through Rules Designer in JDeveloper

Human workflow services

Some of the key services that are required for handling complex approvals include the following:

Task Service - Responsible for creating and managing tasks in the dehydration store

Identity Service - Responsible for authentication and authorization of users and groups. The service can look up various user directories for authorization and contact information for users.

Task Query Service - Responsible for retrieving tasks for the web-based worklist application

Decision Service - Responsible for executing business rules related to approvals

Oracle BPM Worklist

Oracle BPM Worklist is a web-based application that lets users access tasks assigned to them and perform actions based on their roles in the approval process. Oracle BPM Worklist supports the following profiles:

Work assignee - An end user who is assigned a task. These users can view tasks assigned to them and perform actions, and also can define custom views and define routing rules for their tasks.

Process owner - Typically a business analyst responsible for managing certain types of approvals. These users can manage tasks for the processes they own, define approval groups, and change approval policies

Workflow administrator - Typically a system administrator responsible for managing errored tasks, and administering and monitoring work queues. This user also may use Oracle Enterprise Manager to monitor the health of the workflow services.

The sections that follow describe new concepts introduced to handle complex approvals.

32.2.1 Task

A task handles approvals. A different task is created for each approval requirement based on the business served by it. For example, an approve new expense report task or an approve new purchase order task.

Some of the standard metadata for a task include the following:

Task attributes such as title, outcomes (approve, reject, and so on) priority, expiration and others

Task parameters that may be based on simple primitive types, XML elements, or external entities such as ADF view objects

A complex approval task that may include one or more stages to identify the key milestones within the approval sequence. For more information see Section 32.2.3, "Stages."

Expiration and escalation policy

Notification settings for notifying various participants

List builders within stages, which are based on names and expression, management chain, supervisory, position, job-level hierarchy, or approval groups. For more information, see Section 32.2.4, "List Builders."

Approval task configurations, including policies for substitution and modification of approvers, configuration of self-approval, and repeated approvers. For more information, see Section 32.2.1, "Task."

Header approval runs in parallel with line approval and receipt verification. After these stages run, the payment stage runs.

Each of the four stages has list builders. Multiple list builders in a stage can run in serial or parallel to one another. One or more approvers can exist within each list builder. Figure 32-3 illustrates these concepts.

Figure 32-3 Stages and Their List Builders

These concepts are described in the sections that follow.

32.2.2 Service Data Objects

ADF Business Components objects can be exposed easily as Service Data Objects (SDOs) through the service interface. This provides a flexible way to accept business entities. Subsequently, supporting SDOs natively, enables us to accept multiple business entities. This also lays the foundation for future Flexfield SDO support. Since an SDO is a structured XML, you can pass it in as static XML through the task payload.

A collection is defined in an entity parameter for the task. It enables access to a portion of the business entity as an XML fragment retrieved by an XPATH expression. Keys allow us to identify the primary keys in this fragment.

An entity parameter is the definition that tells us how to access an SDO or a static XML. An entity parameter captures the following information for an SDO:

Identity of a reference in the overall SCA process, including the Web service definition language (WSDL) for the SDO web service

Method to invoke

Input message to the web service

Output message to the web service

Collections

An entity parameter captures the following information for a static XML:

XSD for the static XML

Collections

For example, an expense voucher can have hierarchical groupings of header, lines, and cost centers. For approval policy purposes, you may only define a collection on header and lines if these are the only components required for determining the set approvers. It is not necessary to map as collections those parts of the business document that are not necessary to define rules.

Each approval stage is associated with a collection. In Figure 32-4, there are four stages in the approval.

Header Approval is associated with the Expense Header collection.

Receipt Verification is associated with the Expense Header collection.

Payment is associated with the Expense Header collection.

Line Approval is associated with the Expense Lines collection.

A compound approval may consist of multiple stages and then can be modeled in serial or parallel with each other. Each stage consists of list builders to determine the list of approvers.

Optionally, each list builder can be associated with an approval policy, that is, a set of rules. At run time, the appropriate set of approvals are returned based on the list builders used within the stage and on the associated policies.

32.2.4 List Builders

As described in Section 32.2.3, each approval stage consists of list builders to determine the actual list of approvers. The following list builders are supported.

Names and Expressions

Enables you to construct a list using static names, or names coming from XPath expressions.

Approval Groups

Includes predefined approver groups in the approver list. Approval groups can be static or dynamic.

Job Level

Ascends the supervisory hierarchy, starting at a given approver and continuing until an approver with a sufficient job level is found.

Position

Ascends the position hierarchy, starting at a given approver's position and continuing until a position with a sufficient job level is found.

Supervisory

Ascends the primary supervisory hierarchy, starting at the requester or at a given approver, and generates a chain that has a fixed number of approvers in it.

Management Chain

Enables you to construct a list based on management relationships in the corresponding user directory.

The management chain participant type only supports parallel routing when the first assignee in the management chain is a single user. You cannot specify parallel participants such as a set of users or a group, as the initial assignees in the management chain.

Rule-based

Enables you to model rules that return different list-builder types based on different conditions. For example, if you model a supervisory list builder with rules, the rule can return only the supervisory list builder. If you model a rule-based list builder, the rule can return different list-builder types.

For information about the Names and Expressions, Management Chain, and Rule-based list builders, see "Creating a Single Task Participant List" in the "How to Assign Task Participants" section in the "Creating the Human Task Definition with the Human Task Editor" chapter in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

32.2.5 Task Operations

Most of the standard human task operations also are available on AMX-based tasks. Some of the common operations include the following:

User-defined outcomes - Business outcomes, such as "Approve" and Reject," that are associated with a task. When a user performs these types of actions, the task is removed from the user's "Inbox" and is marked as completed or moved to the next approver.

Delegate - Allows a user to assign a task to another person or role to act on his or her behalf.

Escalate - Allows a user or an administrator to escalate a task to the user's supervisor.

Reassign - Allows users to transfer a task to another user. From that point on, the new user's hierarchy is used for supervisor or other organization-based approvals.

Withdraw - Allows the task initiator or administrator to cancel or withdraw the task after the approval has started.

Request for Information - Allows a task approver to request information from any prior participant or the task initiator.

Pushback - Allows the task approver to push back the task to the previous approver to review it again.

32.2.6 Business Rules for Approval

Approvers of a task can be defined either inline in a task definition or by using business rules to specify the list builders that identify the actual approvers of a task. In addition, you can use business rules to specify approver substitution and list modifications. These rules are defined with the help of Oracle Business Rules and can vary between organizations. Typically, however, they are defined by the customer.

Business rules are a combination of conditions and actions. Optionally, priority and validity periods can be defined for these rules. In Human Workflow rules, rule conditions are defined using fact types that correspond to the task, and to the task message and entity attributes (which are XML representations of SDO objects). Rule actions consist of approver list builders and their parameters. Approver list builders move up a particular hierarchy and construct or modify the approver list according to the parameters defined. Approver list builders are implemented as XML (JAXB) fact types.

32.2.6.2 Approver Substitution

Users, groups, and application roles appearing in a list can be substituted using list substitution. List substitution is available from Rules Designer and does not require any configuration in JDeveloper.

32.3 Designing Approval Management Tasks in Oracle JDeveloper

You design approval management tasks by defining a human task that provides the ability to model multi-stage approvals and determine the appropriate approvers based on approval policies for a business object and the associated HR hierarchy provider.

This section describes the overall modeling process and the specifics of the process you use to model approval management tasks in JDeveloper.

32.3.1 Introduction to the Modeling Process

The modeling process for designing approval management tasks includes the following:

Creating a human task definition

Creating a task display form using the Human Task Editor

Creating a human task definition includes the following tasks:

Specifying general information, such as task title and task-title globalization, outcomes, priority, owner, and category

Defining task parameters, including those with service data object (SDO) references

Specifying mapped attributes

Modeling task routing by specifying stages and list builders, and modeling any business rules that define the list builders

You also must create a task display using an ADF task flow to display the details of the approval. ADF task flows are used to model the user interface for the task details page. For more information, see "Designing Task Display Forms for Human Tasks" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

32.3.2 Before You Begin

Before designing approval management tasks, you must satisfy the following prerequisites:

You must have deployed SDO services.

You must have created a human task service component in which to design the approval task.

32.3.3 Specifying General Information

Some general information, including task title, outcomes, priority, owner, and category, is not specific to AMX.

32.3.3.1 Task-Title Globalization

The title attribute of the task object contains a user-friendly value that mainly is descriptive in nature. In AMX, the task title can be globalized so that it renders in the user's preferred language.

Title is defined in the *.task file for design time and in the WorkflowTask.xsd file for run time. Currently, the definition of these elements in both of these files are simple xsd:string types. For globalization, the structure and usage of these elements change to accommodate a mechanism that provides translatable, formatted strings.

The design-time metadata for these elements is enhanced to contain a value element and an optional set of parameters. Messages defined as an XPath expression or static have their information stored in the value element and require no parameters. Messages defined that rely on information in a resource bundle have a key stored in the value element with some parameters also defined.

The Human Task Editor provides a mechanism in the Expression Builder to enable the user to specify the resource key and parameters and, at the same time, generate the appropriate design time XML in the taskDefinition.

The title value, or a definition of the title value can be set in two places: in the TaskDefinition XML (.task ) file, or in the bpel file. When set in the bpel file, this value takes precedence over the definition in the TaskDefinition. However, the value in the bpel file is not translatable.

Click OK to close the dialog.

32.3.4 Specifying Task Parameters

Specifying task parameters includes the following tasks:

Creating SDO references

Defining entity parameters

Defining collections

32.3.4.1 How to Create Service Data Object (SDO) References

An SDO service can be invoked from workflow services to retrieve the SDO as XML. This invocation is in the form of a SOA web service call. When the SDO service WSDL URL is available, a web service reference should be added using the Create Web Service dialog.

To create a reference, enter the WSDL URL and select the port type from the available port types, as shown in Figure 32-9.

32.3.4.2 How to Define Entity Parameters

The following procedure enables you to accept a service data object (SDO).

Create a Service reference in the composite.

This allows Fabric to create all the necessary wiring to a specific URL that points to a WSDL.

Define the task payload as external and specify which workflow retrieves the SDO object.

This creates task parameters representing the input and output to the SDO web service.

Choose Entity.

Define the collection, its XPATH expression, and its keys, as shown in Figure 32-10.

Figure 32-10 Add Task Parameter: Define Collection

Set the collection for the stage.

Click OK.

The following procedure enables you to accept static XML.

Provide the XSD where the schema is defined.

Define the task payload parameter as static XML.

Define the collection, its XPATH expression, and its keys.

Set the collection for the stage.

Click OK.

32.3.4.3 How to Define Collections

Collections are references to specific parts of a task message attribute, both static-XML based and entity attributes. After defined, collections can then be associated with stages to identify a stage as acting on a collection.

Defining a collection involves defining the name of the collection and the XPath to the collection element. If the collection is defined for an entity attribute, the keys for the collection element have to be specified as well. Each key has to be a direct child of the collection element. Figure 32-11 shows how collections are defined.

Figure 32-11 Defining Collections

When you define a collection, JDeveloper automatically determines if it should be repeating element or not. This information is used when collections are associated with a stage. A non-repeating collection can be associated with a singular stage. A repeating collection, when associated with a stage, repeats the stage in parallel for each element in the collection at run time. For information about how the collection information is used in a stage, see Section 32.3.6.1, "How to Model and Configure Stages."

32.3.5 Specifying Mapped Attributes

Human workflow provides task-message attributes that you can use for storing use-case-specific data, such as data extracted from a task's payload. These attributes are also known as flexfield attributes or mapped flexfield attributes.

Mapped flexfield attributes allow payload values to be displayed as columns in the task listing, rather than being hidden in the task details. These values are stored in the human workflow database schema, and you can use them in queries, view definitions, and assignment rule definitions.

"Introduction to Flex Fields" in the chapter "Introduction to Human Workflow"

protected - AMX-specific mappings between a task component and protected flexfield attributes defined at design time. They cannot be changed at run time, and are deployed along with the task component.

Stores text data, up to 2000 characters. The content in these fields is checked during keyword searches in the Oracle BPM Worklist and through the task-query service.

ProtectedFormAttribute1 - ProtectedFormAttribute10

Stores text data, up to 2000 characters. The content in these fields is not checked during keyword searches in the Oracle BPM Worklist.

ProtectedURLAttribute1 - ProtectedURLAttribute10

Stores text data, up to 200 characters. The content in these fields is not checked during keyword searches in the Oracle BPM Worklist.

ProtectedDateAttribute1 - ProtectedDateAttribute10

Stores date information.

ProtectedNumberAttribute1 - ProtectedNumberAttribute10

Stores number information.

32.3.5.1 About Attribute Labels and Attribute-Label Mappings

Attribute labels are user-defined properties that allow a meaningful string to be applied to a particular flexfield attribute. The label should reflect the data to store in the attribute. For example, “CustomerName” for “ProtectedTextAttribute1,” “OrderNumber” for “ProtectedNumberAttribute2,” or “OrderDate” for “ProtectedDateAttribute1.”

A flexfield attribute can have multiple attribute labels defined for it. For example, the attribute “ProtectedTextAttribute1” could have the labels “CusomerName,” “PartId” and “EmployeeDepartment”.

Attribute-label mappings for protected attributes are defined at design time in the Human Task Editor. They define a mapping between a particular task component and an attribute label, and also specify how the value of the attribute should be populated. The same attribute label can be re-used in multiple mappings. This allows task components to map data having the same semantic meaning into a common attribute identified by a common label.

For example, PurchaseOrder, LoanRequest and ServiceRequest tasks all could define mappings to the “CustomerName” label. By sharing the same attribute labels across multiple task components, it is possible to construct worklist queries that query multiple task types and display or filter values from the common attribute labels. For example, it would be possible to construct a query that selected PurchaseOrder, LoanRequest, and ServiceRequest tasks, and then displayed the “CustomerName” as a column in the worklist task listing.

32.3.5.2 How to Define Attribute-Label Mappings

You define attribute-label mappings in the Mapped Attributes section of the Human Task Editor, as shown in Figure 32-12.

Figure 32-12 Mapped Attributes Section

Use the following procedure to define attribute-label mappings:

Click the Add icon to display the Add Mapped Attribute dialog, which is shown in Figure 32-13.

Figure 32-13 Add Mapped Attribute Dialog

Perform one of these options:

From the dropdown list, select the application server that contains the protected-attribute labels.

Click the Add icon to create a connection.

Click the Edit icon to edit an existing connection.

The Attribute dropdown list populates with the available attribute labels from the specified server.

From the dropdown list, select an attribute.

Note:

The list does not include any labels for flexfield attributes to which this task component is being mapped.

At the Value field, specify a value using one of these options:

Enter an XPath expression that determines the value to be stored in the attribute.

Click the icon to create a value in the Expression Builder.

Leave the field blank to allow the value to be determined at run time.

Usually, this XPath expression selects a value from the tasks's payload, but you can specify any valid expression that evaluates to a simple type, such as a string, a date, or a number.

Be aware that specifying an XPath expression is not mandatory. You may prefer to set the value of the underlying flexfield-attribute value yourself. For example, you can add a custom assign activity to the BPEL process that initiates the task, or manipulate the Task object through the workflow service APIs.

Enter a description. This is optional.

Click OK.

32.3.6 Specifying Routing and Approval Policies

Specifying routing and approval policies includes the following tasks:

Modeling and configuring stages

Modeling task participants

Modeling and configuring list builders

Defining business rules

Using business rules to specify list builders

Using assignment-context information

Aggregating task approvals

32.3.6.1 How to Model and Configure Stages

Based on functional needs, you can add and arrange multiple stages in a structure that can be a combination of sequential and parallel stages. This section describes how to create sequential and parallel stages.

Use the following procedure to create a stage:

In the Assignment and Routing section of the Human Task Editor, select a stage.

Click the Add icon, and then select either Sequential stage or Parallel stage from the dropdown list, as shown in Figure 32-14.

Figure 32-14 Create Stage

If you chose to create a sequential stage, the Assignment and Routing section looks like Figure 32-15.

Figure 32-15 Add Sequential Stage

If you chose to create a parallel stage, the Assignment and Routing section looks like Figure 32-16.

Figure 32-16 Add Parallel Stage

Double-click the stage you just created, or select the stage and click the Edit icon.

Non Repeating - specifies that there is only one stage in parallel for each element in a collection

Repeat Stage in parallel for each item in a collection - specifies that the stage to repeat in parallel for each element in a collection. For example, if a purchase order contain 10 lines, the stage is repeated 10 times in parallel.

From the dropdown list, select a collection.

According to your selection, use one of these options:

If you selected Non Repeating, click OK to close the Edit dialog.

If you selected Repeat Stage in parallel for each item in a collection, additional options display, as shown in Figure 32-18.

Figure 32-18 Edit Stage Dialog: Repeat Stage

Do the following:

Select a default outcome.

Select a consensus percentage.

Choose either to trigger the outcome immediately or wait until all the votes are in before triggering the outcome.

Click OK to close the Edit dialog.

32.3.6.2 How to Model Task Participants

Inside each stage you either can edit the default task participant or add new task participants. Task participants are assigned based on routing patterns, which can be any of the following:

32.3.6.3 How to Model and Configure List Builders

Stage uses a combination of list builders to generate the approver list. For more information, see Section 32.2.3, "Stages" and Section 32.2.4, "List Builders." You can only use each type of list builder only one time per stage. You can arrange these approver list builders in either sequential or parallel order. The order you select governs the order in which those approvers included in approver lists that are generated by list builders are assigned an approval task.

Table 32-2 describes the AMX-specific list builders and the options available to them.

Table 32-2 List-Builder Options

Option Name

Description

List Builder

Value-based

Specifies constraints to build the list of participants based on provided values.

All Except Position

Rule-based

Specifies constraints to build the list of participants based on rules that are defined in the Rule Editor.

All

Name

The name of the approval group to use.

Approval Groups

Allow Empty Groups

Allows the use of approval groups with no members.

Approval Groups

List Ruleset

Name of the ruleset specifying constraints for building participant list.

All

Starting Participant

The first participant in a list, usually a manager.

Job Level

Position

Supervisory

Top Participant

The last participant in the approval. Approval does not go beyond this participant in a hierarchy.

Job Level

Position

Supervisory

Number of Levels

A positive number specifying the number of levels to traverse for Supervisory, or the number of job level for Job Level and Position. This number can be an absolute value, or a value relative to starting point or creator.

Job Level

Position

Supervisory

Relative to

A positive number specifying the number of levels to traverse for Supervisory, or the number of job level for Job Level and Position. Possible values are: starting point, creator and absolute.

Job Level

Position

Include all managers at last level

If the job level equals that of the previously calculated last participant in the list then it includes the next manager in the list.

Job Level

Utilized Participants

Utilizes only the participants specified in this option from the calculated list of participants. Available options are: Everyone, First and Last manager, Last manager.

Job Level

Position

Auto Action Enabled

Specifies if the list builder automatically acts on task based on the next option.

Supervisory

Job Level

Position

Auto Action

Specifies the outcome to be set. It can be null if auto action is not enabled.

Supervisory

Job Level

Position

If you do not configure the hierarchy provider plug-in, then the position list builder does not work.

When you define a hierarchy extension, if you do not define the property mustUseSpecifiedProvider then its default value is true..

You can configure the Supervisory and Job Level list builders not to throw an exception when there is a problem with the hierarchy plug in. To configure the list builders, you must add the mustUseSpecifiedProvider property to the workflow-identity-config.xml configuration file, and set the value attribute to false.

By default, the workflow-identity-config.xml file does not include the mustUseSpecifiedProvider property. If this property is present and its value is false, then, then the Supervisory and Job Level list builders use the LDAP management chain when there is a problem with the hierarchy plugin.

Example 32-5 shows a workflow-identity-config.xml file that specifies the mustUseSpecifiedProvider property. The value of this property is set to true so that the Supervisory and Job Level builders fail when the hierarchy plug in is not available.

32.3.6.3.1 How to Model an Approval Groups List Builder

Approval groups are a statically defined or a dynamically generated list of approvers. Approval groups usually are configured by the process owner using the worklist application. Typically, they are used to model subject matter experts outside the transaction's managerial chain of authority, such as human resources or legal counsel, that must act on a task before or after management approval.

To model an Approval Groups list builder, first specify if the list builder's attributes are to be value-based or rule-based, and then select the options on the corresponding dialog. For information about the options, see Table 32-2.

32.3.6.3.2 How to Model a Job Level List Builder

The Job Level list builder ascends the supervisory hierarchy, starting at a given approver and continuing until an approver with a sufficient job level is found.

To model a Job Level list builder, first specify if the list builder's attributes are to be value-based or rule-based, and then select the options on the corresponding dialog. For information about the options, see Table 32-2.

32.3.6.3.3 How to Model a Position List Builder

The Position list builder ascends the position hierarchy, starting at the requester's or at a given approver's position, and goes up a specified number of levels or to a specific position.

To model a Position list builder, first specify if the list builder's attributes are to be value-based or rule-based, and then select the options on the corresponding dialog. For information about the options, see Table 32-2.

32.3.6.3.4 How to Model a Supervisory List Builder

The Supervisory list builder ascends the primary supervisory hierarchy, starting at the requester or at a given approver, and generates a chain that has a fixed number of approvers in it.

To model a Supervisory list builder, first specify if the list builder's attributes are to be value-based or rule-based, and then select the options on the corresponding dialog. For information about the options, see Table 32-2.

32.3.6.4 How to Use Business Rules to Specify List Builders

Approvers of a task can be defined either inline in a task definition or by using business rules to specify the list builders that identify the actual approvers of a task. In addition, you can use business rules to specify approver substitution and list modifications. These rules are defined with the help of Oracle Business Rules and can vary between organizations. Typically, however, they are defined by the customer.

Business rules are a combination of conditions and actions. Optionally, priority and validity periods can be defined for these rules. In Human Workflow rules, rule conditions are defined using fact types that correspond to the task, and to the task message and entity attributes (which are XML representation of SDO objects). Rule actions consist of approver list builders and their parameters. Approver list builders move up a particular hierarchy and construct or modify the approver list according to the parameters defined. Approver list builders are implemented as XML (JAXB) fact types.

32.3.6.4.1 How to Create Lists

You can use business rules to define the list builders you want to use. There are two types of business rules:

Rules that define the parameters of a specific list builder. In this case, the task routing pattern dialog is modeled to use a specific list builder. The parameters in the list builder come from rules. With this option, rules should return a list builder of the same type as the one modeled in JDeveloper. Figure 32-26 shows a sample configuration.

Figure 32-26 Specific List-Builder Configuration

Rules that define the list builder and the list-builder parameters. In this case, the list itself is built using rules. Figure 32-27 shows a sample configuration.

Figure 32-27 List Builder and Parameters Configuration

In the rule dictionary, rule functions are seeded to facilitate the creation of list builders. These functions are the following:

CreateResourceList

CreateSupervisoryList

CreateManagementChainList

CreateApprovalGroupList

CreateJobLevelList

CreatePositionList

In Rules Designer, model your conditions and, in the action part, "call" one of the functions above to complete building your lists, as shown in Figure 32-28.

Figure 32-28 Modeling Conditions in Rules Designer

The parameters for the rule functions are similar to the ones in JDeveloper modeling. In addition to the configurations in JDeveloper, some additional options are available in Rules Designer for the following attributes:

startingPoint and topApprover - In JDeveloper, starting point and top approver are specified as users. In Rules Designer, you can build a HierarchyPrincipal as the starting point and top approver. To build a Hierarchy Principal, use the HierarchyBuilder function, as shown in Figure 32-29.

Figure 32-29 HierarchyBuilder Function

autoActionEnabled and autoAction - From Rules Designer, you can configure that the users resulting from a particular list builder can act automatically on the task.

responseType - If the response type is REQUIRED, the assignee has to act on the task; otherwise, the assignment would be converted to an FYI assignment.

ruleName - Rule name is used to create an assignment reason. Rule set name + "_" + rule name is used as a key to look up the resource bundle for a translatable reason for assignment. This resource is looked up first in the project resource bundle, then in the custom resource bundle, and last in the system resource bundle.

lists - This is an object that is a holder for all the lists that are built. Clicking this option shows a pre-asserted fact 'Lists' object to be used as the parameter.

If multiple rules fire, the list builder created by the rule with the highest priority is selected.

If the rules have the same priority, they are fired in random order, the first one fired is selected.

WARNING:

An improper or incomplete rules definition in a list-creation rule set can cause run-time errors. Errors can be caused by the following:

No rule was defined in the rule set.

None of the conditions defined in the rule was met.

Ensure that rules are properly defined to handle all conditions.

32.3.6.4.2 How to Make Approver Substitutions

List substitution enables you to substitute users, groups, and application roles that appear in a list. List substitution is available from Rules Designer and does not require any configuration in JDeveloper. In each rule dictionary there is a pre-seeded rule set named "SubstitutionRules." Also in the rule dictionary, a "Substitute" rule function is seeded to configure list substitutions. Table 32-3 lists the "Substitute" functions and their parameters.

Table 32-3 "Substitute" Function Parameters

Parameter

Description

fromId

The ID of the user/group/application role from which to substitute.

toId

The ID of the user/group/application role which to substitute to.

ruleName

Used to create an assignment reason. Rule set name + "_" + rule name is used as a key to look up the resource bundle for a translatable reason for assignment. This resource is looked up first in the project resource bundle, then in the custom resource bundle, and last in the system resource bundle.

substitutionRules

An object that is a holder for all the substitutions. Clicking this option shows a pre-asserted fact 'SubstitutionRules' object to be used as the parameter.

32.3.6.4.3 How to Make List Modifications

List modification enables you to extend or truncate the Job Level and Position list builders from rules. List modification is applied after the list is created. This feature does not require any configuration from JDeveloper. In each rule dictionary there is a pre-seeded rule set named "ModificationRules." This rule set is called only when the Job Level and Position list builders are asserted in the list that created the rule sets. Only the highest priority applicable rule is applied.

In Rules Designer, rule functions are seeded to facilitate list modifications. These functions are the following:

Used to create an assignment reason. Rule set name + "_" + rule name is used as a key to look up the resource bundle for a translatable reason for assignment. This resource is looked up first in the project resource bundle, then in the custom resource bundle, and last in the system resource bundle.

lists

An object that is a holder for all the lists that are built. Clicking this option shows a pre-asserted fact 'Lists' object to be used as the parameter.

Table 32-5 "Truncate" Function Parameters

Parameter

Description

afterLevel

The level after which to truncate.

ruleName

Used to create an assignment reason. Rule set name + "_" + rule name is used as a key to look up the resource bundle for a translatable reason for assignment. This resource is looked up first in the project resource bundle, then in the custom resource bundle, and last in the system resource bundle.

lists

An object that is a holder for all the lists that are built. Clicking this option shows a pre-asserted fact 'Lists' object to be used as the parameter.

32.3.6.4.4 How to Define Repeating-Node Attributes of a Business Rule Condition

When defining a business rule, you can base a rule condition on an attribute that comes from a repeating node. For example, there can be multiple line items for each purchase-order header in a purchase-order scenario. In this case, PurchaseOrderHeader is a non-repeating node, and PurchaseOrderLines is a repeating node.

When defining a rule like the following:

IF line item's amount is <50000, THEN create supervisory list containing jcooper up to two levels

the amount is an attribute of line, that is, it is an attribute of a repeating node.

Click the double down arrows to the left of the rule name to show advanced settings, as shown in Figure 32-38.

Figure 32-38 Advanced Settings

Select Tree Mode, then click <fact type> to display a list of options from which to choose a ROOT, as shown in Figure 32-39.

Figure 32-39 ROOT Options

Define the rule conditions.

32.3.6.5 How to Use Assignment Context

Assignment context is information that is present in the task. During a task's life cycle, it progresses through various assignees. As the context of the task assignees changes, the assignment-context value also changes.

When browsing through the history of a task, you can see the various assignment contexts that the task contained during its life cycle. The Oracle BPM Worklist uses assignment context when it displays task history.

32.3.6.5.1 Configuring Assignment Context

You configure assignment context in the Add (or Edit) Participant Type dialog in JDeveloper in the following ways:

Select the Rule-based option in the Participant Type section.

In this case, the assignment context is configured implicitly, behind the scenes. The Rules layer resolves the list of assignees based on the rule. As the task progresses through the various assignees, the assignment context value is computed based on the rule.

Expand the Advanced section to configure any number of assignment contexts.

In this case, you can customize assignment contexts by entering your own information into the Assignment Conext fields. Figure 32-40 shows the fields.

None - Indicates there is no approval aggregation, which means the user sees the task as many times as it is assigned to him or her.

Stage - A user sees the task only one time in a stage.

Task - A user sees the task only one time in the task life cycle.

Click OK.

When the task is aggregated and assigned to a user, the task has a collection table in the Oracle BPM Worklist that diplays all the collections in the task the user is approving. After the user performs an action, the action is recorded and then replayed to all the user's assignments, either in the stage or task.

An aggregated task is a proxy task for all the regular assignments. Only the following actions are permitted on an aggregated task:

Custom actions like approve/reject

Reassign

Acquire

The user can perform additional actions on the individual tasks, such as escalate, but those actions are not be recorded and played back for other tasks. Those actions are treated as actions on an individual task and not on an aggregated task.

In the Comments Callback field, enter the appropriate Java class for the notes callback.

In the Attachments Callback field, enter the appropriate Java class for the attachments callback.

In the Validation Callback field, enter the appropriate Java classes, separated by commas, for the validation callback.

Click OK.

32.3.9.2 How to Define Security Access Rules

Access rules restrict the actions that a user can perform by overriding default actions and permissions. At run time, the system checks every operation in a task against any defined access rules to see if a user is permitted to make changes, such as approve, add, delete, and so on If the user is not permitted to make changes, the operation errors out with an appropriate error message.

In AMX, access rules can be defined for Groups and Application Roles. For example, if an access rule is defined to restrict the "Withdraw" action for a group called Operators, then any user belonging to that group is not allowed to withdraw the task. Similarly, if an access rule is defined to restrict the "Withdraw" action for an application role called SOAAuditViewer, then any user who has been granted the SOAAuditViewer application role is not allowed to withdraw the task.

To define a security access rule:

Expand the Advanced Settings section of the Human Task Editor, and locate the Override default access to task content and actions option, as shown in Figure 32-44.

Illustrates the Employee Transfer scenario from one team to another through parallel job level participants.

ORACLE_HOME\samples\soa-infra\workflow\amx\amx-104-employee-transfer

Self Approval

Illustrates how to implement self-approval through auto-action rules.

ORACLE_HOME\samples\soa-infra\workflow\amx\amx-105-self-approval

Position List Builder

Illustrates the use of the Position list builder.

ORACLE_HOME\samples\soa-infra\workflow\amx\ amx-108-position-list

32.5 Using Approval Management Features of the Oracle BPM Worklist and Process Workspace

The Oracle BPM Worklist enables users to perform various approval-management tasks, including the following:

Use task forms to manage tasks

Define mapped-attribute labels

Administer approval groups

Use task configuration to configure approval rules

Use task listing regions and portlets

Use the task history region to preview approvers

32.5.1 How to Use Task Forms

The human workflow service creates tasks for users to interact with the business process. Each task has two parts—the task metadata and the task form. The task form is used to display the contents of the task to the user's worklist.

Oracle BPM Worklist displays all worklist tasks that are assigned to a user or a group. When a worklist user drills down into a specific task, the task display form renders the details of that task. For example, an expense approval task may show a form with line items for various expenses, and a help desk task form may show details such as severity, problem location, and so on.

The sections that follow describe the task form in the Oracle BPM Worklist that users with administrator rights use to manage tasks. Figure 32-50 shows what a task form looks like.

Figure 32-50 Task Form in the Oracle BPM Worklist Application

32.5.1.1 Header View

The Header view, shown in Figure 32-51, is created in JDeveloper using the header drop handler.

Figure 32-51 Header

By default, the drop handler includes the Header fields listed in Table 32-8. However, you can include or remove any of the fields based on the use case.

Table 32-8 Header Fields

Field

Description

Task Number

The number automatically assigned to the task.

State

The current status of the task.

Outcome

The user outcome. For examaple, if the user clicks Approve, the Outcome field displays "Approve."

Priority

The priority level assigned to the task.

Creator

The user who originated the task.

Created

The task's creation date.

Updated

The date the task was last updated.

Expires

The date the task expires.

Assignees

The name(s) of the administrator(s) to whom the task has been assigned.

Acquired By

The name of the user who claims the task before any action is taken on it.

Due Date

The date by which the task is due.

The Header also contains custom and system actions. Custom actions are those that depend on task metadata outcomes. For example, if the metadata contains Approve and Reject outcomes, then Approve andReject appear in the Header as custom actions. If the metadata contains more than two outcomes, then the custom actions appear in the Header as a dropdown list instead of separate buttons. In Figure 32-51, Approve and Reject appear as separate buttons. This indicates that the task metadata includes Approve and Reject outcomes.

System actions, such as Escalate, Suspend, and Resume, always appear in a dropdown list. The actions that appear depend on what the user is doing. For example, after a task has been initiated it can be withdrawn. Subsequently, if a user logs into the Oracle BPM Worklist to view the details of an initiated task "Withdraw" appears in the list containing the available actions.

Table 32-9 lists all the actions the administrator can perform from the Header and their descriptions.

Table 32-9 Header Actions

Action

Description

Reject

Enables the administrator to reject the task.

Approve

Enables the user to approve the task.

Delegate

Enables the administrator to assign a task to another person to act on his or her behalf.

Reassign

Enables the administrator to transfer a task to another administrator.

Suspend

Enables the administrator to suspend the task to work on it at a later time.

Resume

Enables the administrator to resume a suspended task.

Withdraw

Enables the administrator to withdraw an initiated task.

Escalate

Enables the administrator to escalate a task to a supervisor.

Delete

Enables the administrator to delete a task. Appears for all "To Do" tasks.

Purge

Enables the administrator to purge a task. Appears for all "To Do" tasks.

Go

Enables the administrator to "go" to the action selected from the dropdown list.

Save

Enables the administrator to save the task.

32.5.1.2 Task Payload View

The Task Payload view, shown in Figure 32-52, displays the details of the task parameters and provides the ability to update them. Any parameter that has been designed based on SDOs also can be viewed here. While the values of the general parameters are based on what was passed to the task or update by any user, the values of the SDO-based parameters reflect the current value of the business object as it was updated in the underlying application.

32.5.1.3 Task History View

The Task History view, shown in Figure 32-53, provides a graphical and tabular view of events in the task life cycle. In addition, if the Edit Approver Configuration option was selected in the designer, special controls in the tabular view that allow futire approvers to be edited are available. Any approver added manually can be deleted and new approvers can be added. Approver changes made in the tabular view are immediately reflected in the graphical view. When the task is saved or a custom action, such as approve or reject, is performed on the task, all approver-related changes also are saved.

Figure 32-53 Task History

If the Allow all participants to edit future participants option is selected while configuring the approval task, the history region displays additional actions that allow a participant to edit the future participants list. For more information, see Section 32.3.3, "Specifying General Information."

Enabled when the user selects a future participant. When this option is selected, the Add Participant dialog opens and the user can insert ad- hoc participants.

Edit

Enabled when the user selects a participant that has been inserted ad hoc. When this option is selected, the Edit Participant dialog opens and user can move the position of an inserted participant.

Delete

Enabled when the user selects a participant that has been inserted ad hoc. When this option is selected, the corresponding participant is deleted.

Apply

Persists the edits to the future participant list.

Reset

Resets the edits from the future participant to a system-generated list.

Table 32-11 lists the actions the administrator can perform from the Task History view and their descriptions.

Table 32-11 Task History Actions

Action

Description

Task Snapshot

Displays the task details for the selected version.

Full task actions

If checked, displays the full task-action history. If unchecked, displays only action history. By default, the box is unchecked.

All parent tasks

If checked, displays the parent task in a sub-task view. If unchecked, displays only the sub-task history. By default, the box is checked.

Show future approvers

If checked, displays the future approver with history. By default, the box is unchecked.

32.5.1.4 Comments and Attachments View

The Comments and Attachments view, shown in Figure 32-55, is created in JDeveloper using the task data control drop handler. It includes a text-entry field in which to enter comments about the task, and the functionality to attach supporting documents.

Figure 32-55 Comments and Attachments

32.5.2 How to Create Mapped Attribute Labels

Mapped attributes are those that you can use for storing use-case-specific data, such as data extracted from a task's payload. You can view and create mapped attribute labels on the server using the Oracle BPM Worklist.

Note:

You must have the workflow.mapping.protectedFlexfield privilege to create protected flexfield attributes. The default administrative user, weblogic, has this privilege.

From the Oracle BPM Worklist main page, click the "Administration" link in the upper-right corner of the page.

In the Administration pane, click the "Protected Flex Fields" link. A page similar to the one shown in Figure 32-56 displays.

Figure 32-56 Flexfield Mapping: Protected

The page displays a list of existing attribute labels. You can filter the list by selecting an attribute type from the dropdown list. Clicking a specific label displays the list of mappings the attribute uses in the Details panel.

Click Create. The label is created and is made available for mapping in task components.

To delete an attribute label:

To delete an attribute label, first select it from the list of attribute labels. Then click the Delete (-) button.

Note:

Attribute labels can be deleted only if they are not used in any mappings.

32.5.2.1 Importing and Exporting Attribute-Label Definitions

If attribute labels have been defined on one server and must be re-created on another, you can use the user metadata migration utility to export a list of protected attribute labels from the server on which they were defined to an XML file. The utility then can deploy the attribute labels from this file to a new server. This eliminates the necessity to manually re-create the attribute labels manually in the Oracle BPM Worklist. For more information, see Section 32.6, "Using the User Metadata Migration Utility."

32.5.2.2 Internationalizing Attribute Labels

When attribute labels are displayed to end users, for example in the task listing page of the Oracle BPM Worklist, the label name specified when the label was created is used. In cases where users of different nationalities may see the label, a translation of the label name appropriate to Oracle BPM Worklist user's locale can be displayed instead. Translations of attribute labels can be customized using the WorkflowLabels.properties resource bundle.

32.5.3 Administering Approval Groups

An approval group consists of a name and a predefined set of users configured to act on a task in a certain pattern. This pattern is similar to a human workflow routing slip pattern where users can act on tasks in serial or parallel. An approval group also can contain a nested approval group in the pattern.

The name of an approval group is needed when specifying the approval group list builder as discussed in Section 32.3.6.3.1, "How to Model an Approval Groups List Builder." The pattern configured in the approval group is used by default to order the users who must act on the task. However, when creating the list builder, the default pattern can be overridden by specifying the voting regime.

The new approval group appears in the approval group's structure, as shown in Figure 32-71.

Figure 32-71 Nested Approval Groups

32.5.3.8 How to Rename an Approval Group

The following procedure explains how to rename an approval group.

Enter the new name of the approval group in the Name field.

Click Apply.

The name change also is reflected in other approvals groups in which this approval group is nested.

32.5.3.9 Using Dynamic Approval Groups

Dynamic Approval Groups provide a way to create approval groups through a custom Java class at run time. This requires the following:

Writing a custom dynamic approval group class for the custom implementation by the developer

Registering the custom dynamic approval group using the worklist apps UI by the IT department

Making the class file available in a globally well known directory that is part of the SOA class path

32.5.3.9.1 How to Write a custom Dynamic Approval Group Class

to define a dynamic approval group, the customer must define an implementation class using the interface file IDynamicApprovalGroup.java, defined by AMX for dynamic approval groups in the package oracle.bpel.services.workflow.task. This contains only one public method that gets the approval group members. The Task object is the only input parameter. The primary key list can be obtained from the task task/systemAttributes/collectionTarget.

32.5.3.9.2 How to Register the custom Dynamic Approval Group Class

32.5.3.9.3 How to Make the custom Dynamic Approval Group Class Available

To make the class file available in a globally well-known directory that is part of the SOA class path, you must place your class files in the following WebLogic Server directory:

$BEAHOME/AS11gR1SOA/soa/modules/oracle.soa.ext_11.1.1/classes

For example, for the Java class oracle.apps.DynamicAG , the path would be $BEAHOME/AS11gR1SOA/soa/modules/oracle.soa.ext_11.1.1/classes/oracle/apps/DynamicAG.class. You must restart WebLogic Server after you place your class files there.

32.5.3.9.4 How to Add a Dynamic Approval Group

The following procedure explains how to add a dynamic approval group approval group.

In the left navigation pane, click the Add (+) button and select Create Dynamic from the dropdown list, as shown in Figure 32-73

If the approval group you deleted is nested in other approval groups, it also is deleted from those parent groups.

32.5.4 Using Task Configuration

Task Configuration in the Oracle BPM Worklist lets business users and administrators review the rules that have been configured out of the box by the workflow designer. These pre-defined rules can be modified to customize the approval flow for a specific customer at any point in time based on the customer's applicable corporate policies.

For example, if a corporate policy requiring two levels of approvals for expense amounts greater than 1000 is changed to a policy requiring three levels, the customer can use this web-based application to change the rule rather than having its IT department first modify the rule in the underlying process and then deploy it again. Any change made to the rule is applied starting with the next instance; instances that are in progress use the current rule definitions.

Task Configuration enables you to edit the event driven and data-driven rules associated with an approval flow at run time; that is, when the workflow is deployed. The Event Driven and Data Driven tabs are accessible by clicking the main Task Configuration tab of the Administration section of the application. A screen similar to the one shown in Figure 32-76 displays.

Figure 32-76 Task Configuration: Main Tab

The Tasks to be configured panel on the left lists all workflow tasks that have been configured to use approval-flow rules. It also provides a search capability. In the view mode, the right panel displays the default configuration and rules for overriding the approval-flow list builder configuration. The rule configurations are displayed based on the stages defined in the approval flow.

An improper or incomplete rules definition in a list-creation rule set can cause run-time errors. Errors can be caused by the following:

No rule was defined in the rule set.

None of the conditions defined in the rule was met.

Ensure that rules are properly defined to handle all conditions.

32.5.4.1.1 How to Specify Routing Settings

The Event Driven tab contains a limited set of the routing options available in the Human Task Editor.

Approval aggregation requirements can be any of the following, as shown in Figure 32-79:

None

Once per task

Once per stage

Figure 32-79 Routing Settings

32.5.4.1.2 How to Define Expiration and Escalation Policies

Defining expiration and escalation policies in the Oracle BPM Worklist is very similar to how it is done in the Human Task Editor. For more information, see the section "How to Escalate, Renew, or End the Task" in the chapter "Designing Human Tasks" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

Note:

If you set the expiration time to 0 days 0 hours 0 minutes, then the task expires immediately after you deploy it.

Figure 32-80 Expiration and Escalation Policies

32.5.4.1.3 How to Specify Notification Settings

Creating or updating notification settings for a task in the Oracle BPM Worklist s very similar to how it is done in the Human Task Editor. For more information, see the section "How to Specify Participant Notification Preferences" in the chapter "Designing Human Tasks" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

Figure 32-81 Notification Settings

32.5.4.1.4 How to Allow Task Access

Access-rule settings can be set to control the actions a user can perform, and is very similar to how it can be done in the Human Task Editor. Content and action permissions can be specified based on the logical role of a user, such as creator (inititator), owner, assignee, and reviewers.

Click the down arrow to select a variable type from the dropdown list.

The types displayed in the list correspond to those that are available in the rule dictionary (built-in and others that have been registered).

Enter a value.

Click OK.

The variable can now be used to define conditions.

32.5.4.2.2 How to Define Conditions

You can set the left and right sides of a condition by selecting operands from condition browsers. Clicking the magnifying glass icon displays the browsers. Figure 32-86 shows the left condition browser.

Figure 32-86 Left Condition Browser

The operator for comparing the operands of the condition changes based on the type of operand selected for the left side of the condition. Figure 32-87 shows the right condition browser.

Figure 32-87 Right Condition Browser

You also can define more complex conditions using the Expression Builder.

32.5.4.2.3 How to Define Assertions

You can specify an assertion by selecting the appropriate rule function from the dropdown list.

32.5.5 Using the Task Listing Region

The task listing region in the Oracle BPM Worklist is available as standalone, reusable component that you can use to display a list of tasks in an embedding application. It is provided as an ADF library that you can include in the embedding application.

32.5.5.1 How to Embed the Task Listing Region in an Application

The task listing region is exposed as a portlet and can be embedded in other applications.

The consumer application is developed using JDeveloper. The task list portlet then is embedded in a page in the consumer application. At run time, the login credentials passed to the consumer application are propagated to the WSRP producer and the portlet content is displayed on the page. The standalone task list portlet is deployed on the WLS PORTLET server, which would contact the remote WLS SOA server for workflow services. A separate portlet ear is provided for deployment on the portlet server.

Any consumer can use the task list portlet after registering to the portlet producer (WLS Portlet server).

To embed the task listing region in an application:

The task list ADF library adflibTaskListTaskFlow.jar file must be in the class path. This jar is available in JDeveloper in the Oracle BPM Worklist Components library.

In JDeveoloper, create a new application and provide a name; for example, "TaskListTaskFlowSample."

Add adflibTaskListTaskFlow.jar task flow in the project's class path.

Add the following libraries from Libraries and Classpath to the class path:

Change system-jazn-data.xml on the remote non-SOA WLS server to include the grant for bpm-services.jar, as shown in Example 32-8. If you are deploying the ADF Task Flow for Human Task to the integrated WLS server, then you can locate the system-jazn-data.xml file in $ADE_VIEW_ROOT/system11.1.1.1.32.53.26/DefaultDomain/config/fmwconfig.

Important: Be sure to replace $ADE_VIEW_ROOT with the actual path.. For example, /scratch/skaneshi/view_storage/skaneshi_d7b4/fmwtools/fmwtools_home/jdeveloper/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jar.

32.5.5.2 How to Use Task Listing Region Parameters

Task listing region parameters control the display behavior of the embedded region. This section describes these parameters.

Display Parameters

federatedMode

The task list displays in federated mode if this paramater is passed as true. To run the task flow in federated mode, you must pass the list of federated servers to the task flow using one of these options:

Construct a JAXB object, which contains the federated servers list. This JAXB object can be passed to the task flow through the federatedServers parameter. For information on how to construct the JAXB object, see the details of that parameter.

federatedServers

This parameter displays a list of servers if the task flow is run in federated mode. Construct a JAXB object (WorkflowServicesClientConfigurationType) using the code shown below, and then pass it as a parameter to the task flow. Ensure that you set one server as the "default," as indicated (in bold type) in the code.

A default server is used when you have many servers defined in wf_client_config.xml or in the JAXB object. However, the workflow client is preferred for a single server. There are a few legacy APIs that do not take the server name as parameter. To support these APIs, you must define one single server as default server; otherwise these APIs do not work.

If the task flow is run in federated mode, the server column in the task list, by default, is not displayed. To display the column, this parameter must be passed as true.

wfCtxID

This is a workflow context token string and is used to create workflow context inside the task flow. If the application Single Sign On is enabled or is secured using ADF security, this parameter is not required. The workflow context is shown below.

The views panel displays only if passed as true. By default, it is not displayed.

showTaskDetailsPanel

The task details panel displays only if passed as true. By default, it is not displayed.

refreshURL

This string enables task details in the task listing region to display in an inline frame. If action is taken on the task details page, the action refreshes the task listing area with the p age URL in which the task flow/portlet is contained.

Since the task flow does not know the URL of the container page, the URL must be passed as a parameter. Get the parameter by calling the getRequestURL() method on the request object. You can pass the full URL either by calling the getRequestURL() method on the request object, or by passing the URL using the following format:

This string specifies the value to be used as the selection of the view name to filter the tasks. If not set, the value defaults to Inbox.

taskTypesFilterList

A strings parameter that specifies the comma-delineated list of the task type(s) to be used for filtering the tasks that are displayed.

attributesFilterOperator

A string that specifies the operator (and/or) to be used as the predicate join criterion for the field-specified in Attribute Filter list.

attributesFilterList

A string parameter that specifies the comma-delineated list of name value pairs to be used to filter tasks based on attribute values. (The name is task column name and value is column value.)

Example

If the user wants to see the task with attribute filter values as priority = 1 and status = ASSIGNED and promoted flexfield textAttribute1 = NorthAmerica, then the user would set the values as the following:

32.5.5.2.1 Using Assigment Filter Constraints

The following is a list of assignment filter constraints:

My

Group

My+Group

Reportees

Creator

Owner

Reviewer

Previous

Admin

32.5.5.2.2 Passing Column Constraints

The list below contains the column constants that can be passed in thedisplayColumnList parameter. The constant value is the value that should be passed. For example, for TITLE_COLUMN = "title", the "title" should be passed, not "TITLE_COLUMN".

32.5.6 How to Use the Task History Region to Preview Approvers

The History component is an ADF declarative UI component used to render the past and future participants for an initiated task, and for a task before initiation. The component can edit the future participants, and can be embedded in any ADF page. Parameters are the following:

Task Object

Workflow Service Client

Workflow context

showTabularView

showGraphicalView

If any of the first three parameters are passed as null, or if the correlation ID of a task object is null, the component does not show the approval list. Instead, it shows a message explaining the possible cause why it failed to show the approval list. The last two parameters are used to indicate whether tabular or graphical views are to be shown. By default, both tabular and graphical views are shown. The value true/false can be passed to last two parameters.

32.6 Using the User Metadata Migration Utility

The user metadata migration utility, hwfMigrator, is a tool that automates the process of migrating Workflow user-configurable data from one SOA server to another by executing a shell script.