The Business Process Management (BPM) capability of Oracle WebLogic Integration (WLI) enables integration of diverse applications and human participants, and coordinated exchange of information with trading partners outside your enterprise.
This tutorial provides a tour of the features available for designing business processes in Oracle Workshop for WebLogic. It describes how to create a business process that orchestrates processing of a Request for Quote (RFQ).
Tutorial Goals
The goals of the tutorial include the following:
Designing communication nodes in a process – that is, creating the interface between your business process and its clients and resources. Clients of business processes can be any other resources or services that invoke processes.
Designing interactions with clients, including creating the methods that expose the functionality of a process.
Designing interactions with resources by using controls. WLI controls make it easy to access enterprise resources – databases, Enterprise Java Beans (EJBs), web services, and other processes (including those that use RosettaNet and ebXML business processes) – from a process.
Handling XML, non-XML, and Java data types in a process. This includes working with XML schemas and transforming data between disparate data types using the XQuery Mapper tool.
Tutorial Overview
The business process in this scenario starts when an RFQ is received from a client. The business process checks the inventory and pricing systems of the enterprise to determine whether the order can be fulfilled. Based on the shipping address provided by the client, the process also determines whether sales tax must be added to the quote. Finally, the business process compiles a single quote document from the sales tax, price, and availability data, logs the quote by writing it to the file system and sends it to the client.
The following sequence summarizes the steps in the RFQ business process and describes how the process is designed in WLI:
Receive an RFQ from a client.
You design a Client Request node in your business process to handle the receipt of an XML document that contains the customer name, shipping address, and the identity and quantity of items for which the quote is requested. You design the business process so that it starts when it receives an RFQ message from a client.
Determine whether sales tax must be included in the quote.
You design a Decision node to create different paths of execution based on the evaluation of a condition. The Decision node includes, on one path, a call to a web service that calculates sales tax. Business processes communicate with other services through controls. You design a Control Send node to communicate with a web service that calculates the sales tax for your quote.
Process the items sent in the RFQ message.
For each item in the RFQ, the process calculates the price and determines availability of the quantities requested in the incoming XML message.
You create the following nodes in the business process:
For Each: These nodes represent points in a business process at which a set of activities is performed repeatedly, once for each item in a list. For Each nodes include an iterator node (on which a list of items is specified) and a loop (in which the activities to be performed for each item in the list are defined)
Parallel: Parallel nodes represent points in a business process at which a number of activities are executed in parallel. In this tutorial, you design a Parallel node containing two branches: a path for calculating prices and a path for determining availability.
Control: Control Send and Control Receive nodes on each path handle asynchronous exchange of messages between the business process and web service resources.
A pricing web service returns the price for the items in the RFQ.
An availability web service returns information about the availability of the requested items.
Compile price, availability, and tax information in a quote document.
You use Transformation controls to map the price, availability, and sales tax information to an XML document that is returned to the client as the quote.
Keep a record of the quote created by the business process.
You use a File control to write the quote to your file system.
Send the quote to the client.
You design a Client Response node to send a response to the client. The response contains the data calculated by the business process.
The following figure shows the actors in the tutorial scenario.
Figure 1-1 Actors in the Tutorial Scenario
The actors in the tutorial scenario are:
Clients that create and send RFQ messages – containing customer name, shipping address, list of items, and quantity of items required – to the RequestQuote business process.
The RequestQuote business process that receives RFQs and returns the following for the items requested in the RFQ:
Price
Availability information
A web service that calculates sales tax for the quote, based on the shipping address provided by the client.
A business process that calculates the sales tax. This business process serves the same purpose as the tax calculation web service described in the preceding item. The RequestQuote business process can call either the web service or the business process to request for calculation of the sales tax for the quote.
A pricing web service that calculates the price of the items requested by the client.
An availability web service that determines availability of the items requested by the client.
Transformation controls to map disparate data formats in your application.
The business process starts when it receives an XML document from a client. Data is exchanged between resources in the application – clients, the RequestQuote business process, web services, and so on – in XML format.
Tutorial Organization
The goal of this tutorial is to create a business process that receives RFQ messages from clients, validates and processes the RFQs, and send quotes to the clients.