Time for action – implementing the BPEL process
In this step, we will implement the BPEL process itself. The goal is to return the book data, including the stock quantity. For this, we would usually need to access the database to query for the stock of the specified book. In our case, we do not want to complicate the example, so we will simply return a fixed value.
To achieve this, we will use the Assign activity to assign a fixed value to a BPEL variable. Assign is one of the basic BPEL activities. We will explain the BPEL language later in this chapter.
For now, let's perform the following steps. First, we will copy BookISSN
from request inputVariable
to response outputVariable
. Second, we will copy a number 5
to the StockQuantity
element of the output message:
- Open our
BookstoreABPEL
process by selecting the already opened BookstoreABPEL.bpel tab. Alternatively, you can double-click on theBookstoreABPEL
component on the composite design view or double-click on theBookstoreABPEL.bpel
file from the project tree on the left-hand side window. - Drag-and-drop the Assign activity from the right-hand component palette to the BPEL process in the middle between the receiveInput and replyOutput activities, as shown in the following screenshot:
- Double-click on the Assign activity and set the parameters. Name the activity as
DetermineStockQuantity
. CopyBookISSN
frominputVariable
tooutputVariable
by draggingBookISSN
frominputVariable
and dropping it onBookISSN
inoutputVariable
, as shown in the following screenshot: - To set the
StockQuantity
element of the output message, we will need to use an expression. Drag-and-drop Expression from the upper-right corner of the window to theStockQuantity
element. Doing this, the Expression Builder window will appear. - Click on the Conversion Functions tab and select the n()number function. Let's assume that we will return stock quantity of
5
. This means we need to writenumber(5)
: - Clicking on OK twice and saving all we have performed brings us to the following screenshot:
What just happened?
We implemented our first BPEL processes. It contains a very simple logic for returning the book data, including the stock quantity. It assigns the book ISSN and the stock quantity to the constant value of 5
. Obviously, this is an oversimplified process, but it is sufficient for our first example and to get a feeling about BPEL. Next, we will try to deploy the BPEL process.