Skip Headers
Oracle® BPEL Process Manager Developer's Guide
10
g
Release 2 (10.1.2)
B14448-02
Home
Solution Area
Index
Next
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
Part I Introduction and Concepts
1
Introduction to Oracle BPEL Process Manager
1.1
What Is BPEL?
1.2
What Is Oracle BPEL Process Manager?
1.3
What Is the BPEL Designer?
1.3.1
JDeveloper BPEL Designer
1.3.2
Eclipse BPEL Designer
1.4
How to Use This Guide
1.5
Getting Started with Demonstrations, Activity and Conceptual References, and Tutorials
1.5.1
What Demonstrations Are Available?
1.5.2
What Activity and Conceptual References Are Available?
1.5.3
What Tutorials Are Available?
1.6
Summary
2
Getting Started with Oracle BPEL Process Manager
2.1
Overview of Oracle BPEL Process Manager Components
2.2
Starting Oracle BPEL Process Manager Components
2.3
Overview of BPEL Designer Environments
2.3.1
Overview of JDeveloper BPEL Designer
2.3.1.1
Applications Navigator
2.3.1.2
Diagram View Window
2.3.1.3
Source Window
2.3.1.4
Component Palette
2.3.1.5
Property Inspector
2.3.1.6
Structure Window
2.3.1.7
Log Window
2.3.1.8
Editing Project Files in JDeveloper BPEL Designer
2.3.2
Overview of Eclipse BPEL Designer
2.3.2.1
Navigator
2.3.2.2
Process Map and Overview Windows
2.3.2.3
BPEL Source Window
2.3.2.4
BPEL Inspector
2.3.2.5
Log Window
2.3.2.6
BPEL Palette
2.4
Overview of Activities
2.5
Overview of Partner Links
2.6
Overview of Oracle BPEL Server
2.7
Overview of Oracle BPEL Console
2.8
Overview of Oracle BPEL Process Manager Services
2.9
Overview of Oracle BPEL Process Manager Technology Adapters
2.10
Summary
3
Building a Simple BPEL Process
3.1
Overview of Building a Simple BPEL Process
3.2
Creating a New BPEL Project Using Eclipse BPEL Designer
3.3
Browsing a New Project
3.4
Viewing the WSDL Interface of a BPEL Process
3.5
Switching Between the Overview, Process Map, and Source Code
3.5.1
Viewing an Overview of a BPEL Process
3.5.2
Viewing a Detailed Process Map
3.5.3
Viewing BPEL Source Code
3.6
Reviewing the BPEL Source Code
3.6.1
Using the Sequence Activity to Performs Actions Sequentially
3.6.2
Using the Assign Activity to Assign Values to Variables
3.7
Adding an Assign Activity to the Process Map
3.7.1
Step 1: Viewing the Process Map
3.7.2
Step 2: Inserting an Assign Activity
3.7.3
Step 3: Adding a Copy Rule
3.7.4
Step 4: Defining the From Part (Source) of the Copy Rule
3.7.5
Step 5: Defining the To Part (Destination) of the Copy Rule
3.8
Compiling and Deploying the BPEL Process
3.9
Testing the BPEL Process
3.10
Summary
Part II Reviewing Key BPEL Development Concepts and Code Samples
4
Manipulating XML Data in BPEL
4.1
Use Cases for Manipulating XML Data in BPEL
4.2
Overview of Manipulating XML Data in BPEL Concepts
4.2.1
How XML Data Works in BPEL
4.2.2
About Data Manipulation and XPath Standards
4.3
Initializing a Variable with Expression Constants or Literal XML
4.4
Copying Between Variables
4.5
Accessing Fields within Complex Type Variables
4.6
Assigning Numeric Values
4.7
Mathematical Calculations with XPath Standards
4.8
Assigning String Literals
4.9
Concatenating Strings
4.10
Assigning Boolean Values
4.11
Assigning Date or Time
4.12
Manipulating Attributes
4.13
Manipulating XML Data Sequences that Use Arrays
4.13.1
Statically Indexing into an XML Data Sequence that Uses Arrays
4.13.2
Determining Sequence Size
4.13.3
Dynamically Indexing by Applying a Trailing XPath to an Expression
4.13.3.1
Dynamic Indexing Example
4.13.3.2
Using the bpel:append Extension to Append New Items to a Sequence
4.13.3.3
Merging Data Sequences
4.13.3.4
Dynamically Indexing with the BPEL getElement Function
4.13.3.5
Merging Data Sequences that Use Arrays
4.13.3.6
Appending New Items to a Sequence that Uses an Array
4.13.4
SOAP-Encoded Arrays Not Supported
4.14
Converting from a String to an XML Element
4.15
Differences Between Document-Style and RPC-Style WSDL Files
4.15.1
Enclosing the Operation Name with RPC-Style WSDL Messages
4.16
Using Binary Attachments in SOAP Messages
4.16.1
Use Case: SOAP Message with Binary Attachment Using MIME
4.16.1.1
WSDL File Contents
4.16.1.2
BPEL File Contents
4.16.1.3
Java Client Using SAAJ
4.17
Summary
5
Invoking a Synchronous Web Service
5.1
Use Case for Synchronous Web Services
5.2
Overview of Synchronous Service Concepts
5.2.1
Establishing the Partner Link
5.2.1.1
Defining the Partner Link in the BPEL Code
5.2.1.2
Using the WSDL File to Enable the Web Services to Work with a BPEL Process
5.2.1.3
Performing Lookups for Services that Use Partner Links
5.2.1.4
Accessing Web Services on Remote Servers
5.2.2
Using the Invoke Activity to Perform a Request
5.3
Calling a Synchronous Service
5.4
Summary
6
Invoking an Asynchronous Web Service
6.1
Use Case for Asynchronous Web Services
6.2
Overview of Asynchronous Callback Concepts
6.2.1
partnerLinkTypes for Asynchronous Services
6.2.2
Calling the Service from BPEL
6.2.3
How the Invoke and Receive Activities Work
6.2.4
Managing Multiple Active BPEL Process Instances Using Correlation Methods
6.2.4.1
WS-Addressing
6.2.4.2
Using Correlation Sets to Coordinate Asynchronous Message Body Contents
6.2.5
Using the Reply Activity to Send Messages in Response to a Receive Activity
6.2.6
Using Dehydration Points to Maintain Long-Running Asynchronous Processes
6.3
Calling an Asynchronous Service
6.3.1
Step 1: Adding a Partner Link for an Asynchronous Service
6.3.2
Step 2: Adding an Invoke Activity
6.3.3
Step 3: Adding a Receive Activity
6.3.4
Step 4: Performing Additional Activities
6.4
Using Correlation Sets in an Asynchronous Service
6.4.1
Step 1: Creating a Project
6.4.2
Step 2: Configuring Partner Links and File Adapter Services
6.4.2.1
Creating an Initial Partner Link and File Adapter Service
6.4.2.2
Creating a Second Partner Link and File Adapter Service
6.4.2.3
Creating a Third Partner Link and File Adapter Service
6.4.3
Step 3: Creating Three Receive Activities
6.4.3.1
Creating an Initial Receive Activity
6.4.3.2
Creating a Second Receive Activity
6.4.3.3
Creating a Third Receive Activity
6.4.4
Step 4: Creating Correlation Sets
6.4.4.1
Creating an Initial Correlation Set
6.4.4.2
Creating a Second Correlation Set
6.4.5
Step 5: Associating Correlation Sets with Receive Activities
6.4.5.1
Associating the First Correlation Set with a Receive Activity
6.4.5.2
Associating the Second Correlation Set with a Receive Activity
6.4.5.3
Associating the Third Correlation Set with a Receive Activity
6.4.6
Step 6: Creating Property Aliases
6.4.6.1
Creating Property Aliases for NameCorr
6.4.6.2
Creating Property Aliases for IDCorr
6.4.7
Step 7: Reviewing WSDL File Content
6.5
Summary
7
Parallel Flow
7.1
Use Case for Parallel Flows
7.2
Overview of Parallel Flow Concepts
7.3
Defining a Parallel Flow
7.4
Customizing the Number of Flow Activities by Using the flowN Activity
7.4.1
BPEL Code Example of the FlowN Activity
7.5
Summary
8
Conditional Branching
8.1
Use Case for Conditional Branching
8.2
Overview of Conditional Branching Concepts
8.3
Using a Switch Activity to Define Conditional Branching
8.4
Using a While Activity to Define Conditional Branching
8.5
Summary
9
Fault Handling
9.1
Use Case for Fault Handling
9.2
Overview of Fault Handling Concepts
9.3
Defining a Fault Handler
9.4
Types of BPEL Faults
9.5
Using the Scope Activity to Manage a Group of Activities
9.6
Throwing Internal Faults
9.7
Returning External Faults
9.7.1
Returning a Fault in a Synchronous Interaction
9.7.2
Returning a Fault in an Asynchronous Interaction
9.8
Using a Fault Handler within a Scope
9.8.1
Using the Empty Activity to Insert No-Op Instructions into a Business Process
9.9
Using Compensation after Undoing a Series of Operations
9.10
Using the Terminate Activity to Stop a Business Process Instance
9.11
Catching Run-Time Faults Example
9.12
Eclipse BPEL Designer Example
9.13
Summary
10
Incorporating Java and J2EE Code in BPEL Processes
10.1
Use Case for Incorporating Java and J2EE Code BPEL Processes
10.2
Overview of Java and J2EE Code in BPEL Concepts
10.2.1
Using Java Code with WSIF Binding
10.2.2
Using Java Code Wrapped as a SOAP Service
10.2.3
Directly Embedding Java Code in a BPEL Process
10.2.3.1
Using the bpelx:exec Tag to Embed Java Code Snippets into a BPEL Process
10.2.3.2
Using an XML Facade to Simplify DOM Manipulation
10.2.3.3
bpelx:exec Built-in Methods
10.3
Using Java Embedding in JDeveloper BPEL Designer
10.4
Summary
11
Events and Timeouts
11.1
Use Case for Events and Timeouts
11.2
Overview of Event and Timeout Concepts
11.3
Using the Pick Activity to Select Between Continuing a Process or Waiting
11.4
Using the Wait Activity to Set an Expiration Time
11.5
Setting Timeouts for Synchronous Processes
11.6
Defining a Timeout in JDeveloper BPEL Designer
11.7
Summary
12
Invoking a BPEL Process
12.1
Use Case for Invoking a BPEL Process
12.2
Overview of Invoking BPEL Process Concepts
12.3
Sending Messages to a BPEL Process from a Java or JSP Application
12.3.1
Invoking a BPEL Process with the Generic Java API
12.3.1.1
Connecting to Oracle BPEL Process Manager with the Locator Class
12.3.1.2
Passing XML Messages through Java
12.3.1.3
Invoking a Two-Way Operation through the Java API
12.3.1.4
Invoking a One-Way Operation through Java API
12.3.2
Retrieving Status or Results from Asynchronous BPEL Processes
12.3.3
Using the Java API from a Remote Client
12.3.4
Invoking a BPEL Process with the Web Service/SOAP Interface
12.4
Summary
13
Interaction Patterns
13.1
One-Way Message
13.2
Synchronous Interaction
13.3
Asynchronous Interaction
13.4
Asynchronous Interaction with Timeout
13.5
Asynchronous Interaction with a Notification Timer
13.6
One Request, Multiple Responses
13.7
One Request, One of Two Possible Responses
13.8
One Request, a Mandatory Response, and an Optional Response
13.9
Partial Processing
13.10
Multiple Application Interactions
13.11
Summary
Part III Oracle BPEL Process Manager Services
14
XSLT Mapper and Transformations
14.1
Use Case for Transformation
14.2
Creating a Transform Activity
14.3
The XSLT Mapper
14.3.1
Notes on the Mapper
14.4
Creating an XSL Map
14.5
Using the XSLT Mapper
14.5.1
Simple Copy by Linking Nodes
14.5.2
Setting Constant Values
14.5.3
Adding Functions
14.5.3.1
Editing Function Parameters
14.5.3.2
Chaining Functions
14.5.3.3
Named Templates
14.5.3.4
Importing User-Defined Functions
14.5.4
Editing XPath Expressions
14.5.5
Adding XSLT Constructs
14.5.5.1
Conditional Processing with xsl:if
14.5.5.2
Conditional Processing with xsl:choose
14.5.5.3
Handling Repetition or Arrays
14.5.6
Automatically Mapping Nodes
14.5.6.1
Auto Map with Confirmation
14.5.7
Viewing Unmapped Target Nodes
14.5.8
Generating Dictionaries
14.5.9
Ignoring Elements in the XSLT Document
14.5.10
Replacing a Schema in the XSLT Mapper
14.6
Testing the Map
14.6.1
Test Window
14.6.2
Generating Reports
14.6.2.1
Correcting Memory Errors When Generating Reports
14.6.3
Sample XML Generation
14.7
Summary
15
Oracle BPEL Process Manager Notification Service
15.1
Use Cases for Notification Service
15.2
Overview of Notification Service Concepts
15.3
Configuring Notification Service in JDeveloper BPEL Designer
15.3.1
The E-mail Notification Channel
15.3.1.1
Setting E-mail Attachments
15.3.1.2
Configuring the E-mail Server
15.3.1.3
Example ns_emails.xml File
15.3.2
The Voice Notification Channel
15.3.2.1
Configuring the Wireless Service Provider for Voice
15.3.2.2
Example ns_iaswconfig.xml File
15.3.3
The SMS Notification Channel
15.3.3.1
Configuring the Wireless Service Provider for SMS
15.3.4
The Fax Notification Channel
15.3.4.1
Configuring the Fax Cover Page
15.3.4.2
Configuring the Wireless Service Provider for Fax
15.3.5
The Pager Notification Channel
15.3.5.1
Configuring the Wireless Service Provider for Pager
15.3.6
Setting E-mail Addresses and Telephone Numbers Dynamically
15.3.7
Selecting Notification Recipients by Browsing the User Directory
15.3.8
Starting Business Processes with the E-mail Activation Agent
15.3.9
XML Validation Failure with the Notification Service
15.4
Summary
16
Oracle BPEL Process Manager Workflow Services
16.1
Overview of Workflow Services
16.1.1
Workflow Functionality: A Procurement Process Example
16.1.2
Workflow Services Components
16.2
Use Cases for Workflow Services
16.2.1
Assigning a Task to a User or Role
16.2.2
Using the Various Flow Patterns
16.2.3
Escalation, Expiration, and Delegation
16.2.4
The Worklist Application
16.3
Workflow Patterns
16.3.1
The Modeling Process
16.3.2
Editing or Deleting a Workflow
16.3.3
Task Details and Configurations
16.3.3.1
Task Attributes
16.3.3.2
Task Outcomes
16.3.3.3
Advanced Task Configurations
16.3.4
Task Assignment
16.3.4.1
Task Assignment Evaluation
16.3.4.2
Task Assignment Based on External Services
16.3.4.3
Assigning a Task to a Specific User of a Role and Marking It As Acquired
16.3.4.4
Setting Task Assignees from a Dynamic Delimited String
16.3.4.5
Selecting Users or Groups by Browsing the User Directory
16.3.5
Adding a Task Attachment from a Business Process
16.3.6
Actions Performed on a Task
16.3.7
XML Validation
16.3.8
Simple Workflow
16.3.8.1
Use Case
16.3.8.2
Customizations for Simple Workflow
16.3.9
Simple Workflow with Automatic Escalation
16.3.9.1
Use Case
16.3.9.2
Pattern-Specific Parameters
16.3.9.3
Customizations for Simple Workflow with Automatic Escalation
16.3.10
Simple Workflow with Automatic Renewal
16.3.10.1
Use Case
16.3.10.2
Pattern-Specific Parameters
16.3.10.3
Customizations for Simple Workflow with Automatic Renewal
16.3.11
Sequential Workflow
16.3.11.1
Use Cases
16.3.11.2
Pattern-Specific Parameters
16.3.11.3
Customizations for Sequential Workflow
16.3.12
Sequential Workflow with Escalation
16.3.12.1
Use Case
16.3.12.2
Pattern-Specific Parameters
16.3.12.3
Customizations for Sequential Workflow with Escalation
16.3.13
Parallel Workflow
16.3.13.1
Assigning Parallel Tasks to Each User in a Group
16.3.13.2
Use Case
16.3.13.3
Pattern-Specific Parameters
16.3.13.4
Customizations for Parallel Workflow
16.3.14
Parallel Workflow with Final Reviewer
16.3.14.1
Use Case
16.3.14.2
Pattern-Specific Parameters
16.3.14.3
Customizations for Parallel Workflow with Final Reviewer
16.3.15
Adhoc Workflow
16.3.15.1
Use Case
16.3.15.2
Customizations for Adhoc Workflow
16.3.16
FYI Tasks
16.3.16.1
Use Case
16.3.16.2
Customization for FYI Tasks
16.3.17
The User Task 2.0 Macro
16.3.18
Task Continuations
16.3.18.1
Use Case
16.3.18.2
Pattern-Specific Parameters
16.3.18.3
Customization for Task Continuations
16.3.19
Outcome-Based Modeling
16.3.19.1
Payload Updates
16.3.19.2
Case Statements for Other Task Conclusions
16.4
Task Notifications
16.4.1
Channels Used for Notification
16.4.2
Notification Messages
16.4.3
E-mail Approval
16.4.4
Reminders
16.5
Payload Display
16.5.1
Autogenerated JSP
16.5.1.1
Customizing the Autogenerated JSP
16.5.1.2
Customizing the Mapping File
16.5.1.3
Customizing the Default JSP
16.5.1.4
Multibyte Payload in the Task Detail JSP
16.5.2
Deploying the Autogenerated JSP
16.5.3
XSL
16.5.4
The Custom JSP URL
16.5.4.1
APIs
16.5.4.2
Customizing the Complete Task JSP
16.6
Configuration for Task Service
16.6.1
Autorelease Duration
16.6.2
Actionable E-mail Accounts
16.6.3
Worklist Application URL
16.7
Identity Service
16.7.1
Identity Service Providers
16.7.1.1
The JAZN Provider
16.7.1.2
Third-Party LDAP Server
16.7.1.3
Custom User Repository Plug-ins
16.7.2
Creating Users and Groups
16.7.3
User and Role Properties
16.7.4
Configuring Identity Service
16.7.4.1
Structure of the Identity Service Configuration File
16.7.4.2
Configuration for the XML-Based JAZN Provider
16.7.4.3
Configuration for the LDAP-Based JAZN Provider (OID)
16.7.4.4
Configuration for a Third-Party LDAP Server
16.7.4.5
Configuration for CUSTOM User Repository Plug-ins
16.7.5
Creating a Custom Identity Service Plug-in
16.7.5.1
Requirements
16.7.5.2
Description of Oracle BPEL Process Manager Interfaces
16.7.5.3
Implementing the Identity Service Plug-in
16.7.5.4
Deploying the Identity Service Plug-in
16.7.5.5
Registering and Configuring Identity Service for the Custom Plug-in
16.7.5.6
Creating Users and Groups
16.7.5.7
Using the Plug-in with Installed Samples
16.8
Workflow-Related XPath Extension Functions
16.9
Approver Functions
16.9.1
Approver Function Syntax
16.9.2
Approver Function Examples
16.10
Vacation Request Example
16.10.1
Prerequisites
16.10.2
Getting Started: Modeling the Vacation Request Process
16.10.3
Running the Example
16.11
Summary
17
Worklist Application
17.1
Use Cases for the Worklist Application
17.2
Overview of Worklist Application Concepts
17.2.1
Logging In to the Worklist Application
17.2.2
Features of the Sample Worklist Application
17.2.2.1
Task Actions
17.2.2.2
Routing
17.2.2.3
Requesting More Information
17.2.2.4
Task History and Sequence (Version) Numbers
17.2.2.5
The Payload
17.2.2.6
Comments
17.2.2.7
Attachments
17.2.2.8
Reassignment
17.2.2.9
Parallel Tasks
17.2.2.10
Flex Fields and Task Fields Updates
17.2.2.11
Request Status
17.2.2.12
Error Information
17.2.2.13
User and Group Information
17.2.2.14
Advanced Search
17.2.2.15
Determining Action Permissions
17.2.3
How Changes to a Workflow Appear in the Worklist Application
17.3
Accessing the Worklist Application in Local Languages
17.4
Customizing the Worklist Application
17.4.1
Worklist Application Architecture
17.4.1.1
Login Page
17.4.1.2
Header Info
17.4.1.3
Task Home (Listing) Page
17.4.1.4
Task Details Page
17.4.1.5
Additional Pages
17.4.1.6
Configuration Parameters
17.4.2
Controlling Access to Information and Actions for Different Users
17.5
Building a Worklist Application Using the Worklist Service APIs
17.5.1
Worklist Service APIs
17.5.2
Example: Reassigning a Task in a Worklist Application
17.6
Building a Worklist Application Using the Worklist Service Remote APIs
17.7
Summary
18
Sensors
18.1
Use Cases for Sensors
18.2
Overview of Sensor Concepts
18.3
Implementing Sensors and Sensor Actions in JDeveloper BPEL Designer
18.3.1
Configuring Sensors
18.3.2
Configuring Sensor Actions
18.3.3
Creating a Custom Data Publisher
18.3.4
Registering the Sensors and Sensor Actions in bpel.xml
18.4
Sensors and Oracle BPEL Console
18.4.1
Viewing Sensor and Sensor Action Definitions
18.4.2
Viewing Sensor Data
18.5
Sensor Integration with Oracle Business Activity Monitoring
18.5.1
Creating a Connection to Oracle BAM Server
18.5.2
Creating a Sensor
18.5.3
Creating a BAM Sensor Action
18.6
Sensor Public Views
18.6.1
BPEL Reporting Schema
18.7
Sensor Actions XSD File
18.8
Summary
Part IV Development and Deployment Life Cycle
19
BPEL Process Deployment and Domain Management
19.1
Compiling and Deploying a BPEL Process
19.1.1
Compiling and Deploying on JDeveloper BPEL Designer
19.1.1.1
Compiling Without Deploying on JDeveloper BPEL Designer
19.1.2
Compiling and Deploying on Eclipse BPEL Designer
19.1.3
BPEL Suitcase JAR File
19.2
Creating and Managing a BPEL Domain
19.2.1
Changing the Default Domain Password
19.2.2
Changing Oracle BPEL Admin Console Password
19.2.3
Creating a BPEL Domain
19.2.4
Changing Oracle BPEL Server Mode
19.2.5
Deploying a BPEL Suitcase to a Specific Domain
19.2.6
Location of BPEL JAR Suitcase Files in a Specific Domain
19.2.7
Undeploying a BPEL Process from a Specific Domain
19.3
Viewing BPEL Processes in Oracle BPEL Console
19.3.1
Dashboard Tab: Viewing Processes
19.3.2
BPEL Processes Tab: Managing the Process Life Cycle
19.3.2.1
Process Life Cycle Recommendations for a Development Environment
19.3.2.2
Process Life Cycle Recommendations for a Production Environment
19.3.2.3
Example: Life Cycle of Processes
19.3.3
Instances Tab: Viewing Process Instances
19.3.4
Activities Tab: Viewing Process Activities
19.4
Build and Command Line Tools
19.4.1
Apache Ant
19.4.2
bpelc
19.4.2.1
Examples
19.4.3
schemac
19.4.3.1
Examples
19.5
Summary
20
Oracle BPEL Portlets
20.1
OracleAS Portal Introduction
20.2
Step 1: Installing the Required Oracle Application Server Components
20.3
Step 2: Deploying the Portlets
20.3.1
Deploying Portlets with dcmctl
20.3.2
Deploying Portlets with Oracle Enterprise Manager 10
g
Application Server Control Console
20.4
Step 3: Registering Web Providers with OracleAS Portal
20.5
Step 4: Defining Portlet Parameters and Accessing Portlet Data Sources
20.5.1
Defining Oracle BPEL Console Report Portlet Parameters and Accessing Portlet Data Sources
20.5.1.1
Instance State
20.5.1.2
Instance Execution Time
20.5.1.3
Performance
20.5.1.4
Activity Sensor
20.5.1.5
Fault Sensor
20.5.2
Defining Oracle BPEL Worklist Application Portlet Parameters and Accessing Portlet Data Sources
20.5.2.1
Listing Portlet Customization
20.5.2.2
Listing Portlet View
20.5.2.3
Analysis Portlet Customization
20.5.2.4
Analysis Portlet View
20.6
Step 5: Mapping Portlet Parameters with Page Parameters
20.7
Summary
21
Oracle BPEL Console Reports
21.1
Creating Oracle BPEL Console Reports
21.1.1
Creating Process Reports
21.1.2
Creating Performance Reports
21.1.3
Creating Activity Sensor Reports
21.1.4
Creating Fault Sensor Reports
21.1.5
Creating Process Time Distribution Reports
21.2
Summary
Part V Reference Information
A
Troubleshooting and Workarounds
A.1
Troubleshooting General Issues
A.1.1
Correcting Validation Errors in Complex Processes
A.1.2
Handling Long-Running Processes
A.1.3
Creating an Empty BPEL Process and Importing a Schema
A.2
Troubleshooting Sensors—The Custom Data Publisher
A.2.1
Poor JMS Performance When Creating or Destroying Connections
A.2.2
Data Publisher Is Not Working
A.2.3
Data Publisher Works, But Business Process Runs Slowly
A.2.4
Caching Data in the Data Publisher Is Not Supported
A.2.5
Unexpected Errors in the Data Publisher
A.2.6
Data Extracted to XML Is Difficult to Work With
A.3
Troubleshooting Oracle BPEL Worklist Application
A.3.1
Not Able to Log In to the Worklist Application
A.3.2
Information Is Displayed in a Different Language
A.3.3
Dates and Times Are Displayed Incorrectly
A.3.4
The User Is Not Permitted to Perform an Action
A.3.5
Expected Task Is Not Listed Under Task Titles
A.4
Summary
B
Workflow and Notification Reference
B.1
Task Manager Service WSDL Operations
B.2
Task Routing Service WSDL Operations
B.3
Notification WSDL Operations
B.4
Identify Service Operations
B.5
Task Action Handler Business Process
B.6
Summary
C
JDeveloper BPEL Designer Activities
C.1
Validating when Loading a Process Diagram
C.2
Activities Overview
C.2.1
Tabs Common to Many Activities
C.2.2
Assign Activity
C.2.3
Catch Activity
C.2.4
Compensate Activity
C.2.5
Empty Activity
C.2.6
Flow Activity
C.2.7
FlowN Activity
C.2.8
Invoke Activity
C.2.9
Java Embedding Activity
C.2.10
Notification Activity
C.2.11
PartnerLink Activity
C.2.12
Pick Activity
C.2.13
Receive Activity
C.2.14
Reply Activity
C.2.15
Scope Activity
C.2.16
Sequence Activity
C.2.17
Switch Activity
C.2.18
Terminate Activity
C.2.19
Throw Activity
C.2.20
Transform Activity
C.2.21
User Task
C.2.22
Wait Activity
C.2.23
While Activity
C.3
Summary
D
User Task 2.0 Macro
D.1
Introduction to User Task 2.0 Macro
D.2
BPEL User Task Use Case
D.3
The TaskManager Service
D.3.1
Integrating the TaskManager Service into a BPEL Process
D.3.1.1
Defining a Partner Link for the TaskManager Service
D.3.1.2
Declare and Initialize the Task Document
D.3.1.3
Initiate the Task
D.3.1.4
Task Completion
D.3.2
Using Eclipse BPEL Designer to Integrate the TaskManager Service
D.3.3
Creating a User Interface for the Task
D.3.3.1
List the Assigned Tasks
D.3.3.2
Display the Payload Data for a Task
D.3.3.3
Update the Payload Data and Complete the Task
D.4
Additional Capabilities of the TaskManager Service
D.4.1
Enabling Expiration/Timeouts for Tasks
D.4.1.1
Sending Notifications
D.4.1.2
Reassigning Tasks
D.4.1.3
Assigning Tasks to Groups and Resolving Roles
D.5
Summary
E
Deployment Descriptor Properties
E.1
Deployment Descriptor Preference Properties
E.1.1
Defining a Preference Property
E.1.2
Updating a Preference at Run Time
E.1.3
Getting the Value of a Preference within a BPEL Process
E.1.4
Encrypting a Preference Value
E.1.5
Use Case for Preference Properties
E.2
Deployment Descriptor Configuration Properties
E.2.1
Defining a Configuration Property
E.3
Summary
F
Demo User Community
F.1
Setting Up JAZN Demo Users
F.1.1
Demo Users and Roles
F.1.2
Using the Demo User Community in the Order Booking Tutorial
F.2
Summary
G
XPath Extension Functions
G.1
XPath Extension Functions Available to BPEL Processes
G.1.1
abs
G.1.2
add-dayTimeDuration-to-dateTime
G.1.3
addChildNode
G.1.4
addQuotes
G.1.5
appendToList
G.1.6
authenticate
G.1.7
batchProcessActive
G.1.8
batchProcessCompleted
G.1.9
clearTaskAssignees
G.1.10
compare
G.1.11
compare-ignore-case
G.1.12
copyList
G.1.13
countNodes
G.1.14
create-delimited-string
G.1.15
create-nodeset-from-deliminated-string
G.1.16
createDeliminatedString
G.1.17
current-date
G.1.18
current-dateTime
G.1.19
current-time
G.1.20
day-from-dateTime
G.1.21
doc
G.1.22
ends-with
G.1.23
format
G.1.24
format-dateTime
G.1.25
format-string
G.1.26
formatDate
G.1.27
genEmptyElem
G.1.28
generate-guid
G.1.29
generateGUID
G.1.30
get-content-as-string
G.1.31
get-localized-string
G.1.32
getChildElement
G.1.33
getContentAsString
G.1.34
getConversationId
G.1.35
getCreator
G.1.36
getCurrentDate
G.1.37
getCurrentDateTime
G.1.38
getCurrentTime
G.1.39
getDomainId
G.1.40
getElement
G.1.41
getGroupIdsFromGroupAlias
G.1.42
getGroupProperty
G.1.43
getInstanceId
G.1.44
getLinkStatus
G.1.45
getManager
G.1.46
getMessage
G.1.47
getNodeValue
G.1.48
getNodes
G.1.49
getNumberOfTaskApprovals
G.1.50
getPreference
G.1.51
getPreviousTaskApprover
G.1.52
getProcessId
G.1.53
getProcessOwnerId
G.1.54
getProcessURL
G.1.55
getProcessVersion
G.1.56
getReportees
G.1.57
getTaskAttachmentByIndex
G.1.58
getTaskAttachmentByName
G.1.59
getTaskAttachmentContents
G.1.60
getTaskAttachmentsCount
G.1.61
getTaskAutoReleaseDuration
G.1.62
getTaskReminderDuration
G.1.63
getUserAliasId
G.1.64
getUserIdsFromGroupAlias
G.1.65
getUserProperty
G.1.66
getUserRoles
G.1.67
getUsersInGroup
G.1.68
getVariableData
G.1.69
getVariableProperty
G.1.70
hours-from-dateTime
G.1.71
implicit-timezone
G.1.72
index-within-string
G.1.73
integer
G.1.74
isUserInRole
G.1.75
last-index-within-string
G.1.76
lookupUser
G.1.77
left-trim
G.1.78
listUsers
G.1.79
lookup-table
G.1.80
lookup-xml
G.1.81
lookupUser
G.1.82
lookupGroup
G.1.83
lower-case
G.1.84
matches
G.1.85
max-value-among-nodeset
G.1.86
mergeChildNodes
G.1.87
min-value-among-nodeset
G.1.88
minutes-from-dateTime
G.1.89
month-from-dateTime
G.1.90
parseEscapedXML
G.1.91
processXSLT
G.1.92
processXSLT
G.1.93
processXSQL
G.1.94
query-database
G.1.95
readFile
G.1.96
right-trim
G.1.97
search
G.1.98
seconds-from-dateTime
G.1.99
sequence-next-val
G.1.100
setNodeValue
G.1.101
square-root
G.1.102
subtract-dayTimeDuration-from-dateTime
G.1.103
timezone-from-dateTime
G.1.104
translateFromNative
G.1.105
translateToNative
G.1.106
upper-case
G.1.107
year-from-dateTime
G.2
Summary
H
Oracle BPEL Process Manager and Oracle Workflow Integration
H.1
Use Cases for Oracle Workflow Bridge
H.2
Introduction to Oracle Workflow Bridge
H.3
Locating Oracle Workflow Databases
H.4
Installing Oracle Workflow Bridge
H.5
Designing a BPEL Process to Interact with Oracle Workflow Bridge
H.5.1
Creating an Oracle Workflow Partner Link
H.5.2
Creating Invoke and Receive Activities
H.5.3
Creating an Assign Activity with Multiple Statements
H.5.4
Correlating the Actions of the Invoke and Receive Activities
H.6
Monitoring Oracle Workflow Processes
H.7
Summary
Index