From the Implementation Type list, select None. Select Properties.

Defining the Process Interface 21-21

3. Select Properties.

4. Click the Implementation tab.

5. In the Conversation section, select Continues.

The Properties section changes, the Initiator Node, Name and Operation fields appear. 6. From the Initiator Node list, select the message start or message catch event that defines the process interface.

7. Click the Browse button next to the Name field.

The Type dialog appears. 8. Select the component you want to use as the message catch or message end interface.

9. Click OK.

10. From the Operation list, select the operation you want to use as the as the message catch or message end interface. 11. If the interface you selected requires input data, then you must specify how the data objects in the project map to this input data, by configuring the message event data association. See Section 8.13, Introduction to Data Associations , for more information on how to configure data associations.

12. Click OK.

21.9.3 What Happens When You Use Send and Receive Tasks with an Interface from the Business Catalog to Define an Operation The operation you define uses the signature of the operation form the interface in the business catalog. To invoke the operation in the BPMN process you must use the same operation name and input that you use to invoke the operation in the interface from the business catalog. The operation in the BPMN process returns the same output that the operation in the interface from the business catalog. The SOA composite shows a wire between the BPMN process and the interface used to define its operations. If you define all the process operations using interfaces from the business catalog, then JDeveloper asks if it should delete the BPMN process WSDL. Because the BPMN process does not define an interface, but uses existing interfaces, its WSDL is no longer necessary and you can delete it.

21.10 Defining the Process Input and Output

When you add operations to a BPMN process, you are defining points in the process that other processes or services can use to communicate with it. The communication between processes and other processes or services generally requires an input and returns an output. The flow events that you use you to define the BPMN process operations enable you to define input and output arguments. These input and output arguments define the process input and output. 21-22 Modeling and Implementation Guide for Oracle Business Process Management

21.10.1 How to Add Input and Output Arguments to a BPMN Process

When you expose operations using message start and end events, or send and receive tasks, you can define the input and output argument they require. To add input and output arguments to a BPMN process: 1. In the Argument Definition section, click the Add button. The Create Argument dialog appears. 2. Enter a name to identify the argument.

3. Click the Browse More Types Button.

The Browse Type dialog appears.

4. From the Type list, select a basic data type or select Component to use a

complex data type. 5. If you selected Component then select a component from the list of available complex data types.

6. Click OK.

The Browse Type dialog disappears and the data type you selected appears in the Type field in the Create Argument Dialog.

7. Click OK.

The argument appears in the Argument Definition table.

21.10.2 How to Edit the Input and Output Arguments of a BPMN Process

You can change the name and the types of the arguments of a BPMN Process. To edit the input and output arguments of a BPMN process: 1. From the Argument Definition table, select an argument.

2. In the Argument Definition section, click the Edit button.

The Edit Argument dialog appears. 3. Change the name of the type.

4. Click OK.

The argument in the Argument Definition table shows the updated name and type.

21.10.3 How to Delete an Input or Output Argument of a BPMN Process

You can delete input and output arguments that you do not use or need. To delete an input or output argument: 1. From the Argument Definition table, select an argument.

2. In the Argument Definition section, click the Remove button.

The select argument is removed from the Argument Definition table. Writing Expressions 22-1 22 Writing Expressions This chapter describes how to write expressions and conditions for the BPMN elements that require them. Oracle BPM provides you with two different types of expressions editors that adjust to requirements of different users. This chapter describes the expression language used by each of these expression builders and the operations you can use in the expressions you write. This chapter includes the following sections: ■ Section 22.1, Introduction to Expressions in Oracle BPM ■ Section 22.2, Writing Conditions in Conditional Sequence Flows ■ Section 22.3, Writing Expressions in Complex Gateways ■ Section 22.4, Writing Expressions in Timer Events ■ Section 22.5, Writing Expressions in Data Associations ■ Section 22.6, Writing Conditions in Loop and Multi-Instance Markers in Subprocesses ■ Section 22.7, Writing Expressions and Conditions Using the Simple Expression Builder ■ Section 22.8, Simple Expression Builder Supported Operators ■ Section 22.9, Simple Expression Builder Supported Functions ■ Section 22.10, Writing Expressions Using the XPath Expression Builder ■ Section 22.11, Using Arrays ■ Section 22.12, Using Literals ■ Section 22.13, XPath BPM Extension Functions

22.1 Introduction to Expressions in Oracle BPM

Some BPM elements require you to write a condition or an expression that defines their behavior. For example, you might want to control the flow of your process using a conditional sequence flow that ensures that all expenses above 500 dollars are approved by a manager. Oracle BPM provides you two ways of writing these expressions and conditions: ■ Using the Simple Expression Builder ■ Using the XPATH expression builder 22-2 Modeling and Implementation Guide for Oracle Business Process Management The Simple Expression Builder uses dot notation and its syntax is very similar to Java. The XPATH Expression Builder uses standard XPATH language. After writing an expression in simple expression language you can convert it to XPath and vice versa. When you convert an expression from one language to another, the expression editor removes any operators and parenthesis that do not affect the meaning of the expression. Oracle BPM uses expressions to configure the following BPMN elements: ■ Conditional Sequence Flows ■ Complex Gateways ■ Timer Events ■ Data Associations ■ Loop Markers ■ Multi-Instance Markers ■ User Task Advanced Properties The results of the expression vary according to the type of element you are configuring. Table 22–1 describes the expression required by each of the BPM elements. The configuration dialogs of the BPM elements that support expressions contain an embedded expression editor and a button to launch the expression builder. The latter is more suitable when you are working with long expressions. Both expression builders enable you to browse the available variables. The XPATH expression builder also enables you to browse the available functions.

22.2 Writing Conditions in Conditional Sequence Flows

To implement a conditional sequence flow you must provide a condition. When the token arrives to the conditional sequence flow, the BPMN Server Engine evaluates the Table 22–1 Expression Types BPMN Element Expression Type Conditional Sequence Flow Condition that when evaluated results in a boolean value. Complex Gateway Condition that when evaluated results in a boolean value. Timer Event Time Date: expression that when evaluated results in a DateTime value. Cycle: expression that when evaluated results in an Interval value. Data Associations Expression that when evaluated results in a value of the same type as the argument in the data association. User Task Advanced Properties Expression that when evaluated results in a String value. Loop Marker Condition that when evaluated results in a boolean value. Multi-Instance Marker Loop Cardinality: expression that when evaluated results in an Int value. Completion Condition: Condition that when evaluated results in a boolean value.