Skip Headers
Oracle® SOA Suite Tutorial
Release 3 (10.1.3.1.0)
Part Number B28937-01
Home
Book List
Master Index
Contact Us
Next
View PDF
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
1
Introduction to the SOA Order Booking Application and the Tutorial
1.1
What Does the SOA Order Booking Application Do?
1.2
Flow of the Application
1.3
Software Required for Creating and Running the Application
1.4
Contents of the SOADEMO Schema
1.5
How This Tutorial Is Organized
1.6
Technologies and Techniques Used in Each Project
2
Setting Up Your Environment
2.1
Download the Files for the Tutorial
2.2
Install Oracle Application Server
2.3
Install Oracle JDeveloper
2.4
Unzip the Files for the SOA Order Booking Application
2.5
Install the SOADEMO Schema
2.6
Define Data Source and Connection Pool in Oracle Application Server
2.6.1
Start Up Application Server Control
2.6.2
Create a Connection Pool
2.6.3
Create a Data Source
2.6.4
Create a Database Adapter Connection Factory
2.7
Set Up Connections in Oracle JDeveloper
2.7.1
Create a Database Connection to the SOADEMO Schema
2.7.2
Create a Connection to Oracle Application Server
2.7.3
Create a Connection to the Integration Server
2.8
Create the SOADEMO Application in JDeveloper
3
Creating the CustomerService Project
3.1
About the CustomerService Project
3.2
Create a New Project for CustomerService
3.3
Create Entity Beans from Tables in the Database
3.4
Edit persistence.xml
3.5
Create a Session Bean in the business Directory
3.6
Define Additional Queries in Customer.java
3.7
Use a Database Sequence to Generate Address IDs in Address.java
3.8
Edit Session Facade for the Session Bean (CustomerServiceBean.java)
3.9
Add and Modify Methods in the Session Bean (CustomerServiceBean.java)
3.9.1
Modify queryCustomerFindCustomerById
3.9.2
Modify queryCustomerFindCustomerByEmail
3.9.3
Add getCustomerStatus and addNewCustomer Methods
3.10
Add JSR-181 Annotations to the Web Service Endpoint Interface (CustomerService.java)
3.11
Create EJB JAR Deployment Profile for the CustomerService Project
3.12
Deploy CustomerService
3.13
View the WSDL for CustomerService
4
Creating the FulfillmentESB Project
4.1
About the FulfillmentESB Project
4.2
Create a New Project for FulfillmentESB
4.3
Create a System Called "Fulfillment"
4.4
Create the "OrderFulfillment" Routing Service
4.5
Create the "Shipment" Routing Service
4.6
Create the "USPSShipment" Adapter (File Adapter)
4.7
Create the "FedexShipment" Adapter (Database Adapter)
4.8
Create the "FulfillmentBatch" Adapter (JMS Adapter)
4.9
Create Routing Rules
4.9.1
Between OrderFulfillment and Shipment
4.9.2
Between OrderFulfillment and JMS Adapter
4.9.3
Between Shipment and USPSShipment
4.9.4
Between Shipment and FedexShipment
4.10
Save All Files in the FulfillmentESB Project
4.11
Register the FulfillmentESB Project
5
Creating the CreditService Project
5.1
About the CreditService Project
5.2
Create a New Project for CreditService
5.3
Copy the WSDL File
5.4
Generate Java from the WSDL
5.5
Display the List of Files in the Structure Window
5.6
Build CreditService
5.7
Write the Code to Perform Credit Card Validation
5.8
Verify Hostname and Port in CreditService.wsdl
5.9
Update the Context-Root
5.10
Rebuild CreditService
5.11
Deploy Credit Service to Oracle Application Server
6
Creating the RapidService Project
6.1
About the RapidService Project
6.2
Create a New Project for RapidService
6.3
Add JSR-181 Library to the RapidService Project
6.4
Create Item.java
6.5
Create Quote.java
6.6
Create RequestQuote.java
6.7
Check Files in the Application Navigator
6.8
Compile the Files
6.9
Publish the Project as a Web Service
6.10
Verify the Hostname and Port in the Generated WSDL File
6.11
Check Files in the Application Navigator
6.12
Set the Context Root to RapidService
6.13
Edit the Deployment Descriptor
6.14
Deploy the RapidService Project
6.15
View the WSDL for RapidService
7
Creating the SelectManufacturer Project
7.1
About the SelectManufacturer Project
7.2
Create a New BPEL Project for SelectManufacturer
7.3
Create "SelectService" Partner Link
7.4
Define Variables for the SelectManufacturer Project
7.5
Receive Order Data from the Client through a Receive Activity
7.6
Assign Values to be Returned
7.7
Return Values to the Client Using an Invoke Activity
7.8
Deploy the BPEL Process
7.8.1
Deploying Using Ant from the Developer Prompt
7.8.2
Viewing SelectManufacturer in the Oracle BPEL Control
8
Creating the SOAOrderBooking Project
8.1
About the SOAOrderBooking Project
8.1.1
Blocks in the SOAOrderBooking Project
8.1.2
Blocks Shown in Minimized View
8.2
Create a New BPEL Project for SOAOrderBooking
8.3
Copy Files
8.4
Define Variables for the SOAOrderBooking Project
8.5
Create "client" Partner Link
8.6
Receive Input from the Client (Receive Activity)
8.6.1
Create the Receive Activity
8.6.2
Create a Sensor for the Receive Activity
8.7
Insert Order Information in the Database ("InsertOrderIntoDB" Scope)
8.7.1
Create a Database Adapter for Writing to the ORDERS Table
8.7.2
Create a Database Adapter for Retrieving the Order ID from the Database
8.7.3
Create the "InsertOrderIntoDB" Scope
8.7.4
Retrieve the Order ID from the Database Sequence ("GetOrderId" Invoke Activity)
8.7.5
Prepare the Order ID and Order Status Information ("AssignOrderStatus" Assign Activity)
8.7.6
Create the Mapping File ("TransformOrder" BPEL Service)
8.7.7
Insert the Order Information into the Database ("InsertOrder" Invoke Activity)
8.7.8
Minimize the "InsertOrderIntoDB" Scope
8.8
Retrieve Information About the Customer ("CustomerService" Scope)
8.8.1
Create the "CustomerService" Partner Link
8.8.2
Create the "CustomerService" Scope
8.8.3
Assign Customer ID to the findCustomerById Operation ("AssignRequest" Assign Activity)
8.8.4
Create a Variable to Contain the Results of findCustomerById ("customerServiceResponse" Process Variable)
8.8.5
Invoke findCustomerById ("GetCustInfo" Invoke Activity)
8.8.6
Create the "AssignInitialCustomerResponse" Assign Activity
8.8.7
Copy the Customer's First and Last Names to the inputVariable ("AssignCustomerResponse" Assign Activity)
8.8.8
Minimize the "CustomerService" Scope
8.9
Verify the Customer's Credit Card ("CreditService" Scope)
8.9.1
Create "CreditValidatingService" Partner Link
8.9.2
Create the "CreditService" Scope
8.9.3
Assign the Credit Card Number and Credit Card Type Information ("InitializeRequest" Assign Activity)
8.9.4
Verify the Customer's Credit Card ("InvokeCreditService" Invoke Activity)
8.9.5
Create the "OrderBookingFault" Process Variable
8.9.6
Check the Results of the Credit Card Validation (Switch Activity)
8.9.6.1
Specify the Condition for <case>
8.9.6.2
Set the Value of the OrderBookingFault Variable ("AssignFault" Assign Activity)
8.9.6.3
Create the "ThrowCreditFault" Throw Activity
8.9.7
Minimize the "CreditService" Scope
8.10
Set up Oracle Business Rules
8.10.1
Set up the Repository File
8.10.2
Create a Dictionary in the Repository
8.10.3
Copy OrderBookingRules.xsd to the Oracle Application Server Machine
8.10.4
Generate JAXB Classes for the Elements in the XML Schema
8.10.5
Import the JAXB Classes into the Oracle Business Rules Data Model
8.10.6
Define a Variable in the Data Model
8.10.7
Create a Ruleset
8.10.8
Create Rules
8.10.8.1
Create the "belowLimit" Rule
8.10.8.2
Create the "overLimit" Rule
8.10.8.3
Create the "platinumMember" Rule
8.10.9
Log out of Rule Author
8.10.10
Copy the Files to the JDeveloper Machine
8.11
Determine If an Order Requires Manual Approval ("RequiresManualApproval" Decide Activity)
8.11.1
Create the Activities in the "RequiresManualApproval" Decide Activity
8.11.2
Copy Order Total and Customer Status Information ("BPEL_Var_To_Rule_Facts" Assign Activity)
8.11.3
Copy the ConversationId to the dsIn Variable ("BPEL_Header" Assign Activity)
8.11.4
Create the "requiresApproval" Process Variable
8.11.5
Copy the Result of the Decision Service to the requiresApproval Variable ("Facts_To_BPEL_Var" Assign Activity)
8.11.6
Minimize the "RequiresManualApproval" Decide Activity
8.12
Set Up a Form to Process Orders That Require Manual Approval ("requiresApproval" Switch)
8.12.1
Create the Switch
8.12.2
Set the Condition for the <case>
8.12.3
Create a Sequence in the <case> Branch
8.12.4
Create a Human Task
8.12.5
Create a Form for the Worklist Application
8.12.6
Accept the Default Settings for the Remaining Human Task Activities
8.13
Handle the Manager's Response ("requiresApproval" Switch)
8.13.1
Handle the Reject Case
8.13.1.1
Set the Status of the Order (Assign Activity)
8.13.1.2
Create a Throw Activity
8.13.2
Handle the Approve Case
8.13.3
Handle the Expired Case
8.13.4
Accept the Default Settings for Each Case
8.13.5
Minimize the "requiresApproval" Switch
8.14
Choose a Supplier ("SelectSupplier" Scope)
8.14.1
Create the "SelectManufacturer" Partner Link
8.14.2
Create the "RapidService" Partner Link
8.14.3
Create the "SelectSupplier" Scope
8.14.4
Create a Flow Activity
8.14.5
Set the Activities for Select Manufacturer
8.14.5.1
Create a Scope for SelectManufacturer
8.14.5.2
Create a Transform Activity ("TransformSelectRequest" Transform Activity)
8.14.5.3
Create an Invoke Activity
8.14.5.4
Create a Receive Activity
8.14.6
Set the Activities for Rapid Manufacturer
8.14.6.1
Create a Scope for Rapid Manufacturer
8.14.6.2
Create a Transform Activity ("TransformRapidRequest" Transform Activity)
8.14.6.3
Create an Invoke Activity
8.14.7
Create a Switch to Pick the Lower-Priced Quote
8.14.7.1
Create the Switch
8.14.7.2
Set the Condition for the Switch
8.14.7.3
Set the Activities for Select Manufacturer
8.14.7.4
Set the Activities for Rapid Distributor
8.14.8
Minimize the "SelectSupplier" Scope
8.15
Determine the Shipping Method ("PostFulfillmentReq" Scope)
8.15.1
Create the "OrderFulfillment" Partner Link
8.15.2
Create the "PostFulfillmentReq" Scope
8.15.3
Copy Order Information to Scope Variable ("initializeRequest" Assign Activity)
8.15.4
Invoke OrderFulfillmentESB ("PostFulfillmentReq" Invoke Activity)
8.15.5
Create a Catch-All Branch for the Scope
8.15.6
Minimize the "PostFulfillmentReq" Scope
8.16
Set the Order Status to "Completed" ("SetFinalOrderStatus" Scope)
8.16.1
Create the "OrderStatus" Database Adapter
8.16.2
Create the "SetFinalOrderStatus" Scope
8.16.3
Prepare the Order ID and Status ("AssignOrderStatus" Assign Activity)
8.16.4
Update the Order Status in the Database ("UpdateOrderStatus" Invoke Activity)
8.16.5
Minimize the "SetFinalOrderStatus" Scope
8.17
Send an Email Notification to the Customer ("NotifyCustomer" Scope)
8.17.1
Create the Notification Scope
8.17.2
Minimize the "Email_1" Scope
8.17.3
Rename the "Email_1" Scope
8.18
Call Back the Client ("callbackClient" Invoke Activity)
8.18.1
Create the Invoke Activity
8.18.2
Add a Sensor
8.19
Add a Catch Branch to the Project
8.19.1
Add a "client:OrderBookingFault" Catch
8.19.2
Create a Scope
8.19.3
Create the Assign Activity
8.19.4
Create the Invoke Activity
8.19.5
Create a Sensor in the Invoke Activity
8.20
Deploy the Project
8.20.1
Deploying Using Ant from the Developer Prompt
8.20.2
Viewing SOAOrderBooking in the Oracle BPEL Control
9
Creating the OrderBookingESB Project
9.1
About the OrderBookingESB Project
9.2
Create a New Project for OrderBookingESB
9.3
Create a System Called "OrderBooking"
9.4
Create the "OrderBookingService" Routing Service
9.5
Invoke the SOAOrderBooking Process ("OrderBookingProcess" External Service)
9.6
Set up Routing Rules for OrderBookingService
9.7
Save All Files in the OrderBookingESB Project
9.8
Register the OrderBookingESB Project
10
Interfacing the Client Application with the SOA Order Booking Application
10.1
About the SOADemo-Client Application
10.2
Invoking Services from CustomerService
10.2.1
Generate a Web Service Proxy for CustomerService
10.2.2
Build the Files
10.2.3
Write Code to Invoke the Web Service Proxy for CustomerService
10.2.3.1
Verifying the Login
10.2.3.2
Registering New Customers
10.3
Invoking the OrderBookingESB Project
10.3.1
Retrieve the Concrete WSDL URL
10.3.2
Create the Project in the Client and Create the Web Service Proxy
10.3.3
Build the Files
10.3.4
Write Code to Invoke the Web Service Proxy for OrderBookingESB
10.4
Deploying the Client Application