Skip Headers
Oracle® BPEL Process Manager Order Booking Tutorial
10g Release 2 (10.1.2)
B15813-03
  Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index

Previous
Previous
Next
Next
 

3 Invoking an Asynchronous Service

This chapter of the tutorial describes how to invoke an asynchronous service.

This chapter contains the following topics:

3.1 Introduction

This phase of the tutorial adds to the OrderBooking process you created in Chapter 2, "Invoking a Synchronous Service". Ensure that you have successfully completed that phase before performing this one. In this phase, you build a simple asynchronous BPEL process. You perform the following key tasks:

3.2 Invoking an Asynchronous Service to Receive the Supplier Price for the Order

This section contains the following tasks:

3.2.1 Starting and Testing Your Services

During this tutorial, the BPEL process that you design communicates with the Rapid Distributors and Select Manufacturing services. You must first start these services and test that they are running.

  1. Select Start > All Programs > Oracle - Oracle_Home > Oracle BPEL Process Manager 10.1.2 > Developer Prompt to open up an operating system command prompt at the Oracle_Home\integration\orabpel\samples directory.


    Note:

    Always use the Developer Prompt to open an operating system command prompt in all phases of the Order Booking tutorial. Opening an operating system command prompt in any other way to run tutorial commands is not supported.

  2. Change directories to the tutorials\127.OrderBookingTutorial\PriceQuote subdirectory.

    cd tutorials\127.OrderBookingTutorial\PriceQuote
    
    
  3. Enter the following command:

    obant
    
    

    This deploys and starts the Rapid Distributors service required for using this phase of the tutorial. If successful, a message appears at the end:

    BUILD SUCCESSFUL
    
    

    The Select Manufacturing service and user application are also created. You use these services later in Chapter 4, "Adding Parallel Flow".

  4. Access Oracle BPEL Console to see if all required services are running by selecting Start > All Programs > Oracle - Oracle_Home > Oracle BPEL Process Manager 10.1.2 > BPEL Console.

  5. Click Login with default selected from the Domain list. The password is bpel.

    The services for this phase are running if RapidDistributors and SelectManufacturing display in the Dashboard tab.

3.2.2 Creating a Rapid Distributors Partner Link


Summary:

You now create the partner link for the Rapid Distributors service.

  1. Return to JDeveloper BPEL Designer.

  2. Ensure that Process Activities is selected in the drop-down list of the Component Palette section.

  3. Drag and drop a PartnerLink activity onto the right side of the designer window.

  4. Enter the following values to create a partner link for the Rapid Distributors service:


    Note:

    For the WSDL File field below, click the flashlight (the second icon from the left named WSIL Browser) to access the WSDL Chooser window for automatically selecting the Rapid Distributors service deployed in "Starting and Testing Your Services".

    Field Value
    Name RapidDistributors
    WSDL File Access this URL by clicking the WSIL Browser flashlight icon and expanding and selecting LocalBPELServer > processes > default > RapidDistributors.

    http://localhost:9700/orabpel/default/RapidDistributors/RapidDistributors?wsdl

    See Also: "Setting the Hostname in Your JDeveloper BPEL Designer Web Browser Preferences" if you receive a parsing error when attempting to add a WSDL file in the WSDL Chooser window.

    Partner Link Type RapidDistributors
    My Role RapidDistributorsRequester
    Partner Role RapidDistributorsProvider

  5. Click OK.

  6. Select Save from the File main menu.

3.2.3 Creating Invoke and Receive Activities

  1. Drag and drop an Invoke activity from the Component Palette section to below the GetCreditRating Scope activity.

    Description of obph2dnd1.gif follows
    Description of the illustration obph2dnd1.gif

  2. Double-click the Invoke icon to display the Invoke window.

  3. Enter the following details:

    Field Value
    Name invokeRD
    Partner Link RapidDistributors

    The Operation (initiate) field is automatically filled in.

  4. Click the first icon to the right of the Input Variable field. This is the automatic variable creation icon.

  5. Click OK on the Create Variable window that appears.

    A variable named invokeRD_initiate_InputVariable is automatically created in the Input Variable field. This variable is automatically assigned a message type of RapidDistributorsRequestMessage.

  6. Click OK.

  7. Drag and drop a Receive activity below the invokeRD Invoke activity you just created.

    Description of obph2dnd2.gif follows
    Description of the illustration obph2dnd2.gif

  8. Double-click the Receive icon to display the Receive window.

  9. Enter the following details:

    Field Value
    Name receiveRD
    Partner Link RapidDistributors

    The Operation (onResult) field is automatically filled in.

  10. Click the first icon to the right of the Variable field.

  11. Click OK on the Create Variable window that appears.

    A variable named receiveRD_onResult_InputVariable is automatically created in the Variable field. This variable is automatically assigned a message type of RapidDistributorsResponseMessage.

  12. Click OK.

  13. Select Save from the File main menu.

3.2.4 Creating an Assign Activity

  1. Drag and drop an Assign activity from the Component Palette section to above the invokeRD Invoke activity you just created.

    Description of obph2dnd3.gif follows
    Description of the illustration obph2dnd3.gif

  2. Double-click the assign icon to display the Assign window.

  3. Click the General tab.

  4. Enter assignRDIn in the Name field.

  5. Click Apply.

  6. Click the Copy Rules tab.

  7. Click Create to display the Create Copy Rule window.

  8. Enter the following details:

    Field Value
    From
    • Type
    Variable
    • Variables
    Expand and select Variables > inputVariable > payload > ns1:PurchaseOrder > ns1:OrderItems

    Note: The namespace number values (for example, ns1, ns2) can vary. Use the namespace values that automatically appear.

    To
    • Type
    Variable
    • Variables
    Expand and select Variables > invokeRD_initiate_InputVariable > payload > ns1:OrderItems

  9. Click OK to close the Create Copy Rule window and the Assign window.

  10. Select Save from the File main menu. In this phase of the tutorial, you do not create an additional Assign activity to explicitly copy the received data of invokeRD_initiate_InputVariable into another variable.

    When complete, the designer window looks as follows:

    Description of obph2.gif follows
    Description of the illustration obph2.gif

3.2.5 Validating, Compiling, and Deploying the Order Booking Process

  1. Go to the Applications Navigator section.

  2. Right-click OrderBooking.

  3. Select Deploy > LocalBPELServer > Deploy to default domain.

  4. Enter the domain password of bpel when prompted.

    The Deploy Properties window appears.

  5. Increment the version number of the project (for example, enter 1.1) and click OK. When you access Oracle BPEL Console, a new version of the OrderBooking process appears, along with the phase 1 OrderBooking process version you created in "Validating, Compiling, and Deploying the Order Booking Process".

    This compiles the BPEL process. Review the bottom of the window for any errors. If there are no errors, deployment was successful. If deployment was unsuccessful, see Step 5.

3.2.6 Running the Order Booking Process

  1. Log into Oracle BPEL Console by selecting Start > All Programs > Oracle - Oracle_Home > Oracle BPEL Process Manager 10.1.2 > BPEL Console (or refresh the page if it is already open).

    The Dashboard tab of Oracle BPEL Console appears. Note that two versions of the OrderBooking process appear: 1.0 and 1.1. Version 1.0 is the default version, so an asterisk appears to the right.

  2. Click the OrderBooking version you increased in Step 5 (for this example, (v. 1.1)) in the Deployed BPEL Processes list.

  3. Enter details in all fields of the HTML Form. You can also use a text editor to copy and paste these details from the contents of the OrderBookingPO_1.xml file you copied into the OrderBooking directory in Step 1:


    Note:

    Do not copy and paste from Internet Explorer or Mozilla Firefox. You must use a text editor to perform this task.

    1. Select XML Source from the Initiating a test instance list.

    2. Copy and paste the contents of OrderBookingPO_1.xml into the field that appears.

  4. Click Post XML Message.

    The BPEL Processes tab displays a message similar to the following:

    Test Instance Initiated
    
    
    
  5. Click the Instances tab at the top.

  6. Verify that the OrderBooking, CreditRatingService, and RapidDistributors instances were created. All should appear in the Instance list. The Last Modified list displays the times at which they were created.

  7. Click the instances.

  8. Click the Audit and Flow links to follow the instance execution process.

  9. Click More to the right of receiveRD under the Audit link for the OrderBooking instance to see the returned supplier price (returned in the variable receiveRD_onResult_InputVariable).

    Description of obph2onres.gif follows
    Description of the illustration obph2onres.gif

  10. Verify other process states and variable values at different stages.


Note:

Throughout this tutorial, RapidDistributors always quotes a price of 5000.

3.3 Summary

You have now built a simple asynchronous BPEL process that received a supplier price for an order from a service. You performed the following key tasks: