Go to main content
1/83
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
What's New in This Guide
New and Changed Features for 12c (12.1.3)
Other Significant Changes in this Document for 12c (12.1.3)
Part I Getting Started with Oracle SOA Suite
1
Introduction to Building Applications with Oracle SOA Suite
Differences Between Using this Component in the Cloud and On-Premises Environments
Introduction to Oracle SOA Suite
Service-Oriented Architecture
Services
Oracle SOA Suite
Standards Used by Oracle SOA Suite to Enable SOA
Service Component Architecture within SOA Composite Applications
Service Components
Binding Components
Wires
Runtime Behavior of a SOA Composite Application
Service Infrastructure
Service Engines
Deployed Service Archives
Approaches for Designing SOA Composite Applications
Getting Started with Oracle SOA Suite
Setting Accessibility Options
Setting Accessibility Options in Oracle JDeveloper
Setting Accessibility Options in Oracle SOA Composer and Oracle BPM Worklist
How to Set Accessibility Features Before Logging In
How to Set Accessibility Options After Logging In
2
Getting Started with Developing SOA Composite Applications
Creating a SOA Application
How to Create a SOA Application and Project
What Happens When You Create a SOA Application and Project
Adding Service Components
How to Add a Service Component
What You May Need to Know About Adding and Deleting a Service Component
How to Edit a Service Component
Adding Service Binding Components
How to Add a Service Binding Component
How to Define the Interface (WSDL) for a Web Service
Defining a New WSDL Using a Schema
Selecting an Existing WSDL
Automatically Defining a Service Interface WSDL from a Component
How to View Schemas
How to Edit a Service Binding Component
What You May Need to Know About Adding and Deleting Services
What You May Need to Know About Using the Same Namespace in Different WSDL Files in the Same Composite
What You May Need to Know About WSDL Browsing in the Resources Window When the SOA Infrastructure Uses Both Internal and External Oracle HTTP Servers
Adding Reference Binding Components
How to Add a Reference Binding Component
What You May Need to Know About Adding and Deleting References
What You May Need to Know About WSDL References
What You May Need to Know About Mixed Message Types in a WSDL File
What You May Need to Know About Invoking the Default Revision of a Composite
Adding Wires
How to Wire a Service and a Service Component
How to Wire a Service Component and a Reference
What You May Need to Know About Adding and Deleting Wires
Adding Descriptions to SOA Composite Applications
How to Add Descriptions to SOA Composite Applications
Renaming, Deleting, and Moving Components and Artifacts
How to Rename and Delete Components in the SOA Composite Editor
How to Rename, Move, and Delete Artifacts in the Applications Window
Viewing Component Details in the Property Inspector
Adding Security Policies
Deploying a SOA Composite Application
How to Invoke Deployed SOA Composite Applications
Managing and Testing a SOA Composite Application
How to Manage Deployed SOA Composite Applications in Oracle JDeveloper
How to Test and Debug a Deployed SOA Composite Application
3
Managing Shared Data with the Design-Time MDS Repository
Introduction to SOA Design-Time MDS Repository Management
Introduction to the Default SOA Design-Time MDS Repository Connection
Changing the Default SOA-MDS Location
How to Change the Default SOA-MDS Location
Sharing Data with the SOA Design-Time MDS Repository
How to Share Data with the SOA Design-Time MDS Repository
Creating and Deleting Subfolders Under the /apps Folder
How to Create and Delete Subfolders Under the /apps Folder
Exporting the Selected Contents of the /apps Folder to a JAR File
How to Export the Selected Contents of the /apps Folder to a JAR File
Importing the Contents of the JAR File into the /apps Folder
How to Import the Contents of the JAR File into the /apps Folder
Transferring the Selected Contents of the /apps Folder to Another MDS Repository
How to Transfer the Selected Contents of the /apps Folder to Another MDS Repository
Exporting an Existing Release 11g MDS Repository to a JAR File
How to Export an Existing Release 11g MDS Repository to a JAR File
Browsing for Files in the SOA Design-Time MDS Repository
Part II Using the BPEL Process Service Component
4
Getting Started with Oracle BPEL Process Manager
Introduction to the BPEL Process Service Component
How to Add a BPEL Process Service Component
How to Validate a BPEL Process Service Component
Introduction to Activities
How to Edit BPEL Activities in the Property Inspector
How to Copy and Paste Activities in BPEL Projects
How to Add a Description of Actions to BPEL Process Activities
Introduction to Partner Links
Creating a Partner Link
How to Create a Partner Link
Partner Links for an Outbound Adapter
Partner Links for an Inbound Adapter
Partner Links from an Abstract WSDL to Call a Service
Partner Links from an Abstract WSDL to Implement a Service
Partner Links and Human Tasks or Business Rules
Partner Links from an Existing Human Task, Business Rule, or Oracle Mediator
Introduction to Adapters
Introduction to BPEL Process Monitors
5
Introduction to Interaction Patterns in a BPEL Process
Introduction to One-Way Messages
BPEL Process Service Component as the Client
BPEL Process Service Component as the Service
Introduction to Synchronous Interactions
BPEL Process Service Component as the Client
BPEL Process Service Component as the Service
Synchronous BPEL Process Invoking an Asynchronous Process
Introduction to Asynchronous Interactions
BPEL Process Service Component as the Client
BPEL Process Service Component as the Service
Introduction to Asynchronous Interactions with a Timeout
BPEL Process Service Component as the Client
BPEL Process Service Component as the Service
Introduction to Asynchronous Interactions with a Notification Timer
BPEL Process Service Component as the Client
BPEL Process Service Component as the Service
Introduction to One Request, Multiple Responses
BPEL Process Service Component as the Client
BPEL Process Service Component as the Service
Introduction to One Request, One of Two Possible Responses
BPEL Process Service Component as the Client
BPEL Process Service Component as the Service
Introduction to One Request, a Mandatory Response, and an Optional Response
BPEL Process Service Component as the Client
BPEL Process Service Component as the Service
Introduction to Partial Processing
BPEL Process Service Component as the Client
BPEL Process Service Component as the Service
Introduction to Multiple Application Interactions
6
Manipulating XML Data in a BPEL Process
Introduction to Manipulating XML Data in BPEL Processes
XML Data in BPEL Processes
Data Manipulation and XPath Standards in Assign Activities
Delegating XML Data Operations to Data Provider Services
How to Create an Entity Variable
Understanding How SDO Works in the Inbound Direction
Understanding How SDO Works in the Outbound Direction
Creating an Entity Variable and Choosing a Partner Link
Creating a Binding Key
Translating Between Native Data and XML
How to Translate Native Data to XML Data
How to Translate XML Data to Native Data
How to Translate Inbound Native Data to XML Stored as an Attachment
Using Standalone SDO-based Variables
How to Declare SDO-based Variables
How to Convert from XML to SDO
Initializing a Variable with Expression Constants or Literal XML
How To Assign a Literal XML Element
Copying Between Variables
How to Copy Between Variables
How to Initialize Variables with an Inline from-spec in BPEL 2.0
Moving and Copying Variables in the Structure Window
To Move Variables in the Structure Window:
To Copy Variables in the Structure Window:
Accessing Fields in Element and Message Type Variables
How to Access Fields Within Element-Based and Message Type-Based Variables
Assigning Numeric Values
How to Assign Numeric Values
Using Mathematical Calculations with XPath Standards
How To Use Mathematical Calculations with XPath Standards
Assigning String Literals
How to Assign String Literals
Concatenating Strings
How to Concatenate Strings
Assigning Boolean Values
How to Assign Boolean Values
Assigning a Date or Time
How to Assign a Date or Time
Manipulating Attributes
How to Manipulate Attributes
Manipulating XML Data with bpelx Extensions
How to Use bpelx:append
bpelx:append in BPEL 1.1
bpelx:append in BPEL 2.0
How to Use bpelx:insertBefore
bpelx:insertBefore in BPEL 1.1
bpelx:insertBefore in BPEL 2.0
How to Use bpelx:insertAfter
bpelx:insertAfter in BPEL 1.1
bpelx:insertAfter in BPEL 2.0
How to Use bpelx:remove
bpelx:remove in BPEL 1.1
bpelx:remove in BPEL 2.0
How to Use bpelx:rename and XSD Type Casting
bpelx:rename in BPEL 1.1
bpelx:rename in BPEL 2.0
How to Use bpelx:copyList
bpelx:copyList in BPEL 1.1
bpelx:copyList in BPEL 2.0
How to Use Assign Extension Attributes
ignoreMissingFromData Attribute
insertMissingToData Attribute
keepSrcElementName Attribute
Validating XML Data
How to Validate XML Data in BPEL 2.0
Validate XML in an Assign Activity
Validate XML in a Standalone, Extended Validate Activity
How to Validate XML Data in BPEL 1.1
Validate XML in an Assign Activity
Validate XML in a Standalone, Extended Validate Activity
Using Element Variables in Message Exchange Activities in BPEL 2.0
Mapping WSDL Message Parts in BPEL 2.0
How to Map WSDL Message Parts
Importing Process Definitions in BPEL 2.0
Manipulating XML Data Sequences That Resemble Arrays
How to Statically Index into an XML Data Sequence That Uses Arrays
How to Use SOAP-Encoded Arrays
SOAP-Encoded Arrays in BPEL 2.0
Declaring a SOAP Array Using a wsdl:arrayType Attribute Inside a Schema
How to Determine Sequence Size
How to Dynamically Index by Applying a Trailing XPath to an Expression
Applying a Trailing XPath to the Result of getVariableData
Using the bpelx:append Extension to Append New Items to a Sequence
Merging Data Sequences
Generating Functionality Equivalent to an Array of an Empty Element
What You May Need to Know About Using the Array Identifier
Converting from a String to an XML Element
How To Convert from a String to an XML Element
Understanding Document-Style and RPC-Style WSDL Differences
How To Use RPC-Style Files
Manipulating SOAP Headers in BPEL
How to Receive SOAP Headers in BPEL
How to Send SOAP Headers in BPEL
Declaring Extension Namespaces in BPEL 2.0
How to Declare Extension Namespaces
What Happens When You Create an Extension
7
Invoking a Synchronous Web Service from a BPEL Process
Introduction to Invoking a Synchronous Web Service
Invoking a Synchronous Web Service
How to Invoke a Synchronous Web Service
How Does the BPEL Process Work
What Happens When You Invoke a Synchronous Web Service
Partner Link in the BPEL Code
Partner Link Type and Port Type in the BPEL Code
Invoke Activity for Performing a Request
Synchronous Invocation in BPEL Code
Specifying Transaction Timeout Values in Durable Synchronous Processes
How To Specify Transaction Timeout Values
What You May Need to Know About SyncMaxWaitTime and Durable Synchronous Requests Not Timing Out
Calling a One-Way Mediator with a Synchronous BPEL Process
8
Invoking an Asynchronous Web Service from a BPEL Process
Introduction to Invoking an Asynchronous Web Service
Invoking an Asynchronous Web Service
How to Invoke an Asynchronous Web Service
Adding a Partner Link for an Asynchronous Service
Adding an Invoke Activity
Adding a Receive Activity
Performing Additional Activities
What Happens When You Invoke an Asynchronous Web Service
portType Section of the WSDL File
partnerLinkType Section of the WSDL File
Partner Links Section in the BPEL File
Composite Application File
Invoke and Receive Activities
createInstance Attribute for Starting a New Instance
Dehydration Points for Maintaining Long-Running Asynchronous Processes
Multiple Runtime Endpoint Locations
What You May Need to Know About Midprocess Receive Activities Consuming Messages After Timing Out
What You May Need to Know About Multiple Client Components Invoking a Composite
What You May Need to Know About Limitations on BPEL 2.0 IMA Support
What Happens When You Specify a Conversation ID
bpelx:conversationId in BPEL 1.1
bpelx:conversationId in BPEL 2.0
Routing Callback Messages to the Correct Endpoint when Multiple Receive or Pick Activities Use the Same Partner Link
How to Route Callback Messages to the Correct Endpoint when Multiple Receive and Pick Activities Use the Same Partner Link
Managing Idempotence at the Partner Link Operation Level
How to Manage Idempotence at the Partner Link Operation Level
Creating a Dynamic Partner Link at Design Time for Use at Runtime
How To Create a Dynamic Partner Link at Design Time for Use at Runtime
Overriding Security Certificates when Invoking Dynamic Partner Links
Overriding WSDL Files of Dynamic Partner Links
Using WS-Addressing in an Asynchronous Service
How to Use WS-Addressing in an Asynchronous Service
Using TCP Tunneling to View Messages Exchanged Between Programs
Setting Up a TCP Listener for Synchronous Services
Setting Up a TCP Listener for Asynchronous Services
9
Using Correlation Sets and Message Aggregation
Introduction to Correlation Sets in an Asynchronous Service
Scenarios for Using Correlation Sets
Understanding Correlation Set Contents and Concepts
Overview of Correlation Set Creation
Creating Correlation Sets in Oracle JDeveloper
How to Create a Correlation Set with the Correlation Wizard
How to Manually Create Correlation Sets From the Correlations Tab
Step 1: Creating a Project
Step 2: Configuring Partner Links and File Adapter Services
Creating an Initial Partner Link and File Adapter Service
Creating a Second Partner Link and File Adapter Service
Step 3: Creating Three Receive Activities
Creating an Initial Receive Activity
Creating a Second Receive Activity
Step 4: Creating Correlation Sets
Creating an Initial Correlation Set
Creating a Second Correlation Set
Step 5: Associating Correlation Sets with Receive Activities
Associating the First Correlation Set with a Receive Activity
Associating the Second Correlation Set with a Receive Activity
Associating the Third Correlation Set with a Receive Activity
Step 6: Creating Property Aliases
Creating Property Aliases for NameCorr
Creating Property Aliases for IDCorr
Step 7: Reviewing WSDL File Content
What You May Need to Know About Conversion IDs and Different Composite Revisions
What You May Need to Know About Setting Correlations for an IMA Using a fromParts Element With Multiple Parts
Routing Messages to the Same Instance
How to Configure BPEL Process Instance Creation
How to Use the Same Operation in Entry and Midprocess Receive Activities
How to Route a Message to a New or Existing Instance when Using Correlation Sets
10
Using Parallel Flow in a BPEL Process
Introduction to Parallel Flows in BPEL Processes
What You May Need to Know About the Execution of Parallel Flow Branches in a Single Thread
Creating a Parallel Flow
How to Create a Parallel Flow
What Happens When You Create a Parallel Flow
Synchronizing the Execution of Activities in a Flow Activity
How to Create Synchronization Between Activities Within a Flow Activity
What Happens When You Create Synchronization Between Activities Within a Flow Activity
What You May Need to Know About Join Conditions in Target Activities
Customizing the Number of Parallel Branches
Processing Multiple Sets of Activities with the forEach Activity in BPEL 2.0
How to Create a forEach Activity
What Happens When You Create a forEach Activity
Customizing the Number of Flow Activities with the flowN Activity in BPEL 1.1
How to Create a flowN Activity
What Happens When You Create a FlowN Activity
11
Using Conditional Branching in a BPEL Process
Introduction to Conditional Branching
Defining Conditional Branching with the If or Switch Activity
Defining Conditional Branching with the If Activity in BPEL 2.0
How to Create an If Activity
What Happens When You Create an If Activity
Defining Conditional Branching with the Switch Activity in BPEL 1.1
How to Create a Switch Activity
What Happens When You Create a Switch Activity
Defining Conditional Branching with the While Activity
How To Create a While Activity
What Happens When You Create a While Activity
Defining Conditional Branching with the repeatUntil Activity
How to Create a repeatUntil Activity
What Happens When You Create a repeatUntil Activity
Specifying XPath Expressions to Bypass Activity Execution
How to Specify XPath Expressions to Bypass Activity Execution
What Happens When You Specify XPath Expressions to Bypass Activity Execution
12
Using Fault Handling in a BPEL Process
Introduction to a Fault Handler
Introduction to BPEL Standard Faults
BPEL 1.1 Standard Faults
BPEL 2.0 Standard Faults
Fault Handling Order of Precedence in BPEL 2.0
Introduction to the Business and Runtime Fault Categories of BPEL Faults
Business Faults
Runtime Faults
bindingFault
remoteFault
replayFault
How to Add and Propagate Fault Handling in a Synchronous BPEL Process
Edit the Schema and WSDL Files
Add a Fault Handler
Create a Fault Response Variable
Add an Assign Activity to the Catch Activity Branch
Add a Reply Activity to the Catch Activity Branch
Handling Faults with the Fault Management Framework
Understanding How the Fault Policy Binding Resolution Works
How to Design a Fault Policy for Automated Fault Recovery with the Fault Policy Wizard
Step 1: Defining Property Sets
Step 2: Defining Alerts
Step 3: Defining Actions
Step 4: Defining Fault Names and Policies
Step 5: Defining the Fault Policy Bindings for the Fault Policy
How to Manually Design a Fault Policy for Automated Fault Recovery
Manually Creating a Fault Policy File for Automated Fault Recovery
Associating a Fault Policy with Fault Policy Binding
Additional Fault Policy and Fault Policy Binding File Samples
Designing a Fault Policy with Multiple Rejection Handlers
How to Execute a Fault Policy
How to Use a Java Action Fault Policy
How to Design Fault Policies for Oracle BPM Suite
What You May Need to Know About Designing a Fault Policy in a Synchronous BPEL Process
What You May Need to Know About Fault Management Behavior When the Number of Instance Retries is Exceeded
What You May Need to Know About Binding Level Retry Execution Within Fault Policy Retries
Catching BPEL Runtime Faults
How to Catch BPEL Runtime Faults
Getting Fault Details with the getFaultAsString XPath Extension Function
How to Get Fault Details with the getFaultAsString XPath Extension Function
Throwing Internal Faults with the Throw Activity
How to Create a Throw Activity
What Happens When You Create a Throw Activity
Rethrowing Faults with the Rethrow Activity
How to Create a Rethrow Activity
What Happens When You Rethrow Faults
Returning External Faults
How to Return a Fault in a Synchronous Interaction
How to Return a Fault in an Asynchronous Interaction
Managing a Group of Activities with a Scope Activity
How to Create a Scope Activity
How to Add Descriptive Notes and Images to a Scope Activity
What Happens After You Create a Scope Activity
What You May Need to Know About Scopes
How to Use a Fault Handler Within a Scope
What You May Need to Know About the idempotent Property and Fault Handling
How to Create a Catch Activity in a Scope
What Happens When You Create a Catch Activity in a Scope
How to Insert No-Op Instructions into a Business Process with an Empty Activity
What Happens When You Create an Empty Activity
Re-executing Activities in a Scope Activity with the Replay Activity
How to Create a Replay Activity
What Happens When You Create a Replay Activity
Using Compensation After Undoing a Series of Operations
Using a Compensate Activity
How to Create a Compensate Activity
What Happens When You Create a Compensate Activity
Using a compensateScope Activity in BPEL 2.0
How to Create a compensateScope Activity
What Happens When You Create a compensateScope Activity
Stopping a Business Process Instance with a Terminate or Exit Activity
Immediately Ending a Business Process Instance with the Exit Activity in BPEL 2.0
How to Create an Exit Activity
What Happens When You Create an Exit Activity
Stopping a Business Process Instance with the Terminate Activity in BPEL 1.1
How to Create a Terminate Activity
What Happens When You Create a Terminate Activity
Throwing Faults with Assertion Conditions
How to Create Assertion Conditions
To create assertion conditions in invoke activities, receive activities, reply activities, and OnMessage branches:
To create an assertion condition in standalone assert activities:
How to Disable Assertions
What Happens When You Create Assertion Conditions
What You May Need to Know About Assertion Conditions
bpelx:postAssert and bpelx:preAssert Extensions
Use of faultName and message Attributes
Multiple Assertions
Use of Built-in and Custom XPath Functions and $variable References
Assertion Condition Evaluation Logging of Events to the Instance Audit Trail
Expressions Not Evaluating to an XML Schema Boolean Type Throw a Fault
Assertion Conditions in a Standalone Assert Activity
What You May Need to Know About Postassertion and Preassertion Condition Schemas and Syntax
Classifying SOAP Faults as Retriable
13
Transaction and Fault Propagation Semantics in BPEL Processes
Introduction to Transaction Semantics
Oracle BPEL Process Manager Transaction Semantics
BPELCaller Process Calls a BPELCallee Process That Has bpel.config.transaction Set to requiresNew
BPELCaller Process Calls a BPELCallee Process That Has bpel.config.transaction Set to required
Introduction to Execution of One-way Invocations
Executing a Business Process Without a Transaction
When Should I Use a BPEL Process Without a Transaction?
Guidelines for Executing Without a Transaction
How to Create a Synchronous BPEL Process Without a Transaction
How to Create an Asynchronous BPEL Process Without a Transaction
14
Incorporating Java and Java EE Code in a BPEL Process
Introduction to Java and Java EE Code in BPEL Processes
Incorporating Java and Java EE Code in BPEL Processes
How to Wrap Java Code as a SOAP Service
What You May Need to Know About Wrapping Java Code as a SOAP Service
How to Embed Java Code Snippets into a BPEL Process with the bpelx:exec Tag
How to Embed Java Code Snippets in a BPEL 2.0 Process
How to Use an XML Facade to Simplify DOM Manipulation
How to Use bpelx:exec Built-in Methods
How to Use Java Code Wrapped in a Service Interface
Adding Custom Classes and JAR Files
How to Add Custom Classes and JAR Files
To Add JARs to BpelcClasspath:
To Add Custom Classes:
To Add Custom JARs:
Using Java Embedding in a BPEL Process in Oracle JDeveloper
How To Use Java Embedding in a BPEL Process in Oracle JDeveloper
What You May Need to Know About Using thread.sleep() in a Java Embedding Activity
Embedding Service Data Objects with bpelx:exec
Sharing a Custom Implementation of a Class with Oracle BPEL Process Manager
How to Configure the BPEL Connection Manager Class to Take Precedence
15
Using Events and Timeouts in BPEL Processes
Introduction to Event and Timeout Concepts
Selecting Between Continuing or Waiting on a Process with a Pick Activity
How To Create a Pick Activity
What Happens When You Create a Pick Activity
What You May Need to Know About Simultaneous onMessage Branches in BPEL 2.0
Setting Timeouts for Request-Reply and In-Only Operations in Receive Activities
How to Set Timeouts in Receive Activities
What Happens When You Set Timeouts in Receive Activities
What You May Need to Know About Setting Timeouts for Request-Reply and In-Only Operations
Timeout Settings Relative from When the Activity is Invoked
Timeout Settings as an Absolute Date Time
Timeout Settings Computed Dynamically with an XPath Expression
bpelx:timeout Fault Thrown During an Activity Timeout
Event Added to the BPEL Instance Audit Trail During an Activity Timeout
Recoverable Timeout Activities During a Server Restart (Refresh Expiration Alarm Table)
Setting an Expiration Time with a Wait Activity
How To Specify the Minimum Wait Time
How to Create a Wait Activity
What Happens When You Create a Wait Activity
Specifying Events to Wait for Message Arrival with an OnEvent Branch in BPEL 2.0
How to Create an onEvent Branch in a Scope Activity
What Happens When You Create an OnEvent Branch
Setting Timeouts for Durable Synchronous Processes
Invoking an Oracle Enterprise Scheduler Job in a BPEL Process
How to Create Oracle Database and SOA-MDS Connections
How to Create a Schedule Job Activity
How to Attach Security Policies to the Service and Reference Binding Components
16
Coordinating Master and Detail Processes
Introduction to Master and Detail Process Coordinations
BPEL File Definition for the Master Process
Correlating a Master Process with Multiple Detail Processes
BPEL File Definition for Detail Processes
Defining Master and Detail Process Coordination in Oracle JDeveloper
How to Create a Master Process
How to Create a Detail Process
How to Create an Invoke Activity
17
Using the Notification Service
Introduction to the Notification Service
Introduction to Notification Channel Setup
Selecting Notification Channels During BPEL Process Design
How To Configure the Email Notification Channel
Setting Email Attachments
Formatting the Body of an Email Message as HTML
Using Dynamic HTML for Message Content Requires a CDATA Function
How to Configure the IM Notification Channel
How to Configure the SMS Notification Channel
How to Configure the Voice Notification Channel
How to Select Email Addresses and Telephone Numbers Dynamically
How to Select Notification Recipients by Browsing the User Directory
Allowing the End User to Select Notification Channels
How to Allow the End User to Select Notification Channels
How to Create and Send Headers for Notifications
18
Using Oracle BPEL Process Manager Sensors and Analytics
Introduction to Oracle BPEL Process Manager Sensors
Composite Sensors
Configuring Sensors and Sensor Actions in Oracle JDeveloper
How to Access Sensors and Sensor Actions
How to Configure Activity, Variable, and Fault Sensors
To Configure an Activity Sensor:
To Configure a Variable Sensor:
To Configure a Fault Sensor:
How to Configure Sensor Actions
How to Publish to Remote Topics and Queues
How to Create a Custom Data Publisher
How to Register the Sensors and Sensor Actions in the composite.xml File
Viewing Sensors and Sensor Action Definitions in Oracle Enterprise Manager Fusion Middleware Control
Configuring BPEL Process Analytics
Introduction to Business Indicators
Introduction to Standard Sampling Points
Introduction to User-Defined Sampling Points
How to Access Analytics View
How to Define Business Indicators
Defining Counters
Defining Dimensions
Defining Measures
How to Define Measurements
How to Define a Counter Mark
How to Define an Interval Start
How to Define an Interval Stop
How to Define a Single Mark
How to Configure Composite-Level Analytic Sampling Points
How to Configure Process-Level Analytic Sampling Points
How to Edit Business Indicators in the Business Indicator Overview Editor
Deploying BPEL Analytics
Viewing BPEL Analytics at Runtime
Part III Using the Oracle Mediator Service Component
19
Getting Started with Oracle Mediator
Introduction to Oracle Mediator
Mediator Functionality
Content-Based and Header-Based Routing
Synchronous and Asynchronous Interactions
Sequential and Parallel Routing of Messages
Message Resequencing
Data Transformation
Payload Validation
Java Callouts
Event Handling
Dynamic Routing
Error Handling
Sending Messages Back to the Caller (Echo)
Multiple Part Messages
Creating a Mediator
How to Create a Mediator
To Create a Composite Application with a Mediator:
To Create a Mediator in an Existing Composite Application:
To create a new project with a Mediator:
To create a Mediator in an existing project:
Introduction to the Mediator Editor Environment
Configuring the Mediator Interface Definition
How to Configure the Mediator Interface Definition
What Happens When You Create a Mediator
Without an Interface Definition
With a WSDL-Based Interface
With a One-Way Interface Definition
With a Synchronous Interface Definition
With an Asynchronous Interface Definition
With an Event Subscription
Defining an Interface for a Mediator
How to Define an Interface for a Mediator
To Subscribe to Events:
To Define Services for a Mediator Using a Wire:
To Define Services for a Mediator in the Mediator Editor:
Generating a WSDL File
How to Generate a WSDL File
To generate a WSDL file for a one-way interface from an XSD file:
To generate a WSDL file for a synchronous interface from an XSD file:
To generate a WSDL file for an asynchronous interface from an XSD file:
Specifying Validation and Priority Properties
Modifying a Mediator Service Component
How To Modify Mediator Operations
How To Modify Mediator Event Subscriptions
20
Creating Oracle Mediator Routing Rules
Introduction to Routing Rules
Static Routing Rules
Types of Static Rules
Static Routing Rule Components
Dynamic Routing Rules
Sequential and Parallel Execution
Basic Principles of Sequential Routing Rules
Basic Principles of Parallel Routing Rules
Finer Control Over Thread Allocation in Parallel Routing
Resequencing Rules
Defining Routing Rules
How To Access the Routing Rules Section
From the SOA Composite Editor:
From the Applications window:
How to Create Static Routing Rules
How to Specify Mediator Services or Events
To invoke a service:
To trigger an event:
To echo a service:
What You May Need to Know About Echoing a Service
How to Specify Sequential or Parallel Execution
How to Configure Response Messages
How to Handle Premature Callbacks
How to Handle Multiple Callbacks
How to Handle Faults
To define an additional fault routing:
To remove a fault routing section:
How to Specify an Expression for Filtering Messages
To specify an expression for filtering messages:
To specify a filter expression on a message payload:
How to Translate Between Native XSD Formats and XML Formats
How to Use Inbound Translation
How to Use Outbound Translation
How to Create XSLT Transformations
To create a transformation:
To add user-defined extension functions:
How to Create XQuery Transformations
To create an XQuery transformation:
To edit an XQuery transformation:
How to Assign Values
To copy a source node to a target node:
To assign complex expressions:
To assign constant values and XML fragments:
What You May Need to Know About the Assign Activity
How to Access Headers for Filters and Assignments
Manual Expression Building for Accessing Headers for Filters and Assignments
Manual Expression Building for Accessing Properties for Filters and Assignments
How to Use Semantic Validation
How to Work with Attachments
How to Use Java Callouts
To make Java callout classes available:
To enter the Java class for the callout:
To set the payload root element (when using a filter expression):
To enable domain value map and cross reference functions:
Mediator Java Callout API
Sample Java Callout Class
How to Create Dynamic Routing Rules
How to Dynamically Override a Static Routing Rule Using a DVM
To override a static route using DVM:
To add a new domain to the DVM:
To add a new row to the DVM:
To delete a domain from the DVM:
To delete a row from the DVM:
How to Dynamically Override a Static Routing Rule Using a Decision Component
To override a static route using a Decision Component:
To edit a decision component:
How to Remove an Existing Dynamic Routing Rule
What You May Need to Know About Using Dynamic Routing Rules
How to Define Default Routing Rules
Default Rule Scenarios
Default Rule Target
Default Rule: Validation, Transformation, and Assign Functionality
Default Rule: Java Callouts
Default Rule: Mediator .mplan File
Mediator Routing Use Cases
21
Working with Multiple Part Messages in Oracle Mediator
Introduction to Mediator Multipart Message Support
Working with Multipart Request Messages
How to Specify Filter Expressions for Multipart Request Messages
How to Add Validations for Multipart Request Messages
How to Create Transformations for Multipart Request Messages
How to Assign Values for Multipart Request Messages
How to Work with Multipart Reply, Fault, and Callback Source Messages
How to Work with Multipart Target Messages
22
Using Oracle Mediator Error Handling
Introduction to Mediator Error Handling
Fault Policies
Conditions
Actions
Retry Action
Rethrow Action
Human Intervention Action
Abort Action
Java Code Action
Fault Bindings
Error Groups in Mediator
Using Error Handling with Mediator
How to Use Error Handling for a Mediator Service Component
What Happens at Runtime
Fault Recovery Using Oracle Enterprise Manager Fusion Middleware Control
Error Handling XML Schema Definition Files
Schema Definition File for fault-policies.xml
Schema Definition File for fault-bindings.xml
23
Resequencing in Oracle Mediator
Introduction to the Resequencer
Groups and Sequence IDs
Identification of Groups and Sequence IDs
Resequencing Order
Standard Resequencer
Overview of the Standard Resequencer
Information Required for Standard Resequencing
Example of the Standard Resequencer
FIFO Resequencer
Overview of the FIFO Resequencer
Information Required for FIFO Resequencing
Example of the FIFO Resequencer
Best Effort Resequencer
Overview of the Best Effort Resequencer
Best Effort Resequencer Message Selection Strategies
Maximum Rows Selected
Time Window
Best Effort Resequencer Message Delivery
Information Required for Best Effort Resequencing
Example of Best Effort Resequencing Based on Maximum Rows
Example of Best Effort Resequencing Based on a Time Window
Configuring the Resequencer
How to Specify the Resequencing Level
How to Configure the Resequencing Strategy
To configure a standard resequencer:
To configure a FIFO resequencer:
To configure a best effort resequencer:
24
Understanding Message Exchange Patterns of an Oracle Mediator
One-way Message Exchange Patterns
The one.way.returns.fault Property
To add the one.way.returns.fault property:
Request-Reply Message Exchange Patterns
Request-Reply-Fault Message Exchange Patterns
Request-Callback Message Exchange Patterns
Request-Reply-Callback Message Exchange Patterns
Request-Reply-Fault-Callback Message Exchange Patterns
Part IV Using the Business Rules Service Component
25
Getting Started with Oracle Business Rules
Introduction to the Business Rule Service Component
Integrating BPEL Processes, Business Rules, and Human Tasks
Overview of Rules Designer Editor Environment
Applications Window
Rules Designer Window
Structure Window
Business Rule Validation Log Window
Introduction to Creating and Editing Business Rules
How to Create Business Rules Components
Working with Business Rules in Rules Designer
Adding Business Rules to a BPEL Process
How to Add Inputs for Business Rule
How to Add Outputs for Business Rule
How to Set Options and Create Decision Service and Business Rule Dictionary
What Happens When You Add Business Rules to a BPEL Process
What Happens When You Create a Business Rules Dictionary
What You May Need to Know About Invoking Business Rules in a BPEL Process
What You May Need to Know About Decision Component Stateful Operation
Adding Business Rules to a SOA Composite Application
How to Add Business Rules to a SOA Composite Application
How to Add Inputs to a Business Rule
How to Add Output to a Business Rule
How to Set Options and Create Decision Service and Business Rules Dictionary
How to Select and Modify a Decision Function in a Business Rule Component
Running Business Rules in a Composite Application
What You May Need to Know About Testing a Standalone Decision Service Component
Using Business Rules with Oracle ADF Business Components Fact Types
26
Using Declarative Components and Task Flows
Introduction to Declarative Components and Task Flows
Introduction to the Oracle Business Rules Editor Declarative Component
Using the Oracle Business Rules Editor Component
How to Create and Run a Sample Application by Using the Rules Editor Component
How to Create the RuleSetModel Object
How to Create the .jspx File
How to Refer to the Oracle Rules Shared Libraries
How to Run the Sample Application
How to Deploy a Rules Editor Application to a Standalone WLS
What You May Need to Know About the Custom Permissions for the Rules Editor Component
What You May Need to Know About the Supported Tags of the Rules Editor Component
Introduction to the Oracle Business Rules Dictionary Editor Declarative Component
Using the Oracle Business Rules Dictionary Component
How to Create and Run a Sample Application by Using the Rules Dictionary Editor Component
How to Create the RuleDictionaryModel Object
How to Create .jspx File for the Rules Dictionary Editor Component
How to Refer the oracle.rules and the oracle.soa.rules_dict_dc.webapp Shared Libraries
How to Run the Sample Rules Dictionary Editor Application
How to Deploy a Rules Dictionary Application to a Standalone Oracle WebLogic Server
What You May Need to Know About the Supported Attributes of the Rules Dictionary Editor Component
Introduction to the Oracle Business Rules Dictionary Editor Task Flow
Using the Oracle Business Rules Dictionary Task Flow
How to Create and Run a Sample Application By Using the Rules Dictionary Editor Task Flow
How to Add a Rule Dictionary Editor Task Flow
How to Edit the pagedef.xml File
How to Refer to oracle.rules and oracle.soa.rules_dict_dc.webapp Shared Libraries
How to Run the Sample Task Flow Application
How to Deploy a Rules Dictionary Editor Task Flow Application to a Standalone Oracle WebLogic Server
Localizing the ADF-Based Web Application
Working with Translations
Enabling Translations for Consumer of Reusable Rules UI ADF Task Flow Component
Sample Code to Pass an Implementation of IRelatedMetadataDetails
Enabling Translations for Consumer of Rules Web UI Application
Sample Code for Creating an Instance of resourceManager
Part V Using the Human Workflow Service Component
27
Getting Started with Human Workflow
Introduction to Human Workflow
Introduction to Human Workflow Concepts
Introduction to Design and Runtime Concepts
Task Assignment and Routing
Participant
Participant Type
Participant Assignment
Ad Hoc Routing
Outcome-based Completion of Routing Flow
Static, Dynamic, and Rule-Based Task Assignment
Static Task Assignment
Dynamic Task Assignment
Assign tasks with Business Rules
Task Stakeholders
Task Deadlines
Notifications
Task Forms
Advanced Concepts
Reports and Audit Trails
Introduction to the Stages of Human Workflow Design
Introduction to Human Workflow Use Cases
Task Assignment to a User or Role
Use of the Various Participant Types
Escalation, Expiration, and Delegation
Automatic Assignment and Delegation
Dynamic Assignment of Users Based on Task Content
Introduction to Human Workflow Architecture
Human Workflow Services
Use of Human Task
Service Engines
Human Workflow and Business Rule Differences Between Oracle SOA Suite and Oracle BPM Suite
28
Creating Human Tasks
Introduction to Human Tasks
Introduction to Creating a Human Task Definition
Introduction to Associating the Human Task Definition with a BPEL Process
Introduction to Generating the Task Form
Creating Human Tasks
How to Create a Human Task Using the SOA Composite Editor
How to Create a Human Task Using Oracle BPEL Designer
What Happens When You Create a Human Task
Configuring Human Tasks
Exiting the Human Task Editor and Saving Your Changes
Associating Human Tasks with BPEL Processes
How to Associate a Human Task with a BPEL Process
What You May Need to Know About Deleting a Wire Between a Human Task and a BPEL Process
How to Define the Human Task Activity Title, Initiator, Priority, and Parameter Variables
Specifying the Task Title
Specifying the Task Initiator and Task Priority
Specifying Task Parameters
How to Define the Human Task Activity Advanced Features
Specifying a Scope Name and a Global Task Variable Name
Specifying a Task Owner
Specifying an Identification Key
Specifying an Identity Context
Specifying an Application Context
Including the Task History of Other Human Tasks
How to View the Generated Human Task Activity
Invoking BPEL Callbacks
What You May Need to Know About Changing the Generated Human Task Activity
What You May Need to Know About Deleting a Partner Link Generated by a Human Task
How to Define Outcome-Based Modeling
Specifying Payload Updates
Using Case Statements for Other Task Conclusions
What You May Need to Know About Encoding an Attachment
29
Configuring Human Tasks
Accessing the Sections of the Human Task Editor
Specifying the Title, Description, Outcome, Priority, Category, Owner, and Application Context
How to Specify a Task Title
How to Specify a Task Description
How to Specify a Task Outcome
How to Specify a Task Priority
How to Specify a Task Category
How to Specify a Task Owner
Specifying a Task Owner Statically Through the User Directory or a List of Application Roles
Specifying a Task Owner Dynamically Through an XPath Expression
How To Specify an Application Context
Specifying the Task Payload Data Structure
How to Specify the Task Payload Data Structure
Assigning Task Participants
How to Specify a Stage Name and Add Parallel and Sequential Blocks
How to Assign Task Participants
How to Configure the Single Participant Type
Creating a Single Task Participant List
Creating Participant Lists Consisting of Value-Based Names and Expressions
Creating Participant Lists Consisting of Value-Based Management Chains
Creating Participant Lists Consisting of Rulesets
Specifying a Time Limit for Acting on a Task
Inviting Additional Participants to a Task
Bypassing a Task Participant
How to Configure the Parallel Participant Type
Specifying the Voting Outcome
Creating a Parallel Task Participant List
Specifying a Time Limit for Acting on a Task
Inviting Additional Participants to a Task
Bypassing a Task Participant
How to Configure the Serial Participant Type
Creating a Serial Task Participant List
Specifying a Time Limit for Acting on a Task
Inviting Additional Participants to a Task
Bypassing a Task Participant
How to Configure the FYI Participant Type
Creating an FYI Task Participant List
Selecting a Routing Policy
How to Customize Tasks Routing
Allow All Participants to Invite Other Participants or Edit New Participants
Allow Initiator to Add Participants
Stopping Routing of a Task to Further Participants
Enabling Early Completion in Parallel Subtasks
Completing Parent Subtasks of Early Completing Subtasks
How to Specify Advanced Task Routing Using Business Rules
Introduction to Advanced Task Routing Using Business Rules
Facts
Action Types
Sample Ruleset
Linked Dictionary Support
Creating Advanced Routing Rules
How to Use External Routing
How to Configure the Error Assignee and Reviewers
How to Change Server Settings
Specifying Multilingual Settings and Style Sheets
How to Specify WordML and Other Style Sheets for Attachments
How to Specify Multilingual Settings
Specify What to Show in Task Details in the Worklist
Escalating, Renewing, or Ending the Task
Introduction to Escalation and Expiration Policy
How to Specify a Policy to Never Expire
How to Specify a Policy to Expire
How to Extend an Expiration Policy Period
How to Escalate a Task Policy
How to Specify Escalation Rules
How to Specify a Due Date
Specifying Participant Notification Preferences
How to Notify Recipients of Changes to Task Status
How to Edit the Notification Message
How to Set Up Reminders
How to Change the Character Set Encoding
How to Secure Notifications to Exclude Details
How to Display the Oracle BPM Worklist URL in Notifications
How to Make Email Messages Actionable
How to Send Task Attachments with Email Notifications
How to Send Email Notifications to Groups and Application Roles
How to Customize Notification Headers
Specifying Access Policies and Task Actions on Task Content
Introduction to Access Rules
Specifying User Privileges for Acting on Task Content
Specifying Actions for Acting Upon Tasks
How to Specify a Workflow Digital Signature Policy
Specifying a Certificate Authority
Specifying Restrictions on Task Assignments
How to Specify Restrictions on Task Assignments
Specifying Java or Business Event Callbacks
Specifying Java Callbacks
Specifying Business Event Callbacks
How to Specify Task and Routing Customizations in BPEL Callbacks
How to Disable BPEL Callbacks
30
Designing Task Forms for Human Tasks
Introduction to the Task Form
What You May Need to Know About Task Forms: Time Zone Conversion
Associating the Task Flow with the Task Service
Creating an ADF Task Flow Based on a Human Task
How To Create an ADF Task Flow from the Human Task Editor
How To Create an ADF Task Flow Based on a Human Task
What Happens When You Create an ADF Task Flow Based on a Human Task
What You May Need to Know About Having Multiple ADF Task Flows That Contain the Same Element with Different Meta-attributes
Creating a Task Form
How To Create an Autogenerated Task Form
How to Register the Library JAR File for Custom Page Templates
How To Create a Task Form Using the Custom Task Form Wizard
How To Create a Task Form Using the Complete Task with Payload Drop Handler
Complete Task with Payload
Complete Task without Payload
Task Details for Email
Task Header
Task Actions
Task History
Task Comments and Attachments
How To Create Task Form Regions Using Individual Drop Handlers
How To Add the Payload to the Task Form
What Happens When You Create a Task Form
Refreshing Data Controls When the Task XSD Changes
Securing the Task Flow Application
Creating an Email Notification
How To Create an Email Notification
Creating a Task Flow with a Router
Creating an Email Notification Page
What Happens When You Create an Email Notification Page
Deploying a Composite Application with a Task Flow
How To Deploy a Composite Application with a Task Flow
How To Redeploy the Task Form
How To Deploy a Task Flow as a Separate Application
How To Deploy a Task Form to a non-SOA Oracle WebLogic Server
Before Deploying the Task Form: Port Changes
Configuring Unique Cookie Context Paths for the Session Tracking Cookies
Deploying oracle.soa.workflow.jar to a non-SOA Oracle WebLogic Server
Defining the Foreign JNDI Provider on a non-SOA Oracle WebLogic Server
Defining the Foreign JNDI Provider Links on a non-SOA Oracle WebLogic Server
Including a Grant for bpm-services.jar
Deploying the Application
What Happens When You Deploy the Task Form
What You May Need to Know About Undeploying a Task Flow
Displaying a Task Form in the Worklist
Displaying a Task in an Email Notification
Changing the Text for the Worklist Application in Task Notifications
Changing the URL of the Worklist Application in Task Notifications
Reusing the Task Flow Application with Multiple Human Tasks
How To Reuse the Task Flow Application with Multiple Human Tasks
How to Reuse the Task Flow Application with Different Actions
31
Human Workflow Tutorial
Introduction to the Human Workflow Tutorial
Prerequisites
Creating an Application and a Project with a BPEL Process
Creating the Human Task Service Component
Designing the Human Task
Associating the Human Task and BPEL Process Service Components
Creating a Task Form Project
Deploying the Task Form
Creating an Application Server Connection
Deploying the SOA Composite Application
Initiating the Process Instance
Acting on the Task in Oracle BPM Worklist
Additional Tutorials
32
Using Oracle BPM Worklist
Introduction to Oracle BPM Worklist
Logging In to Oracle BPM Worklist
How To Log In to the Worklist
Enabling the weblogic User for Logging in to the Worklist
What Happens When You Log In to the Worklist
What Happens When You Change a User's Privileges While They are Logged in to Oracle BPM Worklist
Customizing the Task List Page
How To Filter Tasks
To Filter Tasks Based on Assignee or State
To Filter Tasks Based on Keyword Search
To Filter Tasks Based on an Advanced Search
How To Create, Delete, and Customize Worklist Views
To Customize a Worklist View
How To Customize the Task Status Chart
How To Create a ToDo Task
How to Create Subtasks in Worklist Application
What You May Need to Know About Creating Subtasks
Acting on Tasks: The Task Details Page
System Actions
Task History
How To Act on Tasks
To Request Information
To Route a Task
To Add Comments or Attachments
How To Act on Tasks That Require a Digital Signature
Approving Tasks
Setting a Vacation Period
Setting Rules
How To Create User Rules
How To Create Group Rules
How to Avoid Circular Logic in Reassigned Vacation Rules
Assignment Rules for Tasks with Multiple Assignees
Using the Worklist Administration Functions
How To Manage Other Users' or Groups' Rules (as an Administrator)
How to Specify the Login Page Realm Label
How to Specify the Resource Bundle
How to Specify the Language Locale Information
How to Specify User Name Format
How to Specify a Branding Logo
How to Specify the Branding Title
How to Choose a Skin
To Choose A Skin
To Create a JAR File Containing Customized Skins
How to Enable Customized Applications and Links
How to Specify an Image for a Task Action
Specifying Notification Settings
Messaging Filter Rules
Data Types
Attributes
Rule Actions
Managing Messaging Channels
Viewing Your Messaging Channels
Creating, Editing, and Deleting a Messaging Channel
Managing Messaging Filters
Viewing Messaging Filters
Creating Messaging Filters
Editing a Messaging Filter
Deleting a Messaging Filter
Using Mapped Attributes (Flex Fields)
How To Map Attributes
To Create Labels
To Browse All Mappings
To Edit Mappings by Task Type
Custom Mapped Attributes
Creating Worklist Reports
How To Create Reports
What Happens When You Create Reports
Unattended Tasks Report
Tasks Priority Report
Tasks Cycle Time Report
Tasks Productivity Report
Accessing Oracle BPM Worklist in Local Languages and Time Zones
Strings in Oracle BPM Worklist
How to Change the Preferred Language, Display Names of Users, and Time Zone Settings if the Identity Store is LDAP-Based
How to Change the Language in Which Tasks Are Displayed
How To Change the Language Preferences from a JAZN XML File
What You May Need to Know Setting Display Languages in Worklist
How To Change the Time Zone Used in the Worklist
Creating Reusable Worklist Regions
How to Create an Application With an Embedded Reusable Worklist Region
How to Set Up the Deployment Profile
How to Prepare Federated Mode Task Flows For Deployment
What You May Need to Know About Task List Task Flow
What You May Need to Know About Certificates Task Flow
What You May Need to Know About the Reports Task Flow
What You May Need to Know About Application Preferences Task Flow
What You May Need to Know About Mapped Attributes Task Flow
What You May Need to Know About Rules Task Flow
What You May Need to Know About Approval Groups Task Flow
What You May Need to Know About Task Configuration Task Flow
Java Code for Enabling Customized Applications in Worklist Application
33
Building a Custom Worklist Client
Introduction to Building Clients for Workflow Services
Packages and Classes for Building Clients
Workflow Service Clients
The IWorkflowServiceClient Interface
Class Paths for Clients Using SOAP
Class Paths for Clients Using Remote EJBs
Initiating a Task
Creating a Task
Creating a Payload Element in a Task
Initiating a Task Programmatically
Changing Workflow Standard View Definitions
Writing a Worklist Application Using the HelpDeskUI Sample
34
Introduction to Human Workflow Services
Introduction to Human Workflow Services
SOAP, Enterprise JavaBeans, and Java Support for the Human Workflow Services
Support for Foreign JNDI Names
Security Model for Services
Limitation on Propagating Identity to Workflow Services when Using SOAP Web Services
Creating Human Workflow Context on Behalf of a User
Obtaining the Workflow Context for a User Previously Authenticated by a JAAS Application
Task Service
Task Query Service
Identity Service
Identity Service Providers
Custom User Repository Plug-ins
Task Metadata Service
User Metadata Service
Task Report Service
Runtime Config Service
Internationalization of Attribute Labels
Evidence Store Service and Digital Signatures
Prerequisites
Interfaces and Methods
Task Instance Attributes
Notifications from Human Workflow
Contents of Notification
Error Message Support
Reliability Support
Management of Oracle Human Workflow Notification Service
How to Configure the Notification Channel Preferences
How to Configure Notification Messages in Different Languages
How to Send Actionable Messages
How to Send Actionable Emails for Human Tasks
How to Send Inbound and Outbound Attachments
How to Send Inbound Comments
How to Send Secure Notifications
How to Set Channels Used for Notifications
How to Send Reminders
How to Set Automatic Replies to Unprocessed Messages
How to Create Custom Notification Headers
Assignment Service Configuration
Dynamic Assignment and Task Escalation Patterns
How to Implement a Dynamic Assignment Pattern
How to Configure Dynamic Assignment Patterns
How to Configure Display Names for Dynamic Assignment Patterns
How to Implement a Task Escalation Pattern
Dynamically Assigning Task Participants with the Assignment Service
How to Implement an Assignment Service
Example of Assignment Service Implementation
How to Deploy a Custom Assignment Service
Custom Escalation Function
Class Loading for Callbacks and Resource Bundles
Resource Bundles in Workflow Services
Task Resource Bundles
Global Resource Bundle – WorkflowLabels.properties
Worklist Client Resource Bundles
Task Detail ADF Task Flow Resource Bundles
Specifying Stage and Participant Names in Resource Bundles
Case Sensitivity in Group and Application Role Names
Introduction to Human Workflow Client Integration with Oracle WebLogic Server Services
Human Workflow Services Clients
Task Query Service Client Code
Configuration Option
JAXB Object
Workflow Client Configuration File - wf_client_config.xml
Workflow Client Configuration in the Property Map
Client Logging
Configuration Migration Utility
Identity Propagation
Enterprise JavaBeans Identity Propagation
Client Configuration
Requirements for Client Applications For Identity Propagation
SAML Token Identity Propagation for SOAP Client
Client configuration
Public Key Alias
Client JAR Files
Task States in a Human Task
Database Views for Oracle Workflow
Unattended Tasks Report View
Task Cycle Time Report View
Task Productivity Report View
Task Priority Report View
Part VI Using Binding Components
35
Getting Started with Binding Components
Introduction to Binding Components
SOAP Web Services
WS-AtomicTransaction Support
Ensuring Participation of BPEL Processes in WS-AT
WS-AT Transactions are Not Supported When Optimization is Enabled
HTTP Binding Service
Supported Interactions
How to Configure the HTTP Binding Service
How to Enable Basic Authentication for HTTP Binding
JCA Adapters
Database Adapter
File Adapter
FTP Adapter
AQ Adapter
JMS Adapter
MQ Adapter
Socket Adapter
Third-Party Adapter
Oracle User Messaging Service Adapter
LDAP Adapter
Coherence Adapter
Oracle E-Business Suite Adapter
Oracle BAM 11g Adapter
Oracle B2B
Oracle Healthcare Adapter
Oracle MFT
ADF-BC Services
EJB Adapter
Direct Binding Adapter
REST Binding
Cloud Adapters
Introduction to Integrating a Binding Component in a SOA Composite Application
How to Integrate a Binding Component in a SOA Composite Application
How to Use ADF Binding to Invoke a Composite Application from a JSP/Java Class
Creating Tokens for Use in the Binding URLs of External References
How to Create Tokens for Use in the Binding URLs of External References
36
Integrating REST Operations in SOA Composite Applications
Introduction to REST Support
Creating REST Support in Service and Reference Binding Components
How to Configure the REST Adapter as a Service Binding Component in a SOA Composite Application
How to Configure the REST Adapter as a Reference Binding Component in a SOA Composite Application
How to Configure the REST Adapter Through Shortcuts
To generate a REST service based on a web service deployed on an application server:
To generate a REST reference based on a REST service deployed on an application server:
To generate a REST service based on a SOA component's WSDL service:
How to Generate Schemas Manually
How to Generate Schemas from Samples
How to Use Global Token Variables
How to Set REST Header Properties
Inbound and Outbound Headers
Custom Header Support
What You May Need to Know About REST Fault Binding
What You May Need to Know About Converting a JSON Interchange Format to a REST Schema
What You May Need to Know About REST References Calling REST Services in the Same Node
Testing the REST Adapter with the HTTP Analyzer
Testing and Configuring REST Reference Binding Components in Oracle Enterprise Manager Fusion Middleware Control
37
Integrating Enterprise JavaBeans with Composite Applications
Introduction to Enterprise JavaBeans Binding Integration with SOA Composite Applications
Integration Through Java Interfaces
Integration Through SDO-Based EJBs
Designing an SDO-Based Enterprise JavaBeans Application
How to Create SDO Objects Using the SDO Compiler
How to Create a Session Bean and Import the SDO Objects
How to Create a Profile and an EAR File
How to Define the SDO Types with an Enterprise JavaBeans Bean
How to Use Web Service Annotations
How to Deploy the Enterprise JavaBeans EAR File
Creating an Enterprise JavaBeans Service in Oracle JDeveloper
How to Integrate Java Interface-based Enterprise JavaBeans with SOA Composite Applications
How to Integrate SDO-based Enterprise JavaBeans with SOA Composite Applications
Designing an Enterprise JavaBeans Client to Invoke Oracle SOA Suite
How to Create a Java Interface-Based Client to Invoke Oracle SOA Suite
How to Invoke an SDO-Enterprise JavaBeans Service
Specifying Enterprise JavaBeans Roles
Configuring Enterprise JavaBeans Binding Support in the Credential Store Framework
How to Configure Enterprise JavaBeans Binding Support in the Credential Store Framework
To configure Enterprise JavaBeans binding support in the credential store framework:
To specify the oracle.jps.credstore.map and oracle.jps.credstore.key properties
To grant SOA infrastructure runtime access to the CSF map store
38
Using Direct Binding to Invoke Composite Services
Introduction to Direct Binding
Direct Service Binding Component
Direct Reference Binding Component
Introduction to the Direct Binding Invocation API
Synchronous Direct Binding Invocation
Asynchronous Direct Binding Invocation
Required JAR Files for Compiling and Running the Direct Binding Java Client Code
SOA Direct Address Syntax
SOA Transaction Propagation
Invoking a SOA Composite Application in Oracle JDeveloper with the Invocation API
How to Create an Inbound Direct Binding Service
How to Create an Outbound Direct Binding Reference
How to Set an Identity for J2SE Clients Invoking Direct Binding
What You May Need to Know About Invoking SOA Composites on Hosts with the Same Server and Domain Names
Samples Using the Direct Binding Invocation API
Part VII Sharing Functionality Across Service Components
39
Oracle SOA Suite Templates and Reusable Subprocesses
Introduction to Oracle SOA Suite Templates
Introduction to Standalone and Inline BPEL Subprocess Invocations
Introduction to a Standalone Subprocess
Introduction to an Inline Subprocess
Differences Between Oracle SOA Suite Templates and Reusable Subprocesses
Creating Oracle SOA Suite Templates
Creating and Using a SOA Project Template
How To Create a SOA Project Template
How to Use a Composite Template in Another SOA Composite
Creating and Using a Service Component Template
How to Create a Service Component Template
How to Use a Service Component Template in Another SOA Composite
Creating and Using a BPEL Scope Activity Template
How to Create a BPEL Scope Activity Template
How to Use a BPEL Scope Activity Template in Another BPEL Process
Managing Templates
Creating Standalone and Inline BPEL Subprocesses in a BPEL Process
How to Create a Standalone BPEL Subprocess
How to Create an Inline Subprocess
How to Create a Standalone Subprocess that Takes a Partner Link as a Parameter
What You May Need to Know About Renaming a Subprocess
40
Creating Transformations with the XSLT Map Editor
Introduction to the XSLT Map Editor
Using the Map View
Using the XSLT View
Using the Components Window
Using the Properties Window
Creating an XSLT Map
How to Create an XSLT Map
How to Create an XSL Map File in Oracle BPEL Process Manager
How to Create an XSL Map File from Imported Source and Target Schema Files in Oracle BPEL Process Manager
How to Create an XSL Map File in Oracle Mediator
What You May Need to Know About Creating an XSL Map File
What Happens at Runtime If You Pass a Payload Through Oracle Mediator Without Creating an XSL Map File
What Happens If You Receive an Empty Namespace Tag in an Output Message
Editing an XSLT Map in Map View
How to Perform a Value Copy by Linking Nodes
How to Create an Empty Node in the Output Document
How to Set a Literal Text Value for a Target Node
How to Add an XSLT Statement
To Add an XSLT Statement:
To Add an xsl:text or xsl:variable Statement:
To Drag and Drop an XSLT statement to a Target Node:
How to Add Conditional Processing Using xsl:if
To add an xsl:if statement using the context menu:
To add an xsl:if statement using drag and drop:
How to Add Conditional Processing Using xsl:choose
To add an xsl:choose statement using the context menu:
To add an xsl:choose statement using drag and drop:
How to Add Loops Using xsl:for-each
To add an xsl:for-each statement using the context menu:
To add an xsl:for-each statement using drag and drop:
How to Add xsl:sort for an xsl:for-each Statement
To add an xsl:sort statement using the context menu:
To add an xsl:sort statement using drag and drop:
How to Duplicate XSLT Instructions
Example: Modifying the Mapping by Changing the XPath Expression
Example: Modifying the Mapping by Deleting and Re-Creating It
How to Duplicate an Element
How to Delete an Element or Attribute
How to Remove Mappings from an Element or Attribute
Editing an XSLT Map in XSLT View
How to Add a Target Element or Attribute Before Mapping
How to Add Elements and Attributes from the Target Schema
To add elements and attributes when target schema is present:
To drag and drop elements and attributes from the target schema tree:
How to Add Literal Elements and Attributes When No Target Schema Is Present
To add a literal element when there is no target schema:
To add a literal attribute when there is no target schema:
How to Create an Empty Node in the Output Document
How to Perform a Value Copy by Linking Nodes
How to Insert an xsl:valueof Statement
How to Set a Literal Text Value for an XSLT Node
How to Set a Literal Text Value Using an xsl:text Instruction
How to Add XSLT Statements
To add an XSLT element using the context menu:
To add XSLT elements from the Components window:
How to Set the Value of an XSLT Expression Attribute
How to Duplicate an Element
How to Delete an Element or Attribute
How to Move an Element
How to Remove Mappings from an Element or Attribute
Using XPath Expressions
How to Modify an Existing Source to Target Mapping
To edit an XPath expression using the Edit XPath dialog
To edit an existing XPath expression using the Properties window
How to Add an XPath Function to an Existing XPath Expression
How to Modify an Existing Function XPath Expression in the Canvas Pane
To set a function parameter using drag and drop:
To delete a function parameter:
How to Edit a Function as a Full XPath Expression
To edit a function as a textual XPath expression using the XPath Edit dialog:
To edit a function as a textual XPath expression using the Properties Window:
How to Edit Individual Function Parameters
To edit the parameters of a function using the Edit Function dialog:
To edit the parameters of a function using the Properties window:
How to Create a New Function in the Canvas Pane
To create an XPath Function using the canvas context menu
To create an XPath function using the Components window
To create an XPath function using the target tree context menu
To create an XPath function by dragging it to the target tree
How to Chain Functions Together
How to Remove an XPath Expression
How to Import User-Defined Functions
Using Auto Map to Map Complex Nodes
How to Set Auto Map Preferences
How to Execute an Auto Map
Checking the Completion Status of the Map
Testing the Map
How to Test the Transformation Mapping Logic
How to Test XSLT Maps that Use DVM Lookup Functions
How to Test XSLT Maps that Use XREF Functions
Working with returnValue:
Adding Additional Rows:
How to Generate Reports
How to Customize Sample XML Generation
Importing an External XSLT Map
Using Variables and Parameters
How to Add Global Variables
How to Add Local Variables in Map View
How to Add Local Variables in XSLT View
How to Add Global Parameters
Substituting Elements and Types
Using Named Templates
How to Create a Named Template
How to Edit a Named Template
How to Add Parameters to an Existing Named Template
How to Invoke a Named Template
Using Template Rules
How to Create a Template Rule
Example: Creating a Template Rule
Invoking the Template
How to Refactor an Existing Map to Create a Template Rule
Using the Execution View
How to Use Execution View to Prevent or Troubleshoot Runtime Errors
Searching for Nodes
Setting Display Options
Troubleshooting Memory Issues
Setting XSL Map Preferences
How to Set XSLT Map Preferences
How to Set the XSL Editor Preferences
How to Import a Customization File to Specify Display Preferences in the XSLT Map Editor
41
Creating Transformations with the XQuery Mapper
Introduction to the XQuery Mapper
About the Source and Target Trees
Using the XQuery Mapper Toolbar
Using the Properties Window
Using the Components Window
Source Editor
Creating an XQuery Map File
How to Create an XQuery Main/Library Module
Using the XQuery Mapper
How to Use Value Mapping to Copy a Leaf Element Value to a Target Leaf Element
How to Use Overwrite Mapping to Copy an Element Subtree to the Target Tree
How to Use Append Mapping to Copy an Element Subtree to the Target Tree
How to Perform Multiple Value Mappings with One Drag and Drop Action
Using XQuery Functions
How to Add an XQuery Function in the XQuery Mapper
To add an XQuery function:
To edit a function's parameters:
Using Library Modules
How to Import a Library Module
Working with Zones and FLWOR Constructs
How to Edit a FLWOR Construct
Using Type Annotations to Improve XQuery Performance
Testing Your XQuery Map
How to Test an XQuery Map
42
Using Business Events and the Event Delivery Network
Introduction to Business Events
EDN Integration with Oracle SOA Suite
Business Event API Support for Remote Clients
Guidelines for Manually Setting Event Delivery Network Properties When Invoking the BusinessEvent.setProperty API
Properties That Cannot Be Manually Set
Properties That Can Be Manually Set
Local and Remote Event Connections
Creating Business Events in Oracle JDeveloper
How to Create a Business Event
Subscribing to or Publishing a Business Event from an Oracle Mediator Service Component
How to Subscribe to a Business Event
How to Publish a Business Event
What Happens When You Create and Subscribe to a Business Event
What Happens When You Publish a Business Event
What You May Need to Know About Subscribing to a Business Event
What You May Need to Know About Publishing Events Across Domains Using SAF
Workaround for Local Subscribers
How to Configure a Foreign JNDI Provider to Enable Administration Server Applications to Publish Events to the SOA Server
How to Configure the Connection Factory When the Oracle WebLogic Server JMS Runs in the Same Local JVM as the JMS Adapter
Subscribing to or Publishing a Business Event from a BPEL Process Service Component
How to Subscribe to a Business Event
How to Publish a Business Event
What Happens When You Subscribe to and Publish a Business Event
How to Integrate Oracle ADF Business Component Business Events with Oracle Mediator
43
Working with Cross References
Introduction to Cross References
Introduction to Cross Reference Tables
Oracle Data Integrator Support for Cross Referencing
Creating and Modifying Cross Reference Tables
How to Create Cross Reference Metadata
What Happens When You Create a Cross Reference
How to Create Custom Database Tables
How to Add an End System to a Cross Reference Table
Populating Cross Reference Tables
About the xref:populateXRefRow Function
About the xref:populateLookupXRefRow Function
About the xref:populateXRefRow1M Function
How to Populate a Column of a Cross Reference Table
Looking Up Cross Reference Tables
About the xref:lookupXRef Function
About the xref:lookupXRef1M Function
About the xref:lookupPopulatedColumns Function
How to Look Up a Cross Reference Table for a Value
Deleting a Cross Reference Table Value
How to Delete a Cross Reference Table Value
Creating and Running the Cross Reference Use Case
How to Create the Use Case
Task 1: How to Configure the Oracle Database and Database Adapter
Task 2: How to Create an Oracle JDeveloper Application and a Project
Task 3: How to Create a Cross Reference
Task 4: How to Create a Database Adapter Service
Task 5: How to Create EBS and SBL External References
Task 6: How to Create the Logger File Adapter External Reference
Task 7: How to Create an Oracle Mediator Service Component
Task 8: How to Specify Routing Rules for an Oracle Mediator Service Component
To create routing rules for an insert operation:
To create routing rules for an update operation:
To create routing rules for an updateID operation:
To create routing rules for a delete operation:
Task 9: How to Specify Routing Rules for the Common Oracle Mediator
To create routing rules for the insert operation:
To create routing rules for a delete operation:
To create routing rules for the update operation:
To create routing rules for the UpdateID operation:
Task 10: How to Configure an Application Server Connection
Task 11: How to Deploy the Composite Application
How to Run and Monitor the XrefCustApp Application
Creating and Running Cross Reference for 1M Functions
How to Create the Use Case
Task 1: How to Configure the Oracle Database and Database Adapter
Task 2: How to Create an Oracle JDeveloper Application and a Project
Task 3: How to Create a Cross Reference
Task 4: How to Create a Database Adapter Service
Task 5: How to Create an EBS External Reference
Task 6: How to Create a Logger File Adapter External Reference
Task 7: How to Create an Oracle Mediator Service Component
Task 8: How to Specify Routing Rules for an Oracle Mediator Component
To create routing rules for the insert operation:
To create routing rules for the update operation:
Task 9: How to Specify Routing Rules for the Common Oracle Mediator
To create routing rules for the insert operation:
To create routing rules for the update operation:
Task 10: How to Configure an Application Server Connection
Task 11: How to Deploy the Composite Application
44
Working with Domain Value Maps
Introduction to Domain Value Maps
Domain Value Map Features
Qualifier Domains
Qualifier Hierarchies
One-to-Many Mappings
Creating Domain Value Maps
How to Create Domain Value Maps
What Happens When You Create a Domain Value Map
Editing a Domain Value Map
How to Add Domains to a Domain Value Map
How to Edit a Domain
How to Add Domain Values to a Domain Value Map
How to Edit Domain Values
Using Domain Value Map Functions
Understanding Domain Value Map Functions
dvm:lookupValue
dvm:lookupValue1M
How to Use Domain Value Map Functions in Transformations
How to Use Domain Value Map Functions in XPath Expressions
What Happens at Runtime
Creating a Domain Value Map Use Case for a Hierarchical Lookup
How to Create the HierarchicalValue Use Case
Task 1: How to Create an Oracle JDeveloper Application and a Project
Task 2: How to Create a Domain Value Map
Task 3: How to Create a File Adapter Service
Task 4: How to Create ProcessOrders Mediator Component
Task 5: How to Create a File Adapter Reference
Task 6: How to Specify Routing Rules
Task 7: How to Configure an Application Server Connection
Task 8: How to Deploy the Composite Application
How to Run and Monitor the HierarchicalValue Application
Creating a Domain Value Map Use Case For Multiple Values
How to Create the Multivalue Use Case
Task 1: How to Create an Oracle JDeveloper Application and Project
Task 2: How to Create a Domain Value Map
Task 3: How to Create a File Adapter Service
Task 4: How to Create the LookupMultiplevaluesMediator Mediator
Task 5: How to Create a File Adapter Reference
Task 6: How to Specify Routing Rules
Task 7: How to Configure an Application Server Connection
Task 8: How to Deploy the Composite Application
How to Run and Monitor the Multivalue Application
Preloading DVM Cache for Faster First-Use
How to Preload DVM Cache at Server Startup
45
Using Oracle SOA Composer with Domain Value Maps
Introduction to Oracle SOA Composer
How to Log in to Oracle SOA Composer
Viewing Domain Value Maps at Runtime
How To View Domain Value Maps at Runtime
Editing Domain Value Maps at Runtime
How to Edit Domain Value Maps at Runtime
Changing to Edit Mode
Adding Rows
Editing Rows
Deleting Rows
Publishing Changes at Runtime
How to Publish Changes at Runtime
How to Discard Changes at Runtime
Detecting Conflicts
Part VIII Completing Your Application
46
Enabling Security with Policies and Message Encryption
Introduction to Policies
Attaching Policies to Binding Components and Service Components
How to Attach Policies to Binding Components and Service Components
To attach a policy to a service component:
How to Override Policy Configuration Property Values
Overriding Client Configuration Property Values
Overriding Server Configuration Property Values
Encrypting and Decrypting Specific Fields of Messages
How to Encrypt and Decrypt Specific Fields of Messages
47
Deploying SOA Composite Applications
Introduction to Deployment
Deployment Prerequisites
Creating the Oracle SOA Suite Schema
Creating a SOA Domain
Configuring a SOA Cluster
Understanding the Packaging Impact
Anatomy of a Composite
Preparing the Target Environment
How to Create Data Sources and Queues
Script for Creation of JMS Resource and Redeployment of JMS Adapter
Script for Creation of the Database Resource and Redeployment of the Database Adapter
How to Create Connection Factories and Connection Pooling
How to Enable Security
How to Set the Business Flow Instance Name or Composite Instance Name at Design Time
Setting the Business Flow Instance Name in Oracle Mediator
Setting the Business Flow Instance Name in a BPEL Process
Setting the Composite Instance Name in a BPEL Process
How to Deploy Trading Partner Agreements and Task Flows
How to Create an Application Server Connection
How to Create a SOA-MDS Connection
What You May Need to Know About Opening the composite.xml File Through a SOA-MDS Connection
Customizing Your Application for the Target Environment Before Deployment
How to Use Configuration Plans to Customize SOA Composite Applications for the Target Environment
Introduction to Configuration Plans
Introduction to a Configuration Plan File
Introduction to Use Cases for a Configuration Plan
How to Use a Configuration Plan when Creating Environment-Independent Processes
How to Create a Configuration Plan in Oracle JDeveloper
How to Create a Configuration Plan with the WLST Utility
How to Attach a Configuration Plan with ant Scripts
How to Create Global Token Variables
Deploying SOA Composite Applications in Oracle JDeveloper
How to Deploy a Single SOA Composite in Oracle JDeveloper
Creating an Application Server Connection
Optionally Creating a Project Deployment Profile
Deploying the Profile
What You May Need to Know About Deploying Human Task Composites with Task Flows to Partitions
How to Deploy Multiple SOA Composite Applications in Oracle JDeveloper
How to Deploy and Use Shared Data Across Multiple SOA Composite Applications in Oracle JDeveloper
Create a JAR Profile and Include the Artifacts to Share
Create a SOA Bundle that Includes the JAR Profile
Deploy the SOA Bundle with Oracle JDeveloper
To deploy the SOA bundle with ant:
Use Shared Data
Creating a SOA-MDS Connection
Creating a BPEL Process
How to Deploy an Existing SOA Archive in Oracle JDeveloper
Deploying and Managing SOA Composite Applications with the WLST Utility
Deploying and Managing SOA Composite Applications with ant Scripts
How to Use ant to Automate the Testing of a SOA Composite Application
How to Use ant to Compile a SOA Composite Application
How to Use ant to Package a SOA Composite Application into a Composite SAR File
How to Use ant to Deploy a SOA Composite Application
How to Use ant to Undeploy a SOA Composite Application
How to Use ant to Export a Composite into a SAR File
How to Use ant to Export Postdeployment Changes of a Composite into a JAR File
How to Use ant to Import Postdeployment Changes of a Composite
How to Use ant to Export Shared Data of a Given Pattern into a JAR File
How to Use ant to Remove a Top-level Shared Data Folder
How to Use ant to Start a SOA Composite Application
How to Use ant to Stop a SOA Composite Application
How to Use ant to Activate a SOA Composite Application
How to Use ant to Retire a SOA Composite Application
How to Use ant to Assign the Default Version to a SOA Composite Application
How to Use ant to List the Deployed SOA Composite Applications
How to Use ant to List All Available Partitions in the SOA Infrastructure
How to Use ant to List All Composites in a Partition
How to Use ant to Create a Partition in the SOA Infrastructure
How to Use ant to Delete a Partition in the SOA Infrastructure
How to Use ant to Start All Composites in the Partition
How to Use ant to Stop All Composites in the Partition
How to Use ant to Activate All Composites in the Partition
How to Use ant to Retire All Composites in the Partition
How to Use ant to Manage SOA Composite Applications
Deploying SOA Composite Applications from Oracle Enterprise Manager Fusion Middleware Control
Deploying SOA Composite Applications to a Cluster
Deploying SOA Composite Applications with No Servers Running
Offline Deployment Configuration Files
Offline Deployment Configuration List File
Offline Deployment Configuration File
Relative Configuration File Paths
Order of Deployment
How to Deploy SOA Composite Applications and Shared Data with No Server Running
What You May Need to Know About Offline Composite Deployment in a Cluster Environment
What You May Need to Know About Deploying SOA Composite Applications that Reference Shared Data That is Not in the MDS Repository
Postdeployment Configuration
Security
Updating Connections
Updating Data Sources and Queues
Attaching Policies
Testing and Troubleshooting
Verifying Deployment
Initiating an Instance of a Deployed Composite
Automating the Testing of Deployed Composites
Recompiling a Project After Receiving a Deployment Error
Reducing Java Code Size to Resolve Java Compilation Errors
Troubleshooting Common Deployment Errors
Common Oracle JDeveloper Deployment Issues
Common Configuration Plan Issues
Deploying to a Managed Oracle WebLogic Server
Deploying to a Two-Way, SSL-Enabled Oracle WebLogic Server
Deploying with an Unreachable Proxy Server
Releasing Locks to Resolve ADF Task Form EAR File Deployment Errors
Increasing Memory to Recover from Compilation Errors
Oracle JDeveloper Compilation Error When Property Alias Definition is Missing for a Receive Activity with a Correlation Set
ADF Binding Service Names Must Be Unique Across All Deployed SOA Composite Applications
48
Using the Oracle SOA Suite Development Maven Plug-In
Introduction to the Oracle SOA Suite Maven Plug-in
POM Files and Archetypes
Maven Plug-in Goals
compile
package
deploy
test
undeploy
Using Maven Online Help
Installing the Oracle SOA Suite Maven Plug-in
How to Configure the Oracle SOA Suite Maven Plug-In
Using the Oracle SOA Suite Maven Archetype
49
Debugging and Auditing SOA Composite Applications
Introduction to the SOA Debugger
Debugging a SOA Composite Application
How to Start the SOA Debugger
How to Set Breakpoints and Initiate Debugging
How to Step Through a Debugging Session
How to End or Detach from a Debugging Session
How to Remove Breakpoints
How to View Adapter Properties
How to View Threads
Testing SOA Composite Applications with the HTTP Analyzer
Auditing SOA Composite Applications at the BPEL Activity Level
How to Audit SOA Composite Applications at the BPEL Activity Level
50
Automating Testing of SOA Composite Applications
Introduction to the Composite Test Framework
Test Cases Overview
Overview of Test Suites
Overview of Emulations
Overview of Assertions
Introduction to the Components of a Test Suite
Process Initiation
Emulations
Assertions
Message Files
Creating Test Suites and Test Cases with the Create Composite Test Wizard
Editing the Contents of Test Cases in Test Mode in the SOA Composite Editor
How to Initiate Inbound Messages
How to Emulate Outbound Messages
How to Emulate Callback Messages
How to Emulate Fault Messages
How to Create Assertions
Creating Assertions on a Part Section, Nonleaf Element, or Entire XML Document
Creating Assertions on a Leaf Element
What You May Need to Know About Assertions
Testing BPEL Process Service Components
Overview of Assertions on BPEL Process Activities
Overview of a Fast Forward Action on a Wait Activity
Overview of Assert Activity Execution
How to Create BPEL Process Service Component Tests
How to Create Assertions
How to Bypass a Wait Activity
How to Specify the Number of Times to Execute an Activity
Deploying and Running a Test Suite
How to Deploy and Run a Test Suite from Oracle JDeveloper
How to Deploy and Run a Test Suite from Oracle Enterprise Manager Fusion Middleware Control
How to Deploy and Run a Test Suite with a WLST Command
How to Deploy and Run a Test Suite with an ant Script
Part IX Advanced Topics
51
Managing Large Documents and Large Numbers of Instances
Best Practices for Handling Large Documents
Use Cases for Handling Large Documents
Passing Binary Objects as Base64-Encoded Text in XML Payloads
SOAP Inline
SOAP MTOM
Opaque Passed by File/FTP Adapters
Opaque Passed by Oracle B2B
End-to-End Streaming with Attachments
SOAP with Attachments
Working with Streaming Attachments
Creating Composites that Use MIME Attachments
Performance Overhead and Pass Through Attachments
Properties for Streaming Attachments
Streaming Attachments from the SOA Web Service Binding Layer
Reading and Encoding SOAP Attachment Content
Sending Attachment Streams
Overriding Pass Through Settings for Attachments in Oracle Mediator
Sharing Attachments Using Synchronous Flows
Attachment Options of File/FTP Adapters
Oracle B2B Attachment
Sending and Receiving MTOM-Optimized Messages to SOA Composite Applications
Scenarios for Storing SwA and MTOM-Optimized Attachments to the Database
Processing Large XML with Repeating Constructs
Debatching with the File/FTP Adapter
Chunking with the File/FTP Adapters
Processing Large XML Documents with Complex Structures
Streaming with the File/FTP Adapters
Oracle B2B Streaming
Limitations on Concurrent Processing of Large Documents
Opaque Schema for Processing Large Payloads
JVM Memory Sizing Recommendations for SOA Composite Applications
General Tuning Recommendations
General Recommendations
Increasing the HTTP POST Timeout
Increasing the Timeout Value
Setting Audit Levels from Oracle Enterprise Manager for Large Payload Processing
Using the Assign Activity in Oracle BPEL Process Manager and Oracle Mediator
Using XSLT Transformations on Large Payloads (For Oracle BPEL Process Manager)
Using XSLT Transformations on Large Payloads (For Oracle Mediator)
Using XSLT Transformations for Repeating Structures
Processing Large Documents in Oracle B2B
MDSInstance Cache Size
Protocol Message Size
Number of Threads
Stuck Thread Max Time Parameter
Tablespace
Setting a Size Restriction on Inbound Web Service Message Size
Using XPath Functions to Write Large XSLT/XQuery Output to a File System
Best Practices for Handling Large Metadata
Boundary on the Processing of Large Numbers of Activities in a BPEL Process
Using Large Numbers of Activities in BPEL Processes (Without FlowN)
Using Large Numbers of Activities in BPEL Processes (With FlowN)
Using a Flow With Multiple Sequences
Using a Flow with One Sequence
Using a Flow with No Sequence
Large Numbers of Oracle Mediators in a Composite
Importing Large Data Sets in Oracle B2B
Best Practices for Handling Large Numbers of Instances
Instance and Rejected Message Deletion with the Purge Script or Oracle Enterprise Manager Fusion Middleware Control
52
Customizing SOA Composite Applications
Introduction to Customizing SOA Composite Applications
Creating the Customizable Composite
How to Create Customization Classes
How to Create the Customizable Composite
How to Add an XSD or WSDL File
How to Search for Customized Activities in a BPEL Process
What You May Need to Know About Resolving Validation Errors in Oracle JDeveloper
What You May Need to Know About Resolving a Sequence Conflict
To resolve the conflict:
What You May Need to Know About Compiling and Deploying a Customized Application
Customizing the Vertical Application
How to Customize the Vertical Application
Customizing the Customer Version
How to Customize the Customer Version
Upgrading the Composite
How to Upgrade the Core Application Team Composite
How to Upgrade the Vertical Applications Team Composite
How to Upgrade the Customer Composite
53
Defining Composite Sensors
Introduction to Composite Sensors
Restrictions on Use of Composite Sensors
Adding Composite Sensors
How to Add Composite Sensors
How to Add a Variable
How to Add an Expression
How to Add a Property
What You May Need to Know About Duplicate Composite Sensor Names
Monitoring Composite Sensor Data During Runtime
Creating and Managing Composite Sensors During Runtime from Oracle SOA Composer
What You May Need to Know About Viewing Composite Sensor Changes in Oracle SOA Composer
54
Creating Dynamic Business Processes
Introduction to Two-Layer Business Process Management
Creating a Phase Activity
How to Create a Phase Activity
What Happens When You Create a Phase Activity
What Happens at Runtime When You Create a Phase Activity
What You May Need to Know About Creating a Phase Activity
Creating the Dynamic Routing Decision Table
How to Create the Dynamic Routing Decision Table
What Happens When You Create the Dynamic Routing Decision Table
55
Integrating the Spring Framework in SOA Composite Applications
Introduction to the Spring Service Component
Integration of Java and WSDL-Based Components in the Same SOA Composite Application
Java and WSDL-Based Integration Example
Using Callbacks with the Spring Framework
Creating a Spring Service Component in Oracle JDeveloper
How to Create a Spring Service Component in Oracle JDeveloper
What You May Need to Know About Java Class Errors During Java-to-WSDL Conversions
Defining Custom Spring Beans Through a Global Spring Context
How to Define Custom Spring Beans Through a Global Spring Context
Using the Predefined Spring Beans
IHeaderHelperBean.java Interface for headerHelperBean
IInstanceHelperBean.java Interface for instancerHelperBean
ILoggerBean.java Interface for loggerBean
How to Reference Predefined Spring Beans in the Spring Context File
JAXB and OXM Support
Extended Mapping Files
Configuring Groovy and Aspectj Classes with the Spring Service Component
Troubleshooting Spring Errors
Spring Bean Interface to Invoke Cannot Be Found
Unable to Add a Spring Service Component in the SOA Composite Editor
Part X Appendices
A
BPEL Process Activities and Services
Introduction to Activities and Components
Introduction to BPEL 1.1 and 2.0 Activities
Tabs Common to Many Activities
Annotations Tab
Assertions Tab
Correlations Tab
Documentation Tab
Headers Tab
Properties Tab
Skip Condition Tab
Sources and Targets Tabs
Timeout Tab
Using the Native Format Builder Wizard Outside of Adapter Configuration
To create a native format schema from the Applications Window:
To edit an existing native format schema from the Applications Window:
Assign Activity
Assert Activity
Bind Entity Activity
Call Activity
Compensate Activity
CompensateScope Activity
Create Entity Activity
Dehydrate Activity
Dynamic Partner Link Activity
Email Activity
Empty Activity
Exit Activity
Flow Activity
FlowN Activity
forEach Activity
If Activity
IM Activity
Invoke Activity
Java Embedding Activity
Partner Link Activity
Phase Activity
Pick Activity
To put the correlation syntax before the assign activity:
Receive Activity
Receive Signal Activity
Remove Entity Activity
RepeatUntil Activity
Replay Activity
Reply Activity
Rethrow Activity
Schedule Job
Scope Activity
Sequence Activity
Signal Activity
SMS Activity
Switch Activity
Terminate Activity
Throw Activity
Translate Activity
User Notification Activity
Validate Activity
Voice Activity
Wait Activity
While Activity
XQuery Transform Activity
XSLT Transform Activity
Introduction to BPEL Services
B
XPath Extension Functions
Advanced Functions
batchProcessActive
batchProcessCompleted
copyList
create-nodeset-from-delimited-string
createDelimitedString
createEssParameter
doStreamingTranslate
doTranslateFromNative
doTranslateToNative
format
genEmptyElem
generate-guid
get-content-from-file-function
getApplicationName
getAttachmentContent
getAttachmentProperty
getChildElement
getComponentInstanceID
getComponentName
getCompositeInstanceID
getCompositeName
getCompositeURL
getECID
getFaultAsString
getFaultAsXML
getFaultName
getMilestoneName
getOwnerDocument
getParentComponentInstanceID
getRevision
getTaskReminderDuration
instanceOf
lookup-xml
parseEscapedXML
parseXML
processScalableDocumentToNative
processXSLTAttachmentFromNativeToNative
processXSLTAttachmentFromNativeToStream
processXSLTAttachmentToNativeStream
processXSLTAttachmentToStream
processXSLTForScalableDocument
setCompositeInstanceTitle
BPEL Extension Functions
BPEL Extension Functions in BPEL 1.1 and BPEL 2.0
getLinkStatus
getVariableData
selectionFailure Fault is Thrown if the Result Node Set is a Size Other Than One During Execution
getVariableProperty (For BPEL 1.1)
getVariableProperty (For BPEL 2.0)
doXslTransform (For BPEL 2.0)
BPEL XPath Extension Functions
addQuotes
authenticate
countNodes
doXSLTransform
doXSLTransformForDoc
doc
formatDate
generateGUID
getConfigProperty
getContentAsString
getConversationId
getCreator
getCurrentDate
getCurrentDateTime
getCurrentTime
getElement
getInstanceId
getNodeValue
getNodes
getPreference
getProcessId
getProcessOwnerId
getProcessURL
getProcessVersion
integer
listUsers
lookupUser
parseEscapedXML
processXQuery
processXQuery10
processXQuery2004
processXSLT
readBinaryFromFile
readBinaryFromFileWithMimeHeaders
readFile
search
toCDATA
tryToCastToBoolean
writeBinaryToFile
getGroupIdsFromGroupAlias
getUserIdsFromGroupAlias
Conversion Functions
boolean
number
string
DVM Functions
lookupValue
lookupValue1M
Database Functions
lookup-table
query-database
sequence-next-val
Date Functions
add-dayTimeDuration-to-dateTime
current-date
current-dateTime
To display the datetime value in seconds:
current-time
day-from-dateTime
format-dateTime
hours-from-dateTime
minutes-from-dateTime
month-from-dateTime
seconds-from-dateTime
subtract-dayTimeDuration-from-dateTime
timezone-from-dateTime
year-from-dateTime
Identity Service Functions
getDefaultRealmName
getGroupProperty
getManager
getManagerFromManagementChain
getReportees
getSupportedRealmNames
getUserProperty
getUserRoles
getUsersInAppRole
getUsersInGroup
isUserInAppRole
isUserInRole
lookupGroup
lookupUser
Logical Functions
and
equals
false
greater
greater equals
less
less equals
not
not equals
or
true
Mathematical Functions
abs
add
ceiling
count
divide
floor
max-value-among-nodeset
min-value-among-nodeset
mod
multiply
round
square-root
subtract
sum
unary
Node Set Functions
last
local-name
name
namespace-uri
position
union
String Functions
compare
compare-ignore-case
concat
contains
create-delimited-string
ends-with
format-string
get-content-as-string
get-localized-string
index-within-string
last-index-within-string
left-trim
lower-case
matches
normalize-space
right-trim
starts-with
string-length
substring
substring-after
substring-before
translate
upper-case
Workflow Service Functions
clearTaskAssignees
createWordMLDocument
dynamicTaskAssign
getNotificationProperty
getNumberOfTaskApprovals
getPreviousTaskApprover
getTaskAttachmentByIndex
getTaskAttachmentByName
getTaskAttachmentContents
getTaskAttachmentsCount
getTaskResourceBundleString
XREF Functions
lookupPopulatedColumns
lookupXRef
lookupXRef1M
markForDelete
populateLookupXRefRow
populateXRefRow
populateXRefRow1M
Building XPath Expressions in the Expression Builder in Oracle JDeveloper
How to Use the Expression Builder
Introduction to the XPath Building Assistant
How to Use the XPath Building Assistant
Using the XPath Building Assistant in the XSLT Mapper
Function Parameter Tool Tips
Syntactic and Semantic Validation
Creating Expressions with Free Form Text and XPath Expressions
Using Double Slashes for Directory Paths in XPath Functions on Windows Can Cause Errors
Creating User-Defined XPath Extension Functions
How to Implement User-Defined XPath Extension Functions
How to Implement Functions for the XSLT Mapper
How to Implement Functions for All Other Components
How to Configure User-Defined XPath Extension Functions
How to Deploy User-Defined Functions to Runtime
C
Deployment Descriptor Properties
Introduction to Deployment Descriptor Properties
How to Define Deployment Descriptor Properties in the Property Inspector
How to Get the Value of a Preference within a BPEL Process
D
Understanding Sensor Public Views and the Sensor Actions XSD
Introduction to Sensor Public Views and the Sensor Actions XSD File
Sensor Public Views
Schema
BPEL_PROCESS_INSTANCES
BPEL_ACTIVITY_SENSOR_VALUES
BPEL_FAULT_SENSOR_VALUES
BPEL_VARIABLE_SENSOR_VALUES
Sensor Actions XSD File
E
Propagating Normalized Message Properties Through Message Headers
Introduction to Normalized Messages
Oracle Web Services Addressing Properties
How to Set Normalized Message Properties in Message Headers
Manipulating Normalized Message Properties with bpelx Extensions
BPEL 2.0 bpelx Extensions Syntax
BPEL 1.1 bpelx Extensions Syntax
F
Interfaces Implemented By Rules Dictionary Editor Task Flow
The MetadataDetails Interface
The getDocument Method
The getRelatedDocument Method
The setDocument Method
The NLSPreferences Interface
G
Oracle SOA Suite Configuration Properties Road Map
Oracle BPEL Process Manager Deployment Descriptor Properties
Normalized Message Header Properties
Oracle JCA Adapter Message Header Properties
Oracle BPEL Process Manager and Oracle Web Services Addressing Message Header Properties
Oracle B2B Message Header Properties
SOA Composite Application Properties
Fault Policy and Adapter Rejected Message Properties
Oracle B2B System Properties
Oracle Healthcare Properties
Oracle Business Activity Monitoring Properties
Oracle Enterprise Manager Fusion Middleware Control Property Pages
SOA Infrastructure Properties
Oracle BPEL Process Manager Properties
Human Workflow Notification and Task Service Properties
Oracle Mediator Properties
Cross Reference Properties
Oracle B2B Properties
Service and Reference Binding Component Properties
Global Token Variables and Automatic Database Purging Properties
System MBean Browser Advanced Properties
SOA Infrastructure Advanced Properties
Oracle BPEL Process Manager Advanced Properties
Oracle Mediator Advanced Properties
Human Workflow Notification and Task Service Advanced Properties
Oracle B2B Advanced Properties
H
Working with Large Schemas in the XSLT Editor
Sparse Mappings
Quick Start for XSLT View
Non-Sparse Mappings
Reducing Textual Clutter
Searching Trees
Copying and Modifying a Large Input Document
Generating Test Files with Element and Type Substitutions
Scripting on this page enhances content navigation, but does not change the content in any way.