Understanding a Request-Reply-Callback Message Exchange Pattern
24.1 Introduction to the Business Rule Service Component
A Decision component, also called a business rule service component, supports use of Oracle Business Rules in a SOA composite application. Decision components support the following SOA composite usage: ■ A Decision component can be used within a SOA composite and wired to a BPEL component. ■ A Decision component can be used within a SOA composite and used directly to run business rules. ■ A Decision component can be used with the dynamic routing capability of Mediator. For more information, see Chapter 19, Creating Oracle Mediator Routing Rules. ■ A Decision component can be used with the Advanced Routing Rules in Human Workflow. For more information, see Section 27.4, Associating the Human Task Service Component with a BPEL Process.Parts
» Oracle Fusion Middleware Online Documentation Library
» Introduction to Service-Oriented Architecture
» Introduction to Services Oracle Fusion Middleware Online Documentation Library
» Introduction to Oracle SOA Suite
» Standards Used by Oracle SOA Suite to Enable SOA
» Service Components Service Component Architecture within SOA Composite Applications
» Binding Components Service Component Architecture within SOA Composite Applications
» Wires Service Component Architecture within SOA Composite Applications
» Service Infrastructure Runtime Behavior of a SOA Composite Application
» Approaches for Designing SOA Composite Applications Learning Oracle SOA Suite
» What Happens When You Create a SOA Application and Project
» Click OK. How to Add a Service Component
» From the File main menu, select Save All.
» What You May Need to Know About Adding and Deleting a Service Component
» Click Finish. In the Application Navigator, double-click composite.xml or single-click
» Configure the settings for the service. For help with a service editor, click Help or Click OK.
» If you want to select a new message schema, click Help or press F1 for
» Configure the settings for the reference binding component. For help with a
» Click OK. 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
» Click the Source tab to review what you have created.
» What You May Need to Know About Adding and Deleting Wires
» Adding Security Oracle Fusion Middleware Online Documentation Library
» How to Test a Deployed Composite
» Store Front Module Introduction to the Fusion Order Demo
» WebLogic Fusion Order Demo Application
» Task 1: Install Oracle JDeveloper Studio
» Task 2: Install the Fusion Order Demo Application
» If you are deploying remotely from one computer that has Oracle JDeveloper to
» Understanding the OrderBookingComposite Flow
» Click Finish. Task 1: Create a Connection to an Oracle WebLogic Server
» Enter weblogic for the User Name and the password for that administrator in
» Click Next. Optional Task 2: Create a Connection to the Oracle BAM Server
» Click Test Connection. Optional Task 2: Create a Connection to the Oracle BAM Server
» Click Finish. Optional Task 2: Create a Connection to the Oracle BAM Server
» To the right of the Connection field, click the Edit icon, as shown in
» In the Summary page, click Finish. From the Application menu, choose Deploy StoreFrontModule.
» From the Application Navigator, expand OrderBookingComposite, then SOA
» From the Oracle JDeveloper main menu, choose File Save All. Keep the
» From the Application Navigator, expand bin, and then Resources.
» From the Component Palette, drag a BPEL Process service component into the
» From the Application Navigator, select File New Applications SOA
» In the Application Name dialog, enter an application name in the Application
» In the Directory field, enter a directory path in which to create the SOA
» Click Next. Oracle Fusion Middleware Online Documentation Library
» In the Project Name dialog, enter a name in the Project Name field.
» In the Project SOA Settings dialog, select Composite With BPEL Process.
» Click Finis Oracle Fusion Middleware Online Documentation Library
» Introduction to Activities Oracle Fusion Middleware Online Documentation Library
» Introduction to Partner Links
» Partner Links for an Outbound Adapter
» Introduction to Technology Adapters
» Introduction to BPEL Process Monitors
» Introduction to One-Way Messages
» Introduction to Synchronous Interactions
» Introduction to Asynchronous Interactions
» Introduction to Asynchronous Interactions with a Timeout
» Introduction to Asynchronous Interactions with a Notification Timer
» Introduction to One Request, Multiple Responses
» Introduction to One Request, One of Two Possible Responses
» Introduction to One Request, a Mandatory Response, and an Optional Response
» Introduction to Partial Processing Introduction to Multiple Application Interactions
» Data Manipulation and XPath Standards
» Right-click the Variables folder and select Expand All Child Nodes.
» In the second Variables folder, right-click and select Create Variable.
» In the Name field, enter a name.
» Click the Entity Variable checkbox and select the Search icon to the right of the
» To the right of the Entity Variable field, click the Search icon.
» In the Unique Keys section, click the Add icon.
» Click OK to close the Specify Key dialog.
» How to Declare SDO-based Variables
» How to Convert from XML to SDO
» How To Assign a Literal XML Element
» How to Copy Between Variables
» How to Access Fields Within Element-Based and Message Type-Based Variables
» How To Use Mathematical Calculations with XPath Standards
» How to Assign Boolean Values
» How to Assign a Date or Time
» How to Manipulate Attributes
» How to Use bpelx:insertBefore
» How to Use bpelx:insertAfter
» How to Use bpelx:rename and XSD Type Casting
» How to Use Assign Extension Attributes
» From the BPEL Constructs section of the Component Palette, drag an Assign
» Double-click the Assign activity.
» In the General tab, enter a name for the activity and select the Validate
» Click the Source tab to view the syntax.
» From the Oracle Extensions section of the Component Palette, drag a Validate
» Double-click the Validate icon.
» Click the Add icon to select the variable to validate.
» Select the variable, then click OK.
» What Happens When You Map WSDL Message Parts
» Importing Process Definitions in BPEL 2.0
» How to Statically Index into an XML Data Sequence That Uses Arrays
» How to Use SOAP-Encoded Arrays
» How to Determine Sequence Size
» How to Dynamically Index by Applying a Trailing XPath to an Expression
» What You May Need to Know About Using the Array Identifier
» How To Convert from a String to an XML Element
» How to Receive SOAP Headers in BPEL How to Send SOAP Headers in BPEL
» Select the Extensions folder, then click the Add icon.
» In the Namespace field, enter the extension namespace to declare. This namespace
» If you want the extensions to be recognized by the BPEL process, select the Must
» Click OK. How to Declare Extension Namespaces
» Click Close. How to Declare Extension Namespaces
» What Happens When You Create an Extension
» Introduction to Invoking a Synchronous Web Service
» The Assign_CreditCheckInput assign activity packages the data from the client.
» The InvokeCheckCreditCard activity calls the CreditCardAuthorization service.
» The Switch_EvaluateCCResult switch activity in
» What Happens When You Invoke a Synchronous Web Service
» What You May Need to Know About SyncMaxWaitTime and Synchronous Requests Not Timing Out
» Calling a One-Way Mediator with a Synchronous BPEL Process
» Introduction to Invoking an Asynchronous Web Service
» Drag a Partner Link icon into the right Partner Links swimlane.
» Enter the variable name and select Message Type from the options provided:
» Click OK. How to Invoke an Asynchronous Web Service
» Double-click the invoke activity to display the Invoke dialog.
» In the Invoke dialog, select the partner link from the Partner Link list for this
» Double-click the receive activity and change its name to receive_invoke.
» From the Partner Link list, select the partner link for this example, LoanService is
» From the Operation list, select onResult. Do not select the Create Instance
» Select the variable you created in Step 3 through Step 7 of
» Performing Additional Activities Click OK.
» What Happens When You Invoke an Asynchronous Web Service
» What You May Need to Know About Limitations on BPEL 2.0 IMA Support
» What Happens When You Specify a Conversation ID
» Create a WSDL file that contains multiple services that use the same portType.
» Create a reference binding component entry in the composite.xml file that uses
» How to Use WS-Addressing in an Asynchronous Service
» Click Return or click a node in the System MBean Browser pane.
» Click OK. In the Service Name field of the Service Name dialog, enter SecondFileRead
» Select an appropriate XSD schema file. For this example, Book1_6.xsd is the
» Creating an Initial Receive Activity
» In the Create Variable dialog, click OK.
» Ensure that you selected the Create Instance checkbox, as mentioned in Step 4.
» Click OK. How to Use Correlation Sets in an Asynchronous Service
» Double-click the receive icon to display the Receive dialog.
» From the Component Palette, drag a third Receive activity beneath the
» Creating an Initial Correlation Set
» In the second Correlation Sets folder, right-click and select Create Correlation Set.
» In the Name field of the Create Correlation Set dialog, enter CorrelationSet1.
» In the Properties section, click the Add icon to display the Property Chooser
» Select Properties, then click the Add icon first icon at the top to display the
» In the Name field, enter NameCorr.
» To the right of the Type field, click the Browse icon.
» In the Type Chooser dialog, select string and click OK.
» Click OK to close the Create Property dialog, the Property Chooser dialog, and the
» Right-click the Correlation Sets folder and select Create Correlation Set.
» In the Name field of the Create Correlation Set dialog, enter CorrelationSet2.
» Select Properties, then click the Add icon to display the Create Property dialog.
» In the Name field, enter IDCorr.
» In the Type Chooser dialog, select double and click OK.
» Associating the First Correlation Set with a Receive Activity
» Creating Property Aliases for NameCorr You create the following two property
» In the Query field, press Ctrl+Space to define the following XPath expression:
» Step 7: Reviewing WSDL File Content
» Click WSBinding. Introduction to Parallel Flows in BPEL Processes
» How to Create a Parallel Flow
» What Happens When You Create a Parallel Flow
» Drag appropriate activities into the flow activity to define as the source with the
» Click Apply, then OK. Click Apply, then OK.
» Customizing the Number of Flow Activities with the flowN Activity in BPEL 1.1
» If you want to specify a completion condition that enables the forEach activity to
» What Happens When You Create a forEach Activity
» Introduction to Conditional Branching
» What Happens When You Create a Switch Activity
» In the Condition field, enter a condition, as shown in
» What Happens When You Create an If Activity
» What Happens When You Create a While Activity
» In the Condition field, click the XPath Expression Builder icon to enter an XPath
» Enter a boolean XPath expression condition, and click OK.
» What Happens When You Create a repeatUntil Activity
» Click the Skip Condition tab.
» What Happens When You Specify XPath Expressions to Bypass Activity Execution
» Introduction to a Fault Handler
» BPEL 1.1 Standard Faults Introduction to BPEL Standard Faults
» BPEL 2.0 Standard Faults Introduction to BPEL Standard Faults
» Business Faults Introduction to Categories of BPEL Faults
» Runtime Faults Introduction to Categories of BPEL Faults
» Create a fault policy file for example, named fault-policies.xml. This file
» 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
» What You May Need to Know Executing the Retry Action with Multiple Faults in the Same Flow
» What You May Need to Know About Binding Level Retry Execution Within Fault Policy Retries
» How to Catch BPEL Runtime Faults
» What Happens When You Rethrow Faults
» In the Comment field, enter a brief description of the functionality of the scope.
» In the Image field, click the Search icon to optionally change the graphical image
» Click OK. How to Add Descriptive Notes and Images to a Scope Activity
» To edit the note, double-click it.
» 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
» Select the fault in the Fault Chooser dialog, and click OK. Click OK.
» What Happens When You Create a Replay Activity
» Double-click the terminate activity.
» What Happens When You Create a Terminate Activity
» Double-click the Exit activity, as shown in
» What Happens When You Create an Exit Activity
» bpelx:postAssert and bpelx:preAssert Extensions
» Use of faultName and message Attributes
» Multiple Assertions Throwing Faults with Assertion Conditions
» How to Disable Assertions What Happens When You Create Assertion Conditions
» Oracle BPEL Process Manager Transaction Semantics
» Introduction to Execution of One-way Invocations
» How to Wrap Java Code as a SOAP Service
» How to Embed Java Code Snippets in a BPEL Process in BPEL 2.0
» 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
» In the Value field, specify the class path. Click Apply.
» How To Use Java Embedding in a BPEL Process in Oracle JDeveloper
» Redeploy the BPEL project and retest.
» In the Component Palette, expand BPEL Constructs. Drag a Pick activity into the designer.
» Double-click the onMessage branch.
» Edit its attributes to receive the response from the loan service.
» Click Add onAlarm, as shown in
» Click OK. 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
» Timeout Settings Relative from When the Activity is Invoked
» Timeout Settings as an Absolute Date Time
» Event Added to the BPEL Instance Audit Trail During an Activity Timeout
» Recoverable Timeout Activities During a Server Restart Refresh Expiration Alarm Table
» In the Component Palette, expand BPEL Constructs. Drag a Receive activity into the designer.
» What Happens When You Set Timeouts for Request-Response Operations in Receive Activities
» Introduction to Event and Timeout Concepts Setting Timeouts for Synchronous Processes
» BPEL File Definition for the Master Process
» Enter the details described in Click OK. Drag a Receive Signal activity into the designer.
» Click OK. Drag a Signal activity into the designer. Double-click the Signal activity.
» Complete all remaining fields in the Invoke dialog, and click OK. In the designer, click Source.
» Introduction to the Notification Service
» Formatting the Body of an Email Message as HTML
» Click OK. How to Configure the SMS Notification Channel
» Click OK. How to Configure the Voice Notification Channel
» See 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
» How to Create and Send Headers for Notifications
» Click the Add icon to add a row to the Header and Name columns.
» In the Header column, click the field to display a list for selecting a value.
» In the Name column, enter a value.
» Click OK. How to Allow the End User to Select Notification Channels
» Introduction to Notification Channel Setup Introduction to Sensors
» Click the Browse icon above the Namespace field to select to create a fault sensor,
» In the Structure window, right-click the Sensor Actions folder. Select Create Sensor Action.
» Click Libraries and Classpath.
» Introduction to Oracle Mediator
» Introduction to the Mediator Editor Environment
» When you reach the Configure SOA Settings page, select Composite with Click Finish.
» On the Configure SOA Settings page of the New Gallery dialog, select Composite
» Under Categories, select Service Components, and then select Mediator from the
» What Happens When You Create an Oracle Mediator Without an Interface Definition
» To the right of the Event Definition File field, click Search and then browse to and Click OK.
» To the right of the WSDL URL field, click Define Service.
» What Happens When You Create an Oracle Mediator from a WSDL File
» What Happens When You Create an Oracle Mediator with a Synchronous Interface Definition
» What Happens When You Create an Oracle Mediator with an Asynchronous Interface Definition
» Click Add. To the right of the Event Definition field, click Search.
» In the Run as publisher field, select whether to run the event subscription under
» In the Expression field, enter an XPath expression and click OK.
» What Happens When You Create an Oracle Mediator for an Event Subscription
» What You May Need to Know About the Mediator Editor
» In the Interface Type field, select Synchronous Interface.
» Select the root element of the XSD file and click OK.
» Click OK on the Add Message Part dialog. Click OK.
» From the File menu, select Save All.
» Specifying Operation or Event Subscription Properties Introduction to Routing Rules
» In the Routing Rules section, click Add next to the operation for which you are
» Click Service. How to Create Static Routing Rules
» Click OK. How to Create Static Routing Rules
» Click Event. How to Create Static Routing Rules
» To the right of the Event Definition field, click Search.
» Select an event .edl file and click OK.
» 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 Multiple Callbacks
» Click OK In the Faults section, click the Add another fault routing button shown in
» How to Create Transformations
» In the From section, select any of the following options from the Type list:
» In the To section, select any of the following options:
» Click OK in the Assign Value dialog.
» What You May Need to Know About the Assign Activity
» Click OK. In the Oracle JDeveloper Projects Explorer, right-click the name of the project
» Select Project Properties. How to Create Static Routing Rules
» In the left panel, select Libraries and Classpath, as shown in
» Click Add JARDirectory. How to Create Static Routing Rules
» Once the dynamic routing is created, you can modify the associated decision
» What You May Need to Know About Using Dynamic Routing Rules How to Define Default Routing Rules
» Click Service. Navigate to CustomerRouterProject References USCustomer and select Click OK.
» To the right of the Transform Using field, click the icon.
» Select Create New Mapper File and click OK.
» Drag and drop the imp1:CustomerData source element to the imp1:Customer
» From the During Auto Map options, deselect Match Elements Considering their
» From the Template list, select Asynchronous Interface.
» Deselect Create Composite Service with SOAP Bindings. Click OK.
» Double-click the Mediator Oracle Mediator.
» In the Routing Rules section, click Add to the far right side of execute and then
» Select Service. How to Create the AsyncMediator Use Case
» Navigate to AsyncMediatorSample BPEL Processes ServerBPELProcess
» How to Work with Multipart Request Messages
» How to Work with Multipart Reply, Fault, and Callback Source Messages
» How to Work with Multipart Target Messages
» Fault Policies Introduction to Oracle Mediator Error Handling
» Fault Bindings Introduction to Oracle Mediator Error Handling
» Error Groups in Oracle Mediator
» Fault Recovery Using Oracle Enterprise Manager Fusion Middleware Control
» Schema Definition File for fault-policies.xml
» Schema Definition File for fault-bindings.xml
» Identification of Groups and Sequence IDs
» Standard Resequencer Resequencing Order
» FIFO Resequencer Resequencing Order
» Best Effort Resequencer Resequencing Order
» How to Specify the Resequencing Level
» In the Group field, enter the XPath expression pointing to the field in the incoming
» Limitations in the Resequencer
» Understanding a Request-Reply Message Exchange Pattern
» Understanding a Request-Reply-Fault Message Exchange Pattern
» Understanding a Request-Callback Message Exchange Pattern
» Understanding a Request-Reply-Callback Message Exchange Pattern
» Understanding a Request-Reply-Fault-Callback Message Exchange Pattern
» Application Navigator Rules Designer Window
» Structure Window Overview of Rules Designer Editor Environment
» How to Create Business Rules Components
» Select Business Rule from the SOA Components section of the Component Palette
» In the Add Input Variable dialog box, expand the Process folder and select the
» In the Create Variable Type area click the Browse Elements icon. Use the
» Click the Import Schema File icon to import the schema. For example, import
» In the Type Chooser dialog, select ratingrequest and click OK.
» In the Create Business Rules dialog, click OK. This creates the Business Rule
» Double-click the Decision component for example the OracleRules1 business
» Select the decision function port of interest. For example, select the port for DF_2
» What You May Need to Know About Testing a Standalone Decision Service Component
» Introduction to the Oracle Business Rules Editor Component
» Enter useRulesDC in the Project Name field and ensure that ADF Faces is
» Click OK to close the Project Properties dialog box.
» In Oracle JDeveloper, in the Overview mode of weblogic.xml, select Libraries
» In the Weblogic console, select Deployments and click Install to display the
» 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 Component
» Launch the Weblogic server console
» Enter useRuleDictTaskFlow in the Project Name field and ensure that ADF
» Select Libraries and Classpath from the left panel and click Add Library to
» Introduction to Human Workflow
» Introduction to Design and Runtime Concepts
» Introduction to the Stages of Human Workflow Design
» From the File menu, select Save All. In the Component Palette, expand SOA Components.
» In the BPEL Variable column, click the Browse icon dots shown in
» Click OK. Designing a Human Task from Start to Finish
» Click OK to close the Human Task dialog.
» Click Next. Click Test Connection. Click Finish. From the File menu, select Save All.
» Human Workflow Services Introduction to Human Workflow Architecture
» Service Engines Introduction to Human Workflow Architecture
» Create a Human Task Definition
» Associate the Human Task Definition with a BPEL Process
» Click OK. How to Create a Human Task Service Component
» What Happens When You Create a Human Task Service Component
» Search for the owner by entering a search string such as jcooper, j, ,
» View the hierarchy of a user by highlighting the user and clicking Hierarchy.
» View the details of a user or group by highlighting the user or group and
» Click OK to return to the Identity Lookup dialog.
» Click Select to add the user to the Selected User section.
» Click OK to return to the Human Task Editor.
» Select an option from the list for example, Parallel stage.
» Select Route task to all participants, in order specified from the list shown in
» Introduction to Advanced Task Routing Using Business Rules You can define state
» Facts A fact is an object with certain business data. Each time a routing slip
» To the right of Rules Dictionary, click the Edit icon, as shown in
» Select Use External Routing from the list. Click the Edit icon, as shown in
» Configuring the Error Assignee
» Click the Assignment tab. Click the Add icon to assign reviewers or error assignees, as shown in
» Specifying Multilingual Settings Click the Search icon to select the style sheet as an attachment.
» In the Resource Name field, enter the name of the resource used in the resource
» In the Resource Location field, click the Search icon to select the JAR or ZIP
» Notifying Recipients of Changes to Task Status
» Editing the Notification Message
» Setting Up Reminders Changing the Character Set Encoding
» Securing Notifications to Exclude Details Showing the Oracle BPM Worklist URL in Notifications
» Sending Email Notifications to Groups and Application Roles
» Assign privileges read, write, or no access to users to act upon task content. Note
» Specifying a Certificate Authority
» Click the Add icon to add name and value pairs for the property map passed to Click OK.
» Click OK. How to Specify Java or Business Event Callbacks
» In the Event field, select the event to which to subscribe.
» Expand the Variables tree shown in
Show more