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

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

Go to next page
Next
View PDF

Contents

Title and Copyright Information

Preface

Audience
Documentation Accessibility
Related Documents
Conventions

What's New in Oracle BPEL Process Manager?

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 Oracle JDeveloper?
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 the BPEL Designer Environment
2.3.1 Overview of BPEL Project Creation and Oracle JDeveloper
2.3.1.1 Application Navigator
2.3.1.2 Diagram Window
2.3.1.3 Source Window
2.3.1.4 History Window
2.3.1.5 Component Palette
2.3.1.6 Property Inspector
2.3.1.7 Structure Window
2.3.1.8 Log Window
2.3.1.9 Editing Project Files in Oracle JDeveloper
2.4 Overview of Activities
2.5 Overview of Partner Links
2.6 Overview of Oracle BPEL Server
2.7 Overview of Oracle BPEL Control
2.8 Overview of Oracle BPEL Process Manager Services
2.9 Overview of Oracle BPEL Process Manager Technology Adapters
2.10 Summary

Part II Reviewing Key BPEL Development Concepts and Code Samples

3 Manipulating XML Data in BPEL

3.1 Use Cases for Manipulating XML Data in BPEL
3.2 Overview of Manipulating XML Data in BPEL Concepts
3.2.1 How XML Data Works in BPEL
3.2.2 About Data Manipulation and XPath Standards
3.3 Initializing a Variable with Expression Constants or Literal XML
3.4 Copying Between Variables
3.5 Accessing Fields Within Element-Based and Message Type-Based Variables
3.6 Assigning Numeric Values
3.7 Mathematical Calculations with XPath Standards
3.8 Assigning String Literals
3.9 Concatenating Strings
3.10 Assigning Boolean Values
3.11 Assigning Date or Time
3.12 Manipulating Attributes
3.13 Manipulating XML Data with bpelx Extensions
3.13.1 bpelx:append
3.13.2 bpelx:insertBefore
3.13.3 bpelx:insertAfter
3.13.4 bpelx:remove
3.13.5 bpelx:rename and XSD Type Casting
3.13.6 bpelx:copyList
3.14 Validating XML Data with bpelx:validate
3.15 Manipulating XML Data Sequences That Use Arrays
3.15.1 Statically Indexing into an XML Data Sequence That Uses Arrays
3.15.2 Determining Sequence Size
3.15.3 Dynamically Indexing by Applying a Trailing XPath to an Expression
3.15.3.1 Dynamic Indexing Example
3.15.3.2 Using the bpelx:append Extension to Append New Items to a Sequence
3.15.3.3 Merging Data Sequences
3.15.3.4 Dynamically Indexing with the BPEL getElement Function
3.15.3.5 Generating Functionality Equivalent to an Array of an Empty Element
3.15.4 SOAP-Encoded Arrays Not Supported
3.16 Converting from a String to an XML Element
3.17 Differences Between Document-Style and RPC-Style WSDL Files
3.18 Adding a Custom WSIF Provider
3.18.1 Task 1: Register the WSDL Extension to the WSDL Reader
3.18.2 Task 2: Register the WSIF Provider
3.19 Input and Output Message Header Handling
3.19.1 Header Handlers
3.19.2 Registering of Header Handlers
3.19.3 Manipulation of partnerLink Properties
3.20 Manipulating SOAP Headers in BPEL
3.20.1 Receiving SOAP Headers in BPEL
3.20.2 Sending SOAP Headers in BPEL
3.21 Using Binary Attachments in SOAP Messages
3.21.1 Use Case: SOAP Message with Binary Attachment Using MIME
3.21.1.1 WSDL File Contents
3.21.1.2 BPEL File Contents
3.21.1.3 Java Client Using SAAJ
3.21.2 Displaying the Attachment Key for Binary Attachments Using the DIME Protocol in Oracle BPEL Control
3.22 Summary

4 Invoking a Synchronous Web Service

4.1 Use Case for Synchronous Web Services
4.2 Overview of Synchronous Service Concepts
4.2.1 Establishing the Partner Link
4.2.1.1 Defining the Partner Link in the BPEL Code
4.2.1.2 Using the WSDL File to Enable the Web Services to Work with a BPEL Process
4.2.1.3 Performing Lookups for Services that Use Partner Links
4.2.1.4 Accessing Web Services on Remote Servers
4.2.2 Using the Invoke Activity to Perform a Request
4.3 Calling a Synchronous Service
4.4 Summary

5 Invoking an Asynchronous Web Service

5.1 Use Case for Asynchronous Web Services
5.2 Overview of Asynchronous Callback Concepts
5.2.1 partnerLinkTypes for Asynchronous Services
5.2.2 Calling the Service from BPEL
5.2.3 How the Invoke and Receive Activities Work
5.2.4 Managing Multiple Active BPEL Process Instances Using Correlation Methods
5.2.4.1 WS-Addressing
5.2.4.2 Using Correlation Sets to Coordinate Asynchronous Message Body Contents
5.2.5 Using the Reply Activity to Send Messages in Response to a Receive Activity
5.2.6 Using Dehydration Points to Maintain Long-Running Asynchronous Processes
5.3 Calling an Asynchronous Service
5.3.1 Step 1: Adding a Partner Link for an Asynchronous Service
5.3.2 Step 2: Adding an Invoke Activity
5.3.3 Step 3: Adding a Receive Activity
5.3.4 Step 4: Performing Additional Activities
5.4 Using Correlation Sets in an Asynchronous Service
5.4.1 Step 1: Creating a Project
5.4.2 Step 2: Configuring Partner Links and File Adapter Services
5.4.2.1 Creating an Initial Partner Link and File Adapter Service
5.4.2.2 Creating a Second Partner Link and File Adapter Service
5.4.2.3 Creating a Third Partner Link and File Adapter Service
5.4.3 Step 3: Creating Three Receive Activities
5.4.3.1 Creating an Initial Receive Activity
5.4.3.2 Creating a Second Receive Activity
5.4.3.3 Creating a Third Receive Activity
5.4.4 Step 4: Creating Correlation Sets
5.4.4.1 Creating an Initial Correlation Set
5.4.4.2 Creating a Second Correlation Set
5.4.5 Step 5: Associating Correlation Sets with Receive Activities
5.4.5.1 Associating the First Correlation Set with a Receive Activity
5.4.5.2 Associating the Second Correlation Set with a Receive Activity
5.4.5.3 Associating the Third Correlation Set with a Receive Activity
5.4.6 Step 6: Creating Property Aliases
5.4.6.1 Creating Property Aliases for NameCorr
5.4.6.2 Creating Property Aliases for IDCorr
5.4.7 Step 7: Reviewing WSDL File Content
5.5 Summary

6 Parallel Flow

6.1 Use Case for Parallel Flows
6.2 Overview of Parallel Flow Concepts
6.3 Defining a Parallel Flow
6.4 Customizing the Number of Flow Activities by Using the flowN Activity
6.4.1 BPEL Code Example of the FlowN Activity
6.5 Summary

7 Conditional Branching

7.1 Use Case for Conditional Branching
7.2 Overview of Conditional Branching Concepts
7.3 Using a Switch Activity to Define Conditional Branching
7.4 Using a While Activity to Define Conditional Branching
7.5 Summary

8 Fault Handling

8.1 Use Case for Fault Handling
8.2 Defining a Fault Handler
8.3 BPEL Standard Faults
8.4 Categories of BPEL Faults
8.4.1 Business Faults
8.4.2 Run-time Faults
8.4.2.1 bindingFault
8.4.2.2 remoteFault
8.4.2.3 replayFault
8.4.2.4 Catching Run-time Faults Example
8.5 Getting Fault Details with the getFaultAsString XPath Extension Function
8.6 Using the Scope Activity to Manage a Group of Activities
8.7 Throwing Internal Faults
8.8 Returning External Faults
8.8.1 Returning a Fault in a Synchronous Interaction
8.8.2 Returning a Fault in an Asynchronous Interaction
8.9 Using a Fault Handler within a Scope
8.9.1 Using the Empty Activity to Insert No-Op Instructions into a Business Process
8.10 Using Compensation After Undoing a Series of Operations
8.11 Using the Terminate Activity to Stop a Business Process Instance
8.12 Fault Handling Example
8.13 Summary

9 Incorporating Java and J2EE Code in BPEL Processes

9.1 Overview of Java and J2EE Code in BPEL Concepts
9.1.1 Using Java Code with WSIF Binding
9.1.1.1 Java Binding Service Using XML Simple Types
9.1.1.2 Java Binding Service Using Oracle BPEL Process Manager XML Facade
9.1.1.3 Java Binding Service Using XML DOM Elements
9.1.1.4 Throwing a WSDL Fault from a Java Binding
9.1.2 Using Java Code Wrapped as a SOAP Service
9.1.3 Directly Embedding Java Code in a BPEL Process
9.1.3.1 Using the bpelx:exec Tag to Embed Java Code Snippets into a BPEL Process
9.1.3.2 Using an XML Facade to Simplify DOM Manipulation
9.1.3.3 bpelx:exec Built-in Methods
9.2 Using Java Embedding in a BPEL Process
9.3 Summary

10 Events and Timeouts

10.1 Use Case for Events and Timeouts
10.2 Overview of Event and Timeout Concepts
10.3 Using the Pick Activity to Select Between Continuing a Process or Waiting
10.4 Using the Wait Activity to Set an Expiration Time
10.5 Setting Timeouts for Synchronous Processes
10.6 Defining a Timeout
10.7 Summary

11 Invoking a BPEL Process

11.1 Use Case for Invoking a BPEL Process
11.2 Overview of Invoking BPEL Process Concepts
11.3 Sending Messages to a BPEL Process from a Java or JSP Application
11.3.1 Invoking a BPEL Process with the Generic Java API
11.3.1.1 Connecting to Oracle BPEL Process Manager with the Locator Class
11.3.1.2 Passing XML Messages Through Java
11.3.1.3 Invoking a Two-Way Operation Through the Java API
11.3.1.4 Invoking a One-Way Operation Through the Java API
11.3.2 Retrieving Status or Results from Asynchronous BPEL Processes
11.3.3 Using the Java API from a Remote Client
11.3.4 Invoking a BPEL Process with the Web Service/SOAP Interface
11.4 Summary

12 Interaction Patterns

12.1 One-Way Message
12.2 Synchronous Interaction
12.3 Asynchronous Interaction
12.4 Asynchronous Interaction with Timeout
12.5 Asynchronous Interaction with a Notification Timer
12.6 One Request, Multiple Responses
12.7 One Request, One of Two Possible Responses
12.8 One Request, a Mandatory Response, and an Optional Response
12.9 Partial Processing
12.10 Multiple Application Interactions
12.11 Summary

Part III Oracle BPEL Process Manager Services

13 XSLT Mapper and Transformations

13.1 Use Case for Transformation
13.2 Creating an XSL Map File
13.2.1 Creating a New XSL Map File
13.2.2 Creating an XSL Map File from Imported Source and Target Schema Files
13.3 Overview of the XSLT Mapper
13.3.1 Notes on the Mapper
13.4 Using the XSLT Mapper
13.4.1 Simple Copy by Linking Nodes
13.4.2 Setting Constant Values
13.4.3 Adding Functions
13.4.3.1 Editing Function Parameters
13.4.3.2 Chaining Functions
13.4.3.3 Named Templates
13.4.3.4 Importing User-Defined Functions
13.4.4 Editing XPath Expressions
13.4.5 Adding XSLT Constructs
13.4.5.1 Conditional Processing with xsl:if
13.4.5.2 Conditional Processing with xsl:choose
13.4.5.3 Handling Repetition or Arrays
13.4.6 Automatically Mapping Nodes
13.4.6.1 Auto Map with Confirmation
13.4.7 Viewing Unmapped Target Nodes
13.4.8 Generating Dictionaries
13.4.9 Creating Map Parameters and Variables
13.4.9.1 Creating a Map Parameter
13.4.9.2 Creating a Map Variable
13.4.10 Searching Source and Target Nodes
13.4.11 Ignoring Elements in the XSLT Document
13.4.12 Replacing a Schema in the XSLT Mapper
13.5 Testing the Map
13.5.1 Test XSL Map Window
13.5.2 Generating Reports
13.5.2.1 Correcting Memory Errors When Generating Reports
13.5.3 Sample XML Generation
13.6 Summary

14 Oracle BPEL Process Manager Notification Service

14.1 Use Cases for Notification Service
14.2 Overview of Notification Service Concepts
14.2.1 Reliable Notification Service
14.3 Configuring the Notification Service in Oracle JDeveloper
14.3.1 The E-mail Notification Channel
14.3.1.1 Setting E-mail Attachments
14.3.1.2 Formatting the Body of an E-mail Message as HTML
14.3.2 The Fax Notification Channel
14.3.3 The Pager Notification Channel
14.3.4 The SMS Notification Channel
14.3.5 The Voice Notification Channel
14.3.6 Setting E-mail Addresses and Telephone Numbers Dynamically
14.3.7 Selecting Notification Recipients by Browsing the User Directory
14.3.8 Starting Business Processes with the E-mail Activation Agent
14.3.9 XML Validation Failure with the Notification Service
14.4 Summary

15 Oracle BPEL Process Manager Workflow Services

15.1 Oracle BPEL Process Manager Workflow Services 10.1.2 and 10.1.3.1.0 Compatibility
15.2 Overview of Workflow Services
15.2.1 Workflow Functionality: A Procurement Process Example
15.2.2 Workflow Services Components
15.3 Use Cases for Workflow Services
15.3.1 Assigning a Task to a User or Role
15.3.2 Using the Various Participant Types
15.3.3 Escalation, Expiration, and Delegation
15.3.4 Automatic Assignment and Delegation
15.3.5 Work Queues and Proxy Support
15.3.6 The Oracle BPEL Worklist Application
15.4 Participant Types in Workflow Services
15.4.1 Continuing Workflows from Other Workflows
15.5 Overview of the Modeling Process
15.5.1 Create a Human Task Definition with the Human Task Editor
15.5.2 Associate the Human Task Definition with a BPEL Process
15.5.3 Generate the Task Display Form
15.6 Task 1: Creating the Human Task Definition with the Human Task Editor
15.6.1 Accessing the Human Task Editor
15.6.1.1 From the Application Navigator
15.6.1.2 From the Component Palette
15.6.2 Reviewing the Sections of the Human Task Editor
15.6.3 Specifying the Task Title, Priority, Outcome, and Owner
15.6.3.1 Specifying a Task Title and Priority
15.6.3.2 Specifying a Task Outcome
15.6.3.3 Specifying a Task Owner
15.6.4 Specifying the Task Payload Data Structure
15.6.5 Assigning Task Participants
15.6.5.1 Specifying Task Approvers
15.6.5.2 Configuring the Single Approver Participant Type
15.6.5.3 Configuring the Group Vote Participant Type
15.6.5.4 Configuring the Management Chain Participant Type
15.6.5.5 Configuring the Sequential List of Approvers Participant Type
15.6.5.6 Configuring the FYI Assignee Participant Type
15.6.5.7 Configuring the External Routing Service Participant Type
15.6.5.8 Allowing All Participants to Invite Other Participants
15.6.5.9 Abruptly Completing a Condition
15.6.6 Escalating, Renewing, or Ending the Task
15.6.6.1 Overview or Escalation and Expiration Policy
15.6.6.2 Never Expire Policy
15.6.6.3 Expire After Policy
15.6.6.4 Renew After Policy
15.6.6.5 Escalate After Policy
15.6.7 Specifying Participant Notification Preferences
15.6.7.1 Notifying Recipients of Changes to Task Status
15.6.7.2 Editing the Notification Message
15.6.7.3 Setting Up Reminders
15.6.7.4 Securing Notifications, Making Messages Actionable, and Sending Attachments
15.6.8 Specifying Advanced Settings
15.6.8.1 Specifying Escalation Rules
15.6.8.2 Specifying WordML Style Sheets for Attachments
15.6.8.3 Specifying Style Sheets for Attachments
15.6.8.4 Specifying Multilingual Settings
15.6.8.5 Overriding Default System Actions
15.6.8.6 Overriding Default Exception Management
15.6.8.7 Specifying Callback Classes on Task Status
15.6.8.8 Allowing Task and Routing Customization in BPEL Callbacks
15.6.9 Exiting the Human Task Editor and Saving Your Changes
15.7 Task 2: Associating the Human Task with a BPEL Process
15.7.1 Associating a Human Worklist Task with a BPEL Process
15.7.2 Opening a Human Task Activity Already Associated with a BPEL Process
15.7.3 Defining the Human Task Activity Title, Initiator, Priority, and Parameter Variables
15.7.3.1 Specifying the Task Title
15.7.3.2 Specifying the Task Initiator and Task Priority
15.7.3.3 Specifying Task Parameters
15.7.4 Defining the Human Task Activity Advanced Features
15.7.4.1 Specifying a Scope Name and a Global Task Variable Name
15.7.4.2 Specifying a Task Owner
15.7.4.3 Specifying an Identification Key
15.7.4.4 Including the Task History of Other Human Tasks
15.7.4.5 Allowing Task and Routing Customizations in BPEL Callbacks
15.7.5 Viewing the Generated Human Task Activity
15.7.5.1 BPEL Callbacks
15.7.5.2 Including the Task History from Other Workflows
15.7.6 Outcome-Based Modeling
15.7.6.1 Payload Updates
15.7.6.2 Case Statements for Other Task Conclusions
15.8 Task 3: Generating the Task Display Form
15.8.1 Overview of Task Display Forms
15.8.2 Selecting a Task Display Form
15.8.2.1 Preview Release of Task Display Form Support for ADF Data Controls
15.8.3 Automatically Generating a Simple Task Display Form
15.8.3.1 Payload File for the Autogenerated JSP
15.8.4 Generating a Custom Task Display Form
15.8.4.1 Autogenerated JSP
15.8.4.2 Custom JSP
15.8.4.3 Default JSP
15.8.4.4 XSL
15.8.5 Deploying Task Display Forms
15.8.6 Creating Custom JSP Forms
15.8.6.1 Adding Update Support in the Custom JSP
15.9 How Changes to a Workflow Appear in Worklist Application
15.10 Notifications from Workflow Services
15.10.1 Configuring the Notification Channel
15.10.2 Contents of Notification
15.10.3 Configuring Messages in Different Languages
15.10.4 Sending Actionable E-mails
15.10.5 Sending Inbound and Outbound Attachments
15.10.6 Sending Inbound Comments
15.10.7 Reliability Support
15.10.8 Sending Secure Notifications
15.10.9 Channels Used for Notifications
15.10.10 Sending Reminders
15.11 End-to-End Workflow Examples
15.11.1 Vacation Request Example
15.11.2 Prerequisites
15.11.3 Modeling the Vacation Request Process
15.11.3.1 Creating the Vacation Request Process and Importing the Schema
15.11.3.2 Adding a Human Task to the Order Approval Process
15.11.3.3 Assigning Input and Output Parameters for the Human Task
15.11.3.4 Creating a Task Form for the Worklist
15.11.3.5 Modeling the Task Outcome
15.11.3.6 Validating, Compiling, and Deploying the Order Approval Process
15.11.3.7 Running the Order Approval Process
15.12 Workflow Services
15.12.1 EJB, SOAP, and Java Support for the Workflow Services
15.12.2 Security Model for Services
15.12.2.1 Security in SOAP Web Services
15.12.2.2 Security in EJBs
15.12.2.3 Creating Workflow Context on Behalf of a User
15.12.3 Task Service
15.12.4 Task Query Service
15.12.5 Identity Service
15.12.5.1 Creating Users and Groups
15.12.5.2 Identity Service Providers
15.12.5.3 User and Role Properties
15.12.5.4 Multirealm Support
15.12.5.5 Authentication, Authorization, and Identity Service Providers
15.12.6 Notification Service
15.12.7 Task Metadata Service
15.12.8 User Metadata Service
15.12.9 Runtime Config Service
15.12.9.1 Internationalization of Attribute Labels
15.13 Configuring the Assignment Service
15.13.1 Dynamic Assignment Functions
15.13.1.1 Implementing a Dynamic Assignment Function
15.13.1.2 Configuring Dynamic Assignment Functions
15.13.1.3 Configuring Display Names for Dynamic Assignment Functions
15.13.2 Dynamically Assigning Task Participants with the Assignment Service
15.13.2.1 Assignment Service Overview
15.13.2.2 Implementing an Assignment Service
15.13.2.3 Example of Assignment Service Implementation
15.13.2.4 Deploying a Custom Assignment Service
15.13.3 Custom Escalation Function
15.14 Workflow Service and Identity Service Related XPath Extension Functions
15.14.1 Deprecated Workflow Service and Identity Service Functions
15.15 NLS Configuration
15.16 Summary

16 Worklist Application

16.1 Use Cases for the Worklist Application
16.2 Overview of Worklist Application Concepts
16.2.1 Worklist Application User Types
16.2.2 Task Components
16.3 Features of the Worklist Application
16.3.1 Using the Task Details Page
16.3.1.1 Task Actions
16.3.1.2 Request Status
16.3.1.3 Header Section
16.3.1.4 Payload Section
16.3.1.5 Comments and Attachments Section
16.3.1.6 History Section
16.3.1.7 Routing
16.3.1.8 Requesting More Information
16.3.1.9 Reassignment
16.3.1.10 Parallel Tasks
16.3.1.11 Determining Action Permissions
16.3.2 Using Advanced Search
16.3.3 Viewing a Bar Chart of Task Status
16.3.4 Using Work Queues
16.3.5 Setting Preferences
16.3.5.1 Vacation Preferences
16.3.5.2 My Rules
16.3.5.3 Group Rules
16.3.5.4 Custom Views
16.3.5.5 Display Preferences
16.3.6 Using the Administration Functions
16.3.6.1 Manage Rules
16.3.6.2 Flex Field Mappings
16.3.6.3 Application Customization
16.3.7 Creating Reports
16.3.7.1 Unattended Tasks Report
16.3.7.2 Tasks Priority Report
16.3.7.3 Tasks Cycle Time Report
16.3.7.4 Tasks Productivity Report
16.3.8 User and Group Information
16.4 Accessing the Worklist Application in Local Languages
16.5 Customizing the Worklist Application
16.5.1 Worklist Application Architecture
16.5.1.1 Customizing the Login Page
16.5.1.2 Customizing Header Information
16.5.1.3 Customizing the Task Details Page
16.5.1.4 Changing the Client-Service Binding for the Worklist Application
16.5.1.5 Deploying the Custom Worklist Application
16.5.1.6 Customizing the Worklist Application Using Preferences
16.5.1.7 Configuring Display Names for Task Attributes Using WorkflowLabels.properties
16.5.2 Controlling Access to Information and Actions for Different Users
16.5.3 Enabling the Worklist Application for Single Sign-On
16.5.3.1 Task 1: Changing the Servlet Code
16.5.3.2 Task 2: Changing the Application Configuration
16.5.3.3 Task 3: Reviewing the File Changes
16.5.3.4 Task 4: Building and Deploying the Application
16.6 Building Clients for Workflow Services
16.6.1 Packages and Classes for Building Clients
16.6.2 Workflow Service Client
16.6.2.1 The IWorkflowServiceClient Interface
16.6.3 Classpaths for Java Clients
16.6.4 EJB References in Web Applications
16.6.5 Initiating a Task
16.6.5.1 Creating a Task
16.6.5.2 Creating a Payload Element in a Task
16.6.5.3 Initiating a Task Programmatically
16.6.6 Writing a Worklist Application Using the HelpDeskUI Sample
16.7 Summary

17 Sensors

17.1 Use Cases for Sensors
17.2 Overview of Sensor Concepts
17.3 Implementing Sensors and Sensor Actions in Oracle JDeveloper
17.3.1 Configuring Sensors
17.3.2 Configuring Sensor Actions
17.3.3 Publishing to Remote Topics and Queues
17.3.4 Creating a Custom Data Publisher
17.3.5 Registering the Sensors and Sensor Actions in bpel.xml
17.4 Sensors and Oracle BPEL Control
17.4.1 Viewing Sensor and Sensor Action Definitions
17.4.2 Viewing Sensor Data
17.5 Sensor Integration with Oracle Business Activity Monitoring
17.5.1 Creating a Connection to Oracle BAM Server
17.5.2 Creating a Sensor
17.5.3 Creating a BAM Sensor Action
17.6 Sensor Public Views
17.6.1 BPM Schema
17.7 Sensor Actions XSD File
17.8 Summary

18 BPEL Process Integration with Business Rules

18.1 Business Rules and Decision Service Concepts
18.1.1 Business Rules and Business Rule Engines
18.1.2 Decision Service
18.1.3 Oracle Business Rules with Oracle BPEL Process Manager
18.2 Decision Service Architecture
18.2.1 Decision Service Components
18.2.2 Interaction with Other Components
18.2.3 Contents of Decision Service Configuration File
18.3 Use Cases for Integration of Business Processes and Business Rules
18.4 Integration of BPEL Processes with Business Rules
18.4.1 Create Rule Engine Connection Wizard
18.4.2 Decision Service Wizard
18.4.2.1 Selecting an Invocation Pattern
18.4.2.2 Selecting a Business Rule
18.4.2.3 Specifying Input and Output Facts
18.4.2.4 Importing Schema Files
18.4.3 Decide Activity
18.4.3.1 Mapping Input and Output Facts to BPEL Variables
18.5 Methodology for Rule Set Modeling and Integration with a BPEL Process
18.5.1 Recommended Methodology
18.5.2 Methodology One: Modeling Fact Types Based on an XML Schema
18.5.2.1 Task 1: Create a Data Model for Rule Authoring
18.5.2.2 Task 2: Create a New Rule Repository and Dictionary in the Rule Author
18.5.2.3 Task 3: Import the XML Schema into the Data Model of the Rule Dictionary
18.5.2.4 Task 4: Create a New Rule Set and Model Rules
18.5.3 Methodology Two: Modeling Rules Based on Existing RL or JavaBeans Fact Types
18.5.3.1 Task 1: Define a Contract between BPEL and Business Rules
18.5.3.2 Task 2: Create a New Data Model Using the RL Fact Types
18.5.3.3 Task 3: Create a New Rule Set and Rules
18.5.3.4 Task 4: Create the RL Function Contract
18.5.4 Invoking the Sample Rule Set from a BPEL Process
18.5.4.1 Task 1: Create a Connection to the Rule Engine
18.5.4.2 Task 2: Create a BPEL Project
18.5.4.3 Task 3: Create a Decision Service Partner Link
18.5.4.4 Task 4: Create a Decide Activity
18.5.5 Summary of Methodology
18.6 Decision Service Deployment and Run Time
18.6.1 Decision Service Partner Link Directory Structure
18.6.2 Deployment
18.6.3 Run Time
18.6.3.1 Oracle Enterprise Manager 10g Application Server Control Console Support
18.6.3.2 Oracle BPEL Control Support
18.7 Advanced Decision Service Features
18.7.1 Using WSIF Bindings
18.7.2 Enabling Logging of Oracle Business Rules Rule Session Events
18.7.3 Customizing assertXPath
18.8 Example of BPEL Process Integration with Business Rules
18.8.1 Task 1: Update a Rule Using Oracle Business Rules Rule Author
18.8.2 Task 2: Create a Connection to the Business Rule Repository
18.8.3 Task 3: Create a BPEL Process and Import the Schema
18.8.4 Task 4: Create a Decision Service Partner Link
18.8.5 Task 5: Create a Decide Activity

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 in Oracle JDeveloper
19.1.1.1 Compiling Without Deploying in Oracle JDeveloper
19.1.2 BPEL Suitcase JAR File
19.1.3 Deploying to Multiple Environments with Different Configuration Values
19.1.3.1 customize ant Task Example
19.1.3.2 customize ant Task Syntax
19.2 Creating and Managing a BPEL Domain
19.2.1 Logging into Domains
19.2.2 Changing Domain Passwords
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 Undeploying a BPEL Process from a Specific Domain
19.3 Managing Processes in Oracle BPEL Control
19.3.1 Dashboard Tab: Viewing Deployed, Running, and Completed Processes
19.3.1.1 Viewing and Changing Domains
19.3.2 BPEL Processes Tab: Managing the Process Life Cycle
19.3.2.1 Clearing the WSDL Cache
19.3.2.2 Deploying New Processes
19.3.2.3 Performing Manual Recovery
19.3.2.4 Refreshing the Alarm Table
19.3.2.5 Viewing the Process Logs
19.3.2.6 Managing the Process Life Cycle
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 ant
19.4.2 bpelc
19.4.2.1 Examples of ant Tasks
19.4.3 schemac
19.4.3.1 Examples
19.5 Summary

20 Testing BPEL Processes

20.1 Overview of the BPEL Test Framework
20.1.1 Test Cases Overview
20.1.2 Test Suites Overview
20.1.3 Emulations Overview
20.1.4 Assertions Overview
20.1.5 Process Code Coverage Overview
20.1.6 JUnit Support Overview
20.2 Components of a Test Suite
20.2.1 Process Initiation
20.2.2 Emulations
20.2.3 Assertions
20.2.4 Include Files
20.3 Creating Test Suites in Oracle JDeveloper
20.3.1 Creating Test Suites in Oracle JDeveloper
20.3.2 Importing Test Cases in Oracle JDeveloper
20.3.3 Creating Test Cases in Oracle JDeveloper
20.3.4 Editing Test Cases in Oracle JDeveloper
20.3.4.1 Creating Emulations in Oracle JDeveloper
20.3.4.2 Creating Assertions in Oracle JDeveloper
20.3.4.3 Creating External Calls in Oracle JDeveloper
20.3.5 Creating a Test Case from Oracle BPEL Control
20.4 Deploying a Test Suite
20.4.1 Deploying from Oracle JDeveloper
20.4.2 Deploying from an ant Task
20.5 Running a Test Suite and Viewing Report Results
20.5.1 Running from Oracle BPEL Control
20.5.2 Running from an ant Task
20.6 Advanced Test Suite Design Features
20.6.1 Setting Dynamic Values at Run Time
20.6.2 Asynchronous Event Emulation
20.6.3 Verifying External Actions
20.6.4 Custom Reporting
20.6.5 Database Views
20.6.5.1 admin_list_td
20.6.5.2 admin_list_tdef
20.6.6 XML Schemas
20.6.7 Client APIs

21 Oracle BPEL Portlets

21.1 OracleAS Portal Introduction
21.2 Step 1: Installing and Configuring the Required Oracle Application Server Components
21.2.1 Configuring Realms (10.1.3.1.0 Only)
21.3 Step 2: Deploying the Portlets
21.3.1 Deploying Portlets with dcmctl
21.3.2 Deploying Portlets with Oracle Enterprise Manager 10g Application Server Control Console
21.4 Step 3: Registering Web Providers with OracleAS Portal
21.5 Step 4: Defining Portlet Parameters and Accessing Portlet Data Sources
21.5.1 Defining Oracle BPEL Control Report Portlet Parameters and Accessing Portlet Data Sources
21.5.1.1 Instance State
21.5.1.2 Instance Execution Time
21.5.1.3 Performance
21.5.1.4 Activity Sensor
21.5.1.5 Process Time Distribution
21.5.1.6 Fault Sensor
21.5.2 Defining Oracle BPEL Worklist Application Portlet Parameters and Accessing Portlet Data Sources
21.5.2.1 Listing Portlet Customization
21.5.2.2 Listing Portlet View
21.5.2.3 Analysis Portlet Customization
21.5.2.4 Analysis Portlet View
21.6 Step 5: Mapping Portlet Parameters with Page Parameters
21.7 Summary

22 Oracle BPEL Control Reports

22.1 Creating Oracle BPEL Control Reports
22.1.1 Creating Process Reports
22.1.2 Creating Performance Reports
22.1.3 Creating Activity Sensor Reports
22.1.4 Creating Fault Sensor Reports
22.1.5 Creating Process Time Distribution Reports
22.2 Summary

Part V Reference Information

A Troubleshooting and Workarounds

A.1 Troubleshooting General Issues
A.1.1 Setting Properties for BPEL Processes to Successfully Complete and Catch Exception Errors
A.1.2 Developer Prompt on Windows 2000
A.1.3 Correcting Validation Errors in Complex Processes
A.1.4 Handling Long-Running Processes
A.1.5 Creating an Empty BPEL Process and Importing a Schema
A.2 Troubleshooting Sensors—The Custom Data Publisher
A.2.1 Data Publisher Is Not Working
A.2.2 Data Publisher Works, But Business Process Runs Slowly
A.2.3 Caching Data in the Data Publisher Is Not Supported
A.2.4 Unexpected Errors in the Data Publisher
A.2.5 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 BPEL Process Activities and Services

B.1 Process Activities Overview
B.1.1 Tabs Common to Many Activities
B.1.2 Assign Activity
B.1.3 Compensate Activity
B.1.4 Decide Activity
B.1.5 Email Activity
B.1.6 Empty Activity
B.1.7 Fax Activity
B.1.8 Flow Activity
B.1.9 FlowN Activity
B.1.10 Human Task Activity
B.1.11 Invoke Activity
B.1.12 Java Embedding Activity
B.1.13 Pager Activity
B.1.14 Pick Activity
B.1.15 Receive Activity
B.1.16 Reply Activity
B.1.17 Scope Activity
B.1.18 Sequence Activity
B.1.19 SMS Activity
B.1.20 Switch Activity
B.1.21 Terminate Activity
B.1.22 Throw Activity
B.1.23 Transform Activity
B.1.24 Voice Activity
B.1.25 Wait Activity
B.1.26 While Activity
B.2 Services Overview
B.2.1 AQ Adapter
B.2.2 Database Adapter
B.2.3 Decision Service
B.2.4 EJB Web Service
B.2.5 File Adapter
B.2.6 FTP Adapter
B.2.7 Java Web Service
B.2.8 JMS Adapter
B.2.9 MQ Adapter
B.2.10 Oracle Applications
B.2.11 PartnerLink
B.3 Validation When Loading a Process Diagram
B.3.1 Changes Made In Oracle JDeveloper Do Not Update Automatically
B.4 Summary

C Deployment Descriptor Properties

C.1 Deployment Descriptor Preference Properties
C.1.1 Defining a Preference Property
C.1.2 Updating a Preference at Run Time
C.1.3 Getting the Value of a Preference within a BPEL Process
C.1.4 Encrypting a Preference Value
C.2 Deployment Descriptor Configuration Properties
C.2.1 Defining a Configuration Property
C.3 Summary

D XPath Extension Functions

D.1 Advanced Functions
D.1.1 create-nodeset-from-delimited-string
D.1.2 generate-guid
D.1.3 lookup-dvm
D.1.4 lookup-xml
D.2 BPEL Extension Functions
D.2.1 getLinkStatus
D.2.2 getVariableData
D.2.3 getVariableProperty
D.3 BPEL XPath Extension Functions
D.3.1 addQuotes
D.3.2 appendToList
D.3.3 copyList
D.3.4 countNodes
D.3.5 doc
D.3.6 formatDate
D.3.7 generateGUID
D.3.8 getContentAsString
D.3.9 getConversationId
D.3.10 getCreator
D.3.11 getCurrentDate
D.3.12 getCurrentDateTime
D.3.13 getCurrentTime
D.3.14 getDomainId
D.3.15 getElement
D.3.16 getGroupIdsFromGroupAlias
D.3.17 getInstanceId
D.3.18 getNodeValue
D.3.19 getNodes
D.3.20 getPreference
D.3.21 getProcessId
D.3.22 getProcessOwnerId
D.3.23 getProcessURL
D.3.24 getProcessVersion
D.3.25 getUserAliasId
D.3.26 integer
D.3.27 parseEscapedXML
D.3.28 processXQuery
D.3.29 processXSLT
D.3.30 processXSQL
D.3.31 readBinaryFromFile
D.3.32 readFile
D.3.33 writeBinaryToFile
D.4 Database Functions
D.4.1 lookup-table
D.4.2 query-database
D.4.3 sequence-next-val
D.5 Date Functions
D.5.1 add-dayTimeDuration-to-dateTime
D.5.2 current-date
D.5.3 current-dateTime
D.5.4 current-time
D.5.5 day-from-dateTime
D.5.6 format-dateTime
D.5.7 hours-from-dateTime
D.5.8 implicit-timezone
D.5.9 minutes-from-dateTime
D.5.10 month-from-dateTime
D.5.11 seconds-from-dateTime
D.5.12 subtract-dayTimeDuration-from-dateTime
D.5.13 timezone-from-dateTime
D.5.14 year-from-dateTime
D.6 Mathematical Functions
D.6.1 abs
D.7 Identity Service Functions
D.7.1 getDefaultRealmName
D.7.2 getGroupProperty
D.7.3 getManager
D.7.4 getReportees
D.7.5 getSupportedRealmNames
D.7.6 getUserProperty
D.7.7 getUserRoles
D.7.8 getUsersInGroup
D.7.9 isUserInRole
D.7.10 lookupGroup
D.7.11 lookupUser
D.8 Workflow Service Functions
D.8.1 clearTaskAssignees
D.8.2 createWordMLDocument
D.8.3 getNotificationProperty
D.8.4 getNumberOfTaskApprovals
D.8.5 getPreviousTaskApprover
D.8.6 getTaskAttachmentByIndex
D.8.7 getTaskAttachmentByName
D.8.8 getTaskAttachmentContents
D.8.9 getTaskAttachmentsCount
D.8.10 getTaskResourceBundleString
D.8.11 wfDynamicGroupAssign
D.8.12 wfDynamicUserAssign
D.9 String Functions
D.9.1 compare
D.9.2 compare-ignore-case
D.9.3 create-delimited-string
D.9.4 ends-with
D.9.5 format-string
D.9.6 get-content-as-string
D.9.7 get-localized-string
D.9.8 index-within-string
D.9.9 last-index-within-string
D.9.10 left-trim
D.9.11 lower-case
D.9.12 matches
D.9.13 right-trim
D.9.14 upper-case
D.10 Utility Functions
D.10.1 authenticate
D.10.2 batchProcessActive
D.10.3 batchProcessCompleted
D.10.4 format
D.10.5 genEmptyElem
D.10.6 getChildElement
D.10.7 getMessage
D.10.8 listUsers
D.10.9 max-value-among-nodeset
D.10.10 min-value-among-nodeset
D.10.11 search
D.10.12 square-root
D.10.13 translateFromNative
D.10.14 translateToNative
D.11 Adding a Custom XPath Function
D.12 Summary

E Workflow Services Changes Between 10.1.2 and 10.1.3.1

E.1 Backwards Compatibility between 10.1.2 and 10.1.3.1
E.2 Changes Between the Workflow Wizard and the Human Task Editor
E.3 Changes to Configuration Files
E.4 Changes to Worklist APIs
E.5 Changes to Task Display Form Deployment
E.6 Changes to the Oracle BPEL Worklist Application
E.7 Changes to Oracle BPEL Control
E.8 Migrating Workflow Definitions from 10.1.2 to 10.1.3.1

Index