Skip Headers
Oracle® BPEL Process Manager Developer's Guide
10g (10.1.3.1.0)

Part Number B28981-03
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

B BPEL Process Activities and Services

This appendix describes the activities and services that you use when designing a BPEL process in Oracle JDeveloper.

This appendix contains the following topics:

B.1 Process Activities Overview

Oracle JDeveloper includes activities that are available for dragging and dropping into a BPEL process. These activities enable you to perform specific tasks within a process. This section provides a brief overview of these activities and provides references to other documentation that describes how to use these activities:

This section contains the following topics:

See Also:

The following documentation for additional details about activities:

B.1.1 Tabs Common to Many Activities

While each activity performs specific tasks, many activities include tabs that enable you to perform similar tasks. This section describes these common tabs.

  • The Sensors tab displays on all activities and enables you to create sensors for capturing details about an activity.

  • The Correlations tab displays in invoke, receive, and reply activities, the onMessage branch of pick activities, and the OnMessage variant of event handlers. Correlation sets address complex interactions between a process and its partners by providing a method for explicitly specifying correlated groups of operations within a service instance. A set of correlation tokens is defined as a set of properties shared by all messages in the correlated group.

  • The Adapters tab displays in invoke, receive, and reply activities, and the onMessage branch of pick activities. You create header variables for use with the Advanced Queuing (AQ), File, FTP, MQ, and Java Message Service (JMS) adapters.

  • The Annotations tab displays on all activities and enables you to provide descriptions in activities in the form of code comments and name and pair value assignments.

    Note the following issues when using annotations in Oracle JDeveloper:

    • The Annotations tab in activities of Oracle JDeveloper does not provide a method for changing the order of annotations. As a workaround, change the order of annotations in the Source view of the project's BPEL file in Oracle JDeveloper.

    • The otherwise branch in a switch activity does not allow you to create annotations. However, the case branch in a switch activity does provide this functionality.

B.1.2 Assign Activity

This activity provides a method for data manipulation, such as copying the contents of one variable to another. This activity can contain any number of elementary assignments.

When you double-click the Assign icon, the Assign window appears. You can perform the following tasks:

  • Click the General tab to provide the assign activity with a meaningful name.

  • Click the Copy Operation tab and the Create icon (shown in Figure B-1), and then select Copy Operation, to access the Create Copy Operation window. Other selections such as Append Operation and Insert-After Operation are also available. This enables you to copy the contents of the source element (variable, expression, XML fragment, or partner link) in the From field to the contents of the destination element in the To field. You can also select a part (typically the payload) and an XPath query (a language for addressing parts of an XML document).

Figure B-1 Copy Rules Tab of Assign Activity WIndow

Description of ex_assign.gif follows
Description of the illustration ex_assign.gif

If an assign activity contains more than one bpelx:append setting, it must be split into two assign activities. Otherwise, Oracle JDeveloper moves the bpelx:append to the end of the list each time, which can cause problems. As a workaround, move it manually.

See Also:

The following documentation for examples of using the assign activity:

B.1.3 Compensate Activity

This activity invokes compensation on an inner scope activity that has already successfully completed. This activity can be invoked only from within a fault handler or another compensation handler. Compensation occurs when a process cannot complete several operations after already completing others. The process must return and undo the previously completed operations. For example, assume a process is designed to book a rental car, a hotel, and a flight. The process books the car and the hotel, but is unable to book a flight for the correct day. In this case, the process performs compensation by unbooking the car and the hotel.The compensation handler is invoked with the compensate activity, which names the scope on which the compensation handler is to be invoked.

When you double-click the Compensate icon, the Compensate window shown in Figure B-2 appears. You can perform the following tasks:

  • Click the General tab to provide the activity with a meaningful name and select the scope activity on which the compensation handler is to be invoked.

Figure B-2 Compensate Activity

Description of ex_compen.gif follows
Description of the illustration ex_compen.gif

See Also:

B.1.4 Decide Activity

This activity enables you to define a process that invokes the decision service partner link that you created with the Decision Service Wizard. This activity also enables you to create copy operation assignments between the fact data in your rule set or function and BPEL variables.

When you drag and drop the Decide icon, the Decide window appears. You provide the following information, as shown in Figure B-3.

  • Enter a name, select the decision service partner link you created, and the operation to perform (invocation pattern). If you have not created a decision service, click the first icon to the right of the Decision Service field.

  • Click Assign Input Facts, then click Create to create mappings for the input facts. This enables you to assign BPEL variables to the facts to be asserted or to the function input parameters.

    This enables you to create assignments that map BPEL input variables to automatically created BPEL variables that correspond to the input (assert) fact type.

  • If you selected an invocation pattern that retrieves results, click Assign Output Facts, then click Create to create mappings for the output facts. This enables you to assign values from a function return value or rule set result to a BPEL variable.

    This enables you to create assignments that map automatically created BPEL variables that correspond to the output (watch) fact type.

A decide activity consisting of assign and invoke activities to the decision service partner link is created after you click OK.

B.1.5 Email Activity

This activity enables you to send an e-mail notification about an event.

For example, an online shopping business process of an online bookstore sends a courtesy e-mail message to you after the items are shipped. The business process calls the notification service with your user ID and notification message. The notification service gets the e-mail address from Oracle Internet Directory.

When you drag and drop an Email icon into a BPEL process, the Edit Email window shown in Figure B-4 appears.

Figure B-4 Edit Email Window

Description of notif3.gif follows
Description of the illustration notif3.gif

Use the Edit Email dialog to enter notification details, as described in Table B-1.

Table B-1 E-mail Notification Parameters

Name Description
From Account The name of the account used to send this message. The configuration details for this e-mail account name must exist on Oracle BPEL Server.
To The e-mail address to which the message is to be delivered. This can be a) a static e-mail address entered at the time the message is created, or b) an e-mail address looked up using the identity service, or c) a dynamic address from the payload. The XPath Expression Builder can be used to get the dynamic e-mail address from the input. See "Setting E-mail Addresses and Telephone Numbers Dynamically".
CC and Bcc The e-mail addresses to which the message is copied and blind copied. This can be a static or dynamic address as described for the To address.
Reply To The e-mail address to use for replies. This can be a static or dynamic address as described for the To address.
Subject Subject of the e-mail message. This can be free text or dynamic text. The XPath Expression Builder can be used to set dynamic text based on data from process variables that you specify.
Body Message body of the e-mail message. This can be plain text, XML, free text, or dynamic text, as described for the Subject parameter.
Multipart message with n attachments Select to specify e-mail attachments. See "Setting E-mail Attachments".

The number of attachments if Multipart message is selected. The number includes the body. For example, if you have a body and one attachment, specify 2 here.


B.1.6 Empty Activity

This activity enables you to insert a no-operation instruction into a process. This activity is useful when you need to use an activity that does nothing (for example, when a fault needs to be caught and suppressed). Figure B-5 shows the empty activity.

B.1.7 Fax Activity

This activity enables you to send a fax notification about an event.

When you drag and drop a Fax icon into a BPEL process, the Edit Fax window shown in Figure B-6 appears.

Figure B-6 Edit Fax Window

Description of notif6.gif follows
Description of the illustration notif6.gif

Use the Edit Fax dialog to enter notification details, as described in Table B-2.

Table B-2 Fax Notification Parameters

Name Description
Fax Number The fax number to which the message is to be delivered. This can be a) a static fax number entered at the time the message is created, or b) a fax number looked up using the identity service, or c) a dynamic fax number from the payload. The XPath Expression Builder can be used to get the dynamic fax number from the input.
Cover Page The cover page name. The cover page details must exist on the server. The cover page can be in PDF, Microsoft Word, HTML, or plain text format. (This field is optional.) The XPath Expression Builder can be used to set dynamic text based on data from process variables that you specify.
Body Fax message body. This must be plain text or HTML. This can be free text or dynamic text as described for the Cover page parameter.

B.1.8 Flow Activity

This activity enables you to specify one or more activities to be performed concurrently. A flow activity completes when all activities in the flow have finished processing. Completion of a flow activity includes the possibility that it can be skipped if its enabling condition is false.

For example, assume you use a flow activity to enable two loan offer providers (United Loan service and Star Loan service) to start in parallel. In this case, the flow activity contains two parallel activities – the sequence to invoke the United Loan service and the sequence to invoke the Star Loan service. Each service can take an arbitrary amount of time to complete their loan processes.

Figure B-7 shows an initial flow activity with its two panels for parallel processing. You drag and drop activities into both panels to create parallel processing. When complete, a flow activity looks like that shown in Figure B-8.

Figure B-7 Flow Activity (At Time of Creation)

Description of flow1.gif follows
Description of the illustration flow1.gif

Figure B-8 Flow Activity (After Design Completion)

Description of ex1_scope.gif follows
Description of the illustration ex1_scope.gif

See Also:

The following documentation for examples of using the flow activity:

B.1.9 FlowN Activity

This activity enables you to create activities within a flow. You specify the number of branches of these activities to create.

Figure B-9 shows a flowN activity.

See Also:

B.1.10 Human Task Activity

This activity enables you to describe the tasks, input or output information, and procedural steps performed by users or groups as part of the end-to-end business process. For example, an insurance company can design a workflow application to ensure that a claim is handled consistently from initial call to final settlement. The workflow application ensures that each person handling the claim uses the correct online form and successfully completes their step before enabling the process to proceed to the next person and procedural step.

You create a workflow to manage and enforce the consistent handling of work. After creation, you can also modify your workflow. At run time, the workflow results in the creation of tasks that can be accessed through the Oracle BPEL Worklist Application.

When you drag and drop a Human Task icon, the Add a Human Task window shown in Figure B-10 appears.

Figure B-10 Human Task Activity

Description of ex_human_task.gif follows
Description of the illustration ex_human_task.gif

Create a task definition by clicking the second icon to the right of the Task Definition field. The Human Task editor opens. This is where you create the human workflow task, as shown in Figure B-11. Your inputs are saved in the human_task_name.task file.

See Also:

The following documentation for examples of using the human task activity and workflows:

B.1.11 Invoke Activity

This activity enables you to specify an operation you want to invoke for the service (identified by its partner link). The operation can be one-way or request-response on a port provided by the service. You can also automatically create variables in an invoke activity. An invoke activity invokes a synchronous service or initiates an asynchronous Web service.

The invoke activity opens a port in the process to send and receive data. It uses this port to submit required data and receive a response. For synchronous callbacks, only one port is needed for both the send and the receive functions.

When you double-click the Invoke icon, the Invoke window shown in Figure B-12 appears. You can perform the following tasks:

  • Provide the activity with a meaningful name.

  • Select the partner link for which to specify an operation

  • Select the operation to be performed

  • Automatically create a variable or select an existing variable in which to transport the data (payload)

Figure B-12 Invoke Activity

Description of ex_invoke.gif follows
Description of the illustration ex_invoke.gif

B.1.12 Java Embedding Activity

This activity enables you to add custom Java code to a BPEL process using the Java BPEL exec extension <bpelx:exec>. This is useful when you already have Java code that can perform a function, and want to use this existing code instead of starting over.

When you double-click this activity, the Edit Java Embedding window shown in Figure B-13 appears.

Figure B-13 Java Embedding Activity

Description of ex_javaembed.gif follows
Description of the illustration ex_javaembed.gif

If you use this activity, ensure that you add the JAR files to the Oracle JDeveloper classpath or put them in the JDev_Oracle_Home\jdev\lib\ext directory to ensure that your project compiles properly during design time.

In addition, place the corresponding class files in the SOA_Oracle_Home\bpel\system\classes directory.

Perform the following Java JAR file configuration steps to ensure correct run time behavior. This example describes the configuration steps for Windows operating systems. Perform similar steps for UNIX operating systems.

  1. Add the files into the BPEL client bpelc CLASSPATH:

    1. Open SOA_Oracle_Home\bpel\bin\obsetenv.bat. For UNIX operating systems, the file is named obsetenv.sh.

    2. Edit the file as follows:

      @REM set MY_CLASSES_DIR=%CLASSPATH%
      set MY_CLASSES_DIR=%OB_HOME%\system\classes
      set MY_CLASSPATH=%MY_CLASSES_DIR%;your_jar_files
      
      
  2. Add the files into the Oracle BPEL Server bpelc CLASSPATH in either of two ways:

    1. Open SOA_Oracle_Home\bpel\domains\default\config\domain.xml (if the default domain is being used).

    2. Edit the file as follows:

      <property id="bpelcClasspath">
         <name>BPEL process compiler classpath</name>
         <value>your_jar_files;...</value>
         <comment>...</comment>
      </property>
      
      
    3. Restart Oracle BPEL Server.

    or

    1. Go to Manage BPEL Domain > Configuration on Oracle BPEL Control.

    2. Go to the bpelcClasspath property.

    3. Enter your_jar_files; in the Value field.

    4. Click Apply.

    5. Restart Oracle BPEL Server.

  3. Add the files into the Oracle Application Server CLASSPATH:

    1. Open application.xml, which is in

      SOA_Oracle_Home\j2ee\home\config\
      
      
    2. Edit the file as follows:

      <library path=your_jar_files/>
          <library path="C:\Ora_Home\bpel\system\classes"/> 
      

B.1.13 Pager Activity

This activity enables you to send a pager notification about an event.

When you drag and drop a Pager icon into a BPEL process, the Edit Pager window shown in Figure B-14 appears.

Figure B-14 Edit Pager Window

Description of notif7.gif follows
Description of the illustration notif7.gif

Use the Edit Pager dialog to enter notification details, as described in Table B-3.

Table B-3 Pager Notification Parameters

Name Description
From Number The pager number from which the message is to be sent. This can be a) a static pager number entered at the time the message is created, or b) a dynamic pager number from the payload. The XPath Expression Builder can be used to get the dynamic pager number from the input.
Pager Number The number of the recipient of this message. This can be a) a static pager number entered at the time the message is created, or b) a pager number looked up using the identity service, or c) a dynamic pager number from the payload. The XPath Expression Builder can be used to get the dynamic pager number from the input.
Body Pager message body. This must be plain text. This can be free text or dynamic text as described for the From Number parameter.

B.1.14 Pick Activity

This activity waits for the occurrence of one event in a set of events and performs the activity associated with that event. The occurrence of the events is often mutually exclusive (the process either receives an acceptance or rejection message, but not both). If more than one of the events occurs, then the selection of the activity to perform depends on which event occurred first. If the events occur nearly simultaneously, there is a race and the choice of activity to be performed is dependent on both timing and implementation.

The pick activity provides two branches, each one with a condition. When you double-click the Pick icon, the pick activity shown in Figure B-15 appears and displays these two branches: onMessage (on the left) and onAlarm (on the right). The onMessage branch contains the code for receiving a reply, for example, from a loan service. The onAlarm branch contains the code for a timeout, for example, after one minute. Whichever branch completes first is executed; the other branch is not. The branch that has its condition satisfied first is executed.

If you add correlations to an OnMessage branch of a Pick activity in Oracle JDeveloper, the correlations syntax is placed after the assign activity syntax. The correlation syntax must go before the assign activity.

As a workaround, perform the following steps:

  1. Create a correlation set in Oracle JDeveloper.

  2. Assign this to the OnMessage branch.

  3. Complete the remaining design tasks.

  4. Before making or deploying the BPEL process, move the correlation syntax before the assign activity in the BPEL source code.

See Also:

B.1.15 Receive Activity

This activity specifies the partner link from which to receive information and the port type and operation for the partner link to invoke. This activity waits for an asynchronous callback response message from a service, such as a loan application approver service. While the BPEL process is waiting, it is dehydrated (compressed and stored) until the callback message arrives. The contents of this response are stored in a response variable in the process.

When you double-click the Receive icon, the Receive window shown in Figure B-16 appears. You can perform the following tasks:

  • Provide the receive activity with a meaningful name.

  • Select the partner link service for which to specify an operation

  • Select the operation to be performed

  • Automatically create a variable or select an existing variable in which to transport the callback response

Figure B-16 Receive Activity

Description of ex_receive.gif follows
Description of the illustration ex_receive.gif

B.1.16 Reply Activity

This activity allows the process to send a message in reply to a message that was received through a receive activity. The combination of a receive activity and a reply activity forms a request-response operation on the WSDL port type for the process.

Figure B-17 shows the reply activity.

B.1.17 Scope Activity

This activity consists of a collection of nested activities that can have their own local variables, fault handlers, compensation handlers, and so on. A scope activity is analogous to a { } block in a programming language.

Each scope has a primary activity that defines its behavior. The primary activity can be a complex structured activity, with many nested activities within it to arbitrary depth. The scope is shared by all the nested activities.

When you double-click the Scope icon, the Scope window shown in Figure B-18 appears. Define appropriate activities inside the scope activity.

Fault handling is associated with a scope activity. The goal is to undo the incomplete and unsuccessful work of a scope activity in which a fault has occurred. You define catch activities in a scope activity to create a set of custom fault-handling activities. Each catch activity is defined to intercept a specific type of fault.

Figure B-19 shows the Add Catch Branch icon inside a scope activity. Figure B-20 shows the catch activity area that appears when you click the Add Catch Branch icon. Within the area defined as Drop Activity Here, you drag and drop additional activities to create fault handling logic to catch and manage exceptions.

For example, a client provides a social security number to a Credit Rating service when applying for a loan. This number is used to perform a credit check. If a bad credit history is identified or the social security number is identified as invalid, an assign activity inside the catch activity notifies the client of the loan offer rejection. The entire loan application process is terminated with a terminate activity.

Figure B-19 Creating a Catch Branch

Description of addcatch.gif follows
Description of the illustration addcatch.gif

Figure B-20 Catch Activity Icon

Description of ex_catch.gif follows
Description of the illustration ex_catch.gif

See Also:

The following documentation for examples of using the scope activity and fault handling:

B.1.18 Sequence Activity

This activity enables you to define a collection of activities to be performed in sequential order. For example, you may want the following activities performed in a specific order:

  • A customer request is received in a receive activity.

  • The request is processed inside a flow activity that enables concurrent behavior.

  • A reply message with the final approval status of the request is sent back to the customer in a reply activity.

A sequence activity makes the assumption that the request can be processed in a reasonable amount of time, justifying the requirement that the invoker wait for a synchronous response (because this service is offered as a request-response operation).

When this assumption cannot be made, it is better to define the customer interaction as a pair of asynchronous message exchanges.

When you double-click the Sequence icon, the activity area shown in Figure B-21 appears. Define appropriate activities inside the sequence activity.

Figure B-21 Sequence Activity

Description of ex_sequence.gif follows
Description of the illustration ex_sequence.gif

B.1.19 SMS Activity

This activity enables you to send a short message system (SMS) notification about an event.

When you drag and drop an SMS icon into a BPEL process, the Edit SMS window shown in Figure B-22 appears.

Figure B-22 Edit SMS Window

Description of notif5.gif follows
Description of the illustration notif5.gif

Use the Edit SMS dialog to enter notification details, as described in Table B-4.

Table B-4 SMS Notification Parameters

Name Description
From number The telephone number from which to send the SMS notification. This can be a static telephone number entered at the time the message is created or a dynamic telephone number from the payload. The XPath Expression Builder can be used to get the dynamic telephone number from the input. See "Setting E-mail Addresses and Telephone Numbers Dynamically".
Telephone number The telephone number to which the message is to be delivered. This can be a) a static telephone number entered at the time the message is created, or b) a telephone number looked up using the identity service, or c) a dynamic telephone number from the payload. The XPath Expression Builder can be used to get the dynamic telephone number from the input.
Subject Subject of the SMS message. This can be free text or dynamic text. The XPath Expression Builder can be used to set dynamic text based on data from process variables that you specify.
Body SMS message body. This must be plain text. This can be free text or dynamic text as described for the Subject parameter.

B.1.20 Switch Activity

This activity consists of an ordered list of one or more conditional branches defined in a case branch, followed optionally by an otherwise branch. The branches are considered in the order in which they appear. The first branch whose condition is true is taken and provides the activity performed for the switch. If no branch with a condition is taken, then the otherwise branch is taken. If the otherwise branch is not explicitly specified, then an otherwise branch with an empty activity is assumed to be available. The switch activity is complete when the activity of the selected branch completes.

A switch activity differs in functionality from a flow activity. For example, a flow activity enables a process to gather two loan offers at the same time, but does not compare their values. To compare and make decisions on the values of the two offers, a switch activity is used. The first branch is executed if a defined condition (inside the case branch) is met. If it is not met, the otherwise branch is executed.

Figure B-23 shows a switch activity with the following defined branches.

Figure B-23 Switch Activity

Description of scope7.gif follows
Description of the illustration scope7.gif

See Also:

The following documentation for examples of using the switch activity:

B.1.21 Terminate Activity

A terminate activity enables you to end the tasks of an activity (for example, the fault handling tasks in a catch branch). For example, if a client's bad credit history is identified or a social security number is identified as invalid, a loan application process is terminated, and the client's loan application document is never submitted to the service loan providers.

Figure B-24 shows a terminate activity in the otherwise branch of a switch activity.

Figure B-24 Terminate Activity

Description of loanflowplus.gif follows
Description of the illustration loanflowplus.gif

See Also:

The following documentation for examples of using the terminate activity:

B.1.22 Throw Activity

This activity generates a fault from inside the business process.

When you double-click the Throw icon, the Throw window shown in Figure B-25 appears.

See Also:

The following documentation for examples of using the throw activity:

B.1.23 Transform Activity

This activity enables you to create a transformation that maps source elements to target elements (for example, incoming purchase order data into outgoing purchase order acknowledgment data).

When you double-click the Transform icon, the Transform window shown in Figure B-26 appears. This window enables you to perform the following tasks:

  • Define the source and target variables and parts to map

  • Specify the transformation mapper file

  • Click the second icon (the Create Mapping icon) to the right of the Mapper File field to access a window for graphically mapping source and target elements. This window enables you to drag and drop (map) a source element to a target element.

Figure B-26 Transform Activity

Description of ex_transform1.gif follows
Description of the illustration ex_transform1.gif

See Also:

The following documentation for examples of using the transform activity:

B.1.24 Voice Activity

This activity enables you to send a telephone voice notification about an event.

When you drag and drop a Voice icon into a BPEL process, the Edit Voice window shown in Figure B-27 appears.

Figure B-27 Edit Voice Window

Description of notif4.gif follows
Description of the illustration notif4.gif

Use the Edit Voice dialog to enter notification details, as described in Table B-5.

Table B-5 Voice Notification Parameters

Name Description
Telephone number The telephone number to which the message is to be delivered. This can be a) a static telephone number entered at the time the message is created, or b) a telephone number looked up using the identity service, or c) a dynamic telephone number from the payload. The XPath Expression Builder can be used to get the dynamic telephone number from the input.
Body Message body. This can be plain text or XML. Also, this can be free text or dynamic text. The XPath Expression Builder can be used to set dynamic text based on data from process variables that you specify.

See Also:

"Voice Activity"

B.1.25 Wait Activity

This activity allows a process to specify a delay for a certain period of time or until a certain deadline is reached. A typical use of this activity is to invoke an operation at a certain time. This activity allows you to wait for a given time period or until a certain time has passed. Exactly one of the expiration criteria must be specified.

When you double-click the Wait icon, the Wait window shown in Figure B-28 appears.

See Also:

The following documentation for examples of using the wait activity:

B.1.26 While Activity

This activity supports repeated performance of a specified iterative activity. The iterative activity is repeated until the given while condition is no longer true.

When you double-click the While icon, the While window shown in Figure B-29 appears. You can enter expressions in this window.

See Also:

The following documentation for examples of using the while activity:

B.2 Services Overview

With the following services, BPEL processes can communicate with Web-based applications and clients.

See Also:

This section contains the following topics:

B.2.1 AQ Adapter

This adapter acts as both a dequeue (inbound) and enqueue (outbound) messaging adapter. In the inbound direction, the adapter polls the queues for messages to dequeue from a destination. In the outbound direction, the adapter enqueues messages to the queue for subscribers to dequeue.

See Also:

The following documentation for examples of using this adapter:
  • SOA_Oracle_Home\bpel\samples\tutorials\124.AQAdapter

B.2.2 Database Adapter

This adapter enables a BPEL process to communicate with Oracle databases or third-party databases through JDBC. To access an existing relational schema, you use the Adapter Configuration Wizard to do the following:

  • Import a relational schema and map it as an XML schema (XSD)

  • Abstract SQL operations such as SELECT, INSERT, and UPDATE as Web services

While your BPEL process deals with XML and invokes web services, database rows and values are queried, inserted, and updated.

See Also:

The following documentation for examples of using this adapter:
  • SOA_Oracle_Home\bpel\samples\tutorials\122.DBAdapter

B.2.3 Decision Service

This service enables the integration of a BPEL process with a rule set or function that is created in a business rules engine. With the decision service, you can make business decisions based on these rules. A wizard guides you through several steps to convert the selected rule set or function (and the operations to perform) into a Web service to use in the BPEL process. The wizard supports the Oracle Business Rules engine. A new decision service partner link for this Web service is automatically created that interfaces with the business rules engine.

Metadata information about the rules engine and repository is stored in a .decs configuration file in your BPEL project. This file is used during run time. A WSDL file based on the rule set to invoke is also created.

See Also:

The following documentation for examples of using this service:

B.2.4 EJB Web Service

This service enables you to publish a Web service from a stateless session EJB. The wizard creates the WSDL document and deployment files needed to publish your code as a Web service.

B.2.5 File Adapter

This adapter acts as both an inbound and outbound adapter. In the inbound direction, the adapter polls for files in a directory to retrieve and process. In the outbound direction, the adapter creates files in a directory.

See Also:

The following documentation for examples of using this adapter:
  • SOA_Oracle_Home\bpel\samples\tutorials\121.FileAdapter

B.2.6 FTP Adapter

This adapter acts as both an inbound and outbound adapter. In the inbound direction, the adapter polls for files in a directory to retrieve and process. In the outbound direction, the adapter creates files in a directory.

See Also:

The following documentation for examples of using this adapter:
  • SOA_Oracle_Home\bpel\samples\tutorials\129.FTPAdapter

B.2.7 Java Web Service

This service enables you to publish a Web service from a Java class. A wizard creates the WSDL document and deployment files needed to publish your code as a Web service. After you select the class and methods you want to publish, the wizard generates deployment descriptors, a JAX-RPC mapping file, and a WSDL document that can be deployed to an application server.

B.2.8 JMS Adapter

This adapter acts as both a consume (inbound) and produce (outbound) messaging adapter. In the inbound direction, the adapter polls (consumes) messages from a JMS destination. In the outbound direction, the adapter sends (produces) messages to a JMS destination.

See Also:

The following documentation for examples of using this adapter:
  • SOA_Oracle_Home\bpel\samples\tutorials\123.JmsAdapter

B.2.9 MQ Adapter

This adapter provides message exchange capabilities between BPEL processes and the IBM MQSeries messaging software.

See Also:

MQ adapter tutorials at
  • http://www.oracle.com/technology/products/integration/adapters/dev_support.html#tutorials

B.2.10 Oracle Applications

This adapter provides comprehensive, bidirectional, multimodal, synchronous, and asynchronous connectivity to Oracle Applications. The adapter supports all modules of Oracle Applications for versions 11.5.1 to 11.5.10. The adapter provides real-time and bidirectional connectivity to Oracle Applications through interface tables, views, application programming interfaces (APIs), and XML Gateway. The adapter inserts data into Oracle Applications using interface tables and APIs. To retrieve data from Oracle Applications, the adapter uses views. In addition, it uses XML Gateways for bidirectional integration with Oracle Applications. XML Gateways are also used to insert as well as receive Open Application Group Integration Specification (OAGIS)-compliant documents from Oracle Applications.

See Also:

The following documentation for examples of using this adapter:

B.2.11 PartnerLink

This service enables you to define the external services with which your process interacts. A partner link type characterizes the conversational relationship between two services by defining the roles played by each service in the conversation and specifying the port type provided by each service to receive messages within the context of the conversation. For example, if you are creating a process to interact with a Credit Rating Service and two loan provider services (United Loan and Star Loan), you create partner links for all three services.

When you double-click the PartnerLink icon, the Partner Link window shown in Figure B-30 appears. You provide the following details:

  • A meaningful name for the service

  • The Web services description language (WSDL) file of the external service

  • The actual service type (defined as Partner Link Type)

  • The role of the service (defined as Partner Role)

  • The role of the process requesting the service (defined as My Role)

Figure B-30 PartnerLink Activity

Description of ex_partnerlink.gif follows
Description of the illustration ex_partnerlink.gif

B.3 Validation When Loading a Process Diagram

You may see an icon (a yellow triangle with an exclamation point) indicating invalid settings as you create and open activities such as a scope or an assign for the first time. The settings are invalid because you have not yet entered details.

To turn this option off for the current project, do the following:

  1. Right-click the BPEL diagram and select Display > Diagram Properties.

  2. Deselect the Enable Automatic Validation option.

  3. Click OK.

  4. Select Save All from the File main menu.

To disable this message for all new projects going forward, do the following:

  1. Select Preferences > BPEL Editor from the Tools main menu in Oracle JDeveloper.

  2. Deselect the Enable Automatic Validation option.

  3. Click OK.

B.3.1 Changes Made In Oracle JDeveloper Do Not Update Automatically

Updates that you make in the BPEL Validation Browser window may not be automatically reflected in the BPEL process. For example, if you perform the following steps:

  1. Create a partner link, do not specify a WSDL file, and click Apply and OK. This error causes an exclamation point icon to display in the upper left corner of the partnerLink icon.

  2. Click the exclamation point to display the BPEL Validation Browser window.

  3. Double-click the partner link in the BPEL Structure section of this window, correctly complete all fields in the Edit Partner Link window that displays, and apply and save your changes.

  4. Right-click the BPEL Structure window and select Refresh Partner Links. Note that the partner link still displays an error.

As a workaround, close the BPEL Validation Browser window, double-click the partnerLink icon in the Diagram window of Oracle JDeveloper, and click Apply and OK. This action causes the error to disappear.

B.4 Summary

This appendix describes the process activities and services that you can drag and drop to create a BPEL process.