Skip Headers
Oracle® Fusion Middleware Modeling and Implementation Guide for Oracle Business Process Management
11g Release 1 (11.1.1.7)

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

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

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

For more information about human tasks, see the following chapter and appendix in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite:

This chapter includes the following sections:

30.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:

AMX provides the following additional features:

30.1.1 AMX Components

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

Figure 30-1 Overall Architecture

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:

  • Task service

  • Task query service

  • User metadata service

  • Task metadata service

  • Identity service

  • Notification service

  • Assignment manager

These services are described in detail in the chapter "Designing Task Display Forms for Human Tasks" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite. AMX serves as a sophisticated assignment manager within human workflow allowing you to model complex approval patterns based on business rules.

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:

    • Define multi-stage approvals and associated approval list builders in JDeveloper.

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

30.2 Understanding Approval Management Concepts

As described earlier, AMX extends human workflow services with additional functionality to handle complex approval patterns.

Some human workflow concepts with which you must be familiar are the following:

These concepts are described in the following chapters in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite:

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

30.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 30.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 30.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 30.2.1, "Task."

    Figure 30-2 shows the various stages in a sample approval pattern.

    Figure 30-2 Approval List Structure

    Approval List Structure

These are described in more detail in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

The approval pattern consists of four stages:

  • Header approval

  • Line approval

  • Receipt verification

  • Payment

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 30-3 illustrates these concepts.

Figure 30-3 Stages and Their List Builders

Stages and Their List Builders

These concepts are described in the sections that follow.

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

For more information, see "Implementing Business Services with Application Modules" and "Integrating Service-Enabled Application Modules" in Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.

30.2.3 Stages

A stage is a set of approvals related to a collection. The same collection can be associated with multiple approval stages.

Figure 30-4 illustrates the mapping of stages and collections.

Figure 30-4 Mapping of Stages and Collections

Mapping of Stages and Collections

Each approval stage is associated with a collection. In Figure 30-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.

30.2.4 List Builders

As described in Section 30.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.

Note:

The Approval Groups, Job Level, Position, and Supervisory list builders are specific to AMX, and are described in detail in Section 30.3.6.3, "How to Model and Configure List Builders."

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.

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

  • Adhoc Insertions - Allows any task assignee to insert approvers in the generated approval list.

Note:

The position list builder does not allow the approver to delegate, escalate or perform adhoc insertions.

See the section "Acting on Tasks: The Task Details Page," in the chapter "Using Oracle BPM Worklist Application" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite for a complete list of actions.

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

For more information about these concepts, see the chapter "Overview of Oracle Business Rules" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

30.2.6.1 List Creation

A list creation policy includes rule conditions and actions that create the list builders.

The following example rules illustrate the configuration of the Supervisory list-builder parameters that create an approver list based on an SDO-based fact type.

Example 30-1 Rule 1

IF
ExpenseItems.ReceiptAmount < 200
THEN
call CreateSupervisoryList( levels:1, 
startingPoint:HierarchyBuilder.getPrinicipal("jstein",-1,"",""), 
uptoApprover:HierarchyBuilder.getPrinicipal("wfaulk",-1,"",""), 
autoActionEnabled:false,autoAction:null, 
responseType:ResponseType.REQUIRED,ruleName:"Rule_1",lists:Lists)

Example 30-2 Rule 2

IF
xpenseItems.ReceiptAmount >= 200
THEN
call CreateSupervisoryList( levels:1,
startingPoint:HierarchyBuilder.getPrinicipal("wfaulk",-1,"",""),
uptoApprover:HierarchyBuilder.getPrinicipal("cdickens",-1,"",""),
autoActionEnabled:false,autoAction:null, 
responseType:ResponseType.REQUIRED,ruleName:"Rule_2",lists:Lists)

For more information, see Section 30.3.6.4.1, "How to Create Lists."

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

The following example rule illustrates approver-substitution usage.

Example 30-3 Approver-Substitution Usage

IF
ExpenseItems.ReceiptAmount < new BigDecimal(4000)
THEN
call Substitute(fromId:"jcooper", toId:"jstein", ruleName:"Substituted", 
substitutionRules: SubstitutionRules)

This rule implies that if the expense item amount is less than 4000, then substitute approver "jcooper," if present in the approver list, with approver "jstein."

For more information, see Section 30.3.6.4.2, "How to Make Approver Substitutions."

30.2.6.3 List Modification

Job Level and Position lists can be extended or truncated from rules. List modification is applied after list creation.

The following example rule illustrates list-modification usage.

Example 30-4 List-Modification Usage

IF
ExpenseItems.ReceiptAmount > new BigDecimal(3000)
THEN
Call Extend(ifFinalApproverLevel:3, extendBy:2,ruleName:"Modified",lists:Lists)

This rule implies that if the expense item amount is greater than 3000, and if the final approver in the approver list is of Job Level 3, then extend the approver list by at least two relative levels.

For more information, see Section 30.3.6.4.3, "How to Make List Modifications."

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

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

  • Defining escalation and renewal policies

  • Specifying notification settings

  • Modeling any advanced settings like callbacks, security access rules, and restricted assignment

Some of these procedures are discussed in the sections that follow. For information about those that are not discussed, see "Creating the Human Task Definition with the Human Task Editor" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

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.

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

30.3.3 Specifying General Information

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

For more information about these, see "How to Specify the Task Title, Priority, Outcome, and Owner" in the section "Creating the Human Task Definition with the Human Task Editor" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

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

Figure 30-5 shows the globalization icon in the Human Task Editor.

Figure 30-5 Title Globalization Icon

Title Globalization Icon

The following procedure explains how to add translatable strings. It assumes that a resource bundle has been specified.

  1. Click the icon to display the Edit Translatable Strings dialog.

  2. Select a key from the dropdown list or click the plus sign (+) to create one.

    Figure 30-6 shows the Create a New Key dialog, which displays when the plus sign (+) on the Edit Translatable Strings dialog is clicked.

    Figure 30-6 Create a New Key Dialog

    Create a New Key Dialog
  3. Enter a name, the translatable text, and click OK.

    Figure 30-7 shows the Edit Translatable Strings dialog after a new key has been added.

    Figure 30-7 New Key Added

    New Key Added
  4. Use the Expression Builder to add values.

    Figure 30-8 shows the completed Edit Translatable Strings dialog.

    Figure 30-8 Translatable Text and Values

    Translatable Text and Values

    Note:

    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.

  5. Click OK to close the dialog.

30.3.4 Specifying Task Parameters

Specifying task parameters includes the following tasks:

  • Creating SDO references

  • Defining entity parameters

  • Defining collections

30.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 30-9.

Figure 30-9 Web Service Reference

Web Service Reference

For information about creating SDOs, see "Introduction to References" in the section "Introduction to the SOA Composite Editor" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

30.3.4.2 How to Define Entity Parameters

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

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

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

  3. Choose Entity.

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

    Figure 30-10 Add Task Parameter: Define Collection

    Add Task Parameter: Define Collection
  5. Set the collection for the stage.

  6. Click OK.

The following procedure enables you to accept static XML.

  1. Provide the XSD where the schema is defined.

  2. Define the task payload parameter as static XML.

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

  4. Set the collection for the stage.

  5. Click OK.

30.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 30-11 shows how collections are defined.

Figure 30-11 Defining Collections

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 30.3.6.1, "How to Model and Configure Stages."

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

There are two types of message attributes:

  • public - Attributes mapped to specific task components at run time. These mappings can be changed at any time, and must be re-created when a task component is redeployed. For more information see the following sections in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite:

    • "How to Map Flex Fields" in the chapter "Using Oracle BPM Worklist"

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

    Table 30-1 summarizes the 60 available protected flexfield attributes.

    Table 30-1 Protected Flexfield Attributes

    Name Description

    ProtectedTextAttribute1 - ProtectedTextAttribute20

    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.


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

30.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 30-12.

Figure 30-12 Mapped Attributes Section

Mapped Attributes Section

Use the following procedure to define attribute-label mappings:

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

    Figure 30-13 Add Mapped Attribute Dialog

    Add Mapped Attribute Dialog
  2. 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.

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

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

  5. Enter a description. This is optional.

  6. Click OK.

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

30.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:

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

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

    Figure 30-14 Create Stage

    Create Stage

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

    Figure 30-15 Add Sequential Stage

    Adds Sequential Stage

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

    Figure 30-16 Add Parallel Stage

    Add Parallel Stage
  3. Double-click the stage you just created, or select the stage and click the Edit icon.

    The Edit dialog displays, as shown in Figure 30-17.

    Figure 30-17 Edit Stage Dialog

    Edit Stage Dialog
  4. Enter a name for the stage.

  5. Choose one of these options:

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

  6. From the dropdown list, select a collection.

  7. 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 30-18.

      Figure 30-18 Edit Stage Dialog: Repeat Stage

      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.

30.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:

  • Single

  • Parallel

  • Serial

  • FYI

For information on participant types and assigning task participants to a stage, see "How to Assign Task Participants" in the "Creating Human Task Definitions with the Human Task Editor" section in the "Designing Human Tasks" chapter in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

After selecting a routing pattern, you also must select and model a list builder. This process is discussed in more detail in Section 30.3.6.3, "How to Model and Configure List Builders."

30.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 30.2.3, "Stages" and Section 30.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.

The following list builders are specific to AMX:

  • Approval Groups

  • Job Level

  • Position

  • Supervisory

Note:

For information about modeling other 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.

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

Table 30-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 30-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.

Example 30-5 workflow-identity-config.xml Configuration File

<ISConfiguration xmlns="http://www.oracle.com/pcbpel/identityservice/isconfig"> 
  <configurations> 
    <configuration realmName="jazn.com"> 
      <provider providerType="JPS" name="JpsProvider" service="Identity"> 
        <property name="jpsContextName" value="default"/> 
        <property name="IdentityServiceExtension" 
                  value="HCMIdentityServiceExtension"/> 
      </provider> 
    </configuration> 
  </configurations> 
  <property name="caseSensitive" value="false"/> 
  <property name="mustUseSpecifiedProvider" value="true"/> <!-- Fail when the hierarchy plug ins are not available--> 
  <serviceExtensions> 
... 
</ISConfiguration> 
30.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.

Static approval groups are predetermined lists of approvers, while dynamic approval groups generate approver lists at run time. Dynamic approval groups require:

  • delivery of an implementation according to the dynamic approver list interface by the developer

  • registration of the above implementation as a dynamic approval group using the Oracle BPM Worklist's UI by the IT department

  • availability of the class file in a globally well-known directory that is part of the SOA class path

Use dynamic approval groups when you need to calculate the approval group dynamically based on the task payload. Specially in line level approval where each line may require different approval group. For example, each cost center may require the approval of a different cost center owner. Each line may have different cost centers that require the approval of different cost center owners. When the amount of cost centers is greater than a hundred, this may become difficult to manage with business rules.

Note:

In Drop 8, an approval group is a flat list. Serial and parallel patterns no longer are defined.

Two views of the Approval Groups list builder are shown in Figure 30-19 and Figure 30-20.

Figure 30-19 Value-Based Approval Groups List Builder Dialog

Value-Based Approval Groups List Builder

Figure 30-20 Rule-Based Approval Groups List Builder Dialog

Rule-Based Approval Groups List Builder

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

Note:

If you configure the resource list with a group, then it behaves as a single type participant regardless of the serial or parallel type configuration.

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

Two views of the Job Level list builder are shown in Figure 30-21 and Figure 30-22.

Figure 30-21 Value-Based Job Level List Builder Dialog

Value-based Job Level List Builder

Figure 30-22 Rule-Based Job Level List Builder Dialog

Rule-based Job Level List Builder

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

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

Figure 30-23 shows a view of the Position list builder.

Figure 30-23 Rule-Based Position List Builder Dialog

Rule-based Position List Builder Dialog

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

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

Two views of the Position list builder are shown in Figure 30-24 and Figure 30-25.

Figure 30-24 Value-Based Supervisory List Builder Dialog

Value-based Supervisory List Builder

Figure 30-25 Rule-Based Supervisory List Builder Dialog

Rule-based Supervisory List Builder Dialog

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

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

For more information about these concepts, see the chapter "Overview of Oracle Business Rules" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

The sections that follow explain list creation, approver substitution, list modification, and repeating node attributes using Oracle Business Rules.

30.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 30-26 shows a sample configuration.

    Figure 30-26 Specific List-Builder Configuration

    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 30-27 shows a sample configuration.

    Figure 30-27 List Builder and Parameters Configuration

    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 30-28.

Figure 30-28 Modeling Conditions in Rules Designer

Modeling Conditions in the Rules Editor

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 30-29.

    Note:

    If you want to leave the job level attribute undefined when using the HierarchyBuilder funtion, then you must set its value to a negative integer.

    Figure 30-29 HierarchyBuilder Function

    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.

Figure 30-30 and Figure 30-31 show examples of rules.

Figure 30-30 Example Rules (1)

Example Rules (1)

Figure 30-31 Example Rules (2)

Example Rules (2)

Note:

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.

30.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 30-3 lists the "Substitute" functions and their parameters.

Table 30-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.


Note:

In a Human Task with a substitution rule, the resulting approval list might have a duplicate participant. It is not possible to edit the duplicate approvers in the Future Participants list.

Figure 30-32 shows a sample approver-substitution action.

Figure 30-32 Sample Approver-Substitution Action

Sample Approver-Substitution Action
30.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:

  • Extend

  • Truncate

These rule functions are shown in Figure 30-33.

Figure 30-33 Rule Functions

Rule Functions

Extend and truncate parameters are listed in Table 30-4 and Table 30-5.

Table 30-4 "Extend" Function Parameters

Parameter Description

ifFinalApproverLevel

The level at which final approver is at or below.

extendBy

The number of levels to add to the final job level.

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.


Table 30-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.


Figure 30-34 shows a sample list-modification action.

Figure 30-34 Sample List-Modification Action

Sample List-Modification Action
30.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.

Use the following procedure to define repeating-node attributes:

  1. In Rules Designer, select Facts.

    A list of facts displays, as shown in Figure 30-35.

    Figure 30-35 Facts List

    Facts List
  2. Edit each appropriate fact to ensure that it is visible, as shown in Figure 30-36.

    Figure 30-36 Edit XML Fact Dialog

    Edit XML Fact Dialog
  3. In Rules Designer, select a rule and then click Add icon (+).

    A rule-definition section displays, as shown in Figure 30-37.

    Figure 30-37 Rule-Definition Section

    Rule-Definition Section
  4. Click the double down arrows to the left of the rule name to show advanced settings, as shown in Figure 30-38.

    Figure 30-38 Advanced Settings

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

    Figure 30-39 ROOT Options

    ROOT Options
  6. Define the rule conditions.

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

30.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 30-40 shows the fields.

    Figure 30-40 Assignment Context Section

    Assignment Context Section

    Table 30-6 contains field descriptions.

    Table 30-6 Assignment-Context Field Descriptions

    Field Description

    Name

    Assignment-context name, which can be whatever you choose. This is a string field.

    Value

    Assignment-context value, which can be whatever you choose. This is a string field.

    Type

    Associated with the Value field.

    Possible values are:

    • By name - A user-provided Value parameter.

    • By Expression - A Value parameter created by the Expression Builder.


30.3.6.6 How to Aggregate Task Approvals

A task can be assigned multiple times to one user during the task life cycle. The Human Task Editor enables you to configure how often a user sees the task.

The following procedure explains how to configure task-approval aggregation.

  1. In the Assigmnent and Routing Policy section of the Human Task Editor, select a stage and click the pencil icon to the right of "Task goes from starting to final participant."

  2. In the Configure Restricted Assignment dialog, select the Assignment tab.

    Figure 30-41 shows the tab selected in the dialog.

    Figure 30-41 Configure Restricted Assignment Dialog

    Configure Restricted Assignment Dialog
  3. Select a task-aggregation option from the dropdown list:

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

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

Agregated tasks are business tasks therefore they show the actions approve and reject. If you can aggregate FYI tasks, then they show the approve and reject actions. In this case the approve and reject actions are treated as an acknowledgement.

Note:

Aggregation is available only when the assignees are from the same set. For example, if you assign a task to user A and another to both user A and user B; then user A sees two separate tasks. The two assignments are not aggregated because the assignees are not exactly the same.

30.3.7 Defining Escalation and Renewal Policies

This feature is not specific to AMX. For more information, see "Designing Human Tasks" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

Note:

Escalation is only applicable to management chain.

30.3.8 Specifying Notification Settings

This feature is not specific to AMX. For more information, see "Designing Human Tasks" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

30.3.9 Using Advanced Settings

Using advanced settings includes the following tasks:

  • Specifying callbacks for notes, attachments, and validation

  • Defining security access rules

30.3.9.1 How to Add Callbacks for Notes, Attachments, and Validation

Callbacks are mechanisms that allow you to do the following:

  • Access notes and attachments associated with business objects from external content-management systems or custom schemas

  • Perform custom validation of workflow tasks at various points in a task life cycle by defining validation logic for each task action

Use the following procedure to add callbacks:

  1. From the Task Editor, expand the Advanced Settings section.

  2. Click Configure Callbacks....

    The Callback Details dialog opens, as shown in Figure 30-42.

    Figure 30-42 Callback Details Dialog

    Callback Details Dialog
  3. Click the Other Callbacks tab.

    Additional entry fields display, as shown in Figure 30-43.

    Figure 30-43 Other Callbacks Tab

    Other Callbacks Tab
  4. Use one of these options:

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

  5. Click OK.

30.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:

  1. 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 30-44.

    Figure 30-44 Access Rules Option

    Access Rules Option
  2. Click Configure Visibility....

    The Configure Task Content Access dialog displays, as shown in Figure 30-45.

    Figure 30-45 Configure Task Content Access Dialog (1)

    Configure Task Content Access Dialog (1)
  3. Click the Task Content or Task Actions tab to select it. (This procedure assumes the Task Content tab has been selected.)

  4. Select a task to edit and click the Edit icon.

    A second Configure Task Content Access dialog displays.

  5. From the dropdown list, select Group, as shown in Figure 30-46.

    Figure 30-46 Configure Task Content Access Dialog (2)

    Configure Task Content Access Dialog (2)

    The Identity Lookup dialog displays.

  6. Select an application server, realm, and appropriate groups, as shown in Figure 30-47.

    Figure 30-47 Identity Lookup Dialog

    Identity Lookup Dialog
  7. Click OK.

    The selected groups are added to the access rule, as shown in Figure 30-48.

    Figure 30-48 Groups Added to Access Rule

    Groups Added to Access Rule
  8. Click OK to close the dialog.

Use the same procedure to define access rules for Application Groups, with the following exceptions:

  • Click the Task Actions tab to select it.

  • Select Application from the dropdown list.

  • Select application roles to include in the access rule from the Select an Application Role dialog, as shown in Figure 30-49.

    Figure 30-49 Select an Application Role Dialog

    Select an Application Role Dialog

For more information, see the section "Specifying Access Rules on Task Content" in the chapter "Designing Human Tasks" in Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

30.4 Using the End-to-End Approval Management Samples

Table 30-7 shows the end-to-end workflow examples included in the ORACLE_HOME\samples\soa-infra\workflow directory.

In addition to the demonstration features listed in the table, all samples show the use of worklist applications and workflow notifications.

Table 30-7 End-to-End Samples

Sample Description Location

Expense Line Approval

Illustrates line-level approval with approval policy defined.

ORACLE_HOME\samples\soa-infra\workflow\amx \amx-101-expense-line

Employee Hiring

Illustrates ad-hoc insertion capabilities for an approval having two stages - Approval Group List Builder in "Order" voting regime and a Supervisory list builder.

ORACLE_HOME\samples\soa-infra\workflow\amx \amx-102-hiring-approval-group

Purchase Order Approval

Illustrates the Purchase Order approval scenario with header and line-level approvals.

ORACLE_HOME\samples\soa-infra\workflow\amx \amx-103-purchaseOrder-2dimensions

Employee Transfer

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


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

For more information about the user metadata migration utility, see Moving Human Workflow Data from a Test to a Production Environment in Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle Business Process Management Suite.