Unit 20: Extensions in ActiveBPEL

Similar documents
Unit 16: More Basic Activities

ActiveBPEL Fundamentals

ActiveBPEL Fundamentals

Unit 11: Faults. BPEL Fundamentals, Part 1

Oracle SOA Suite 12c: Build Composite Applications. About this course. Course type Essentials. Duration 5 Days

WS-BPEL 2.0 Features and Status Overview

Oracle SOA Suite 12c: Build Composite Applications

Oracle SOA Suite 12c : Build Composite Applications

ActiveWebflow Designer User s Guide

BPEL Research. Tuomas Piispanen Comarch

Administration Console

Extending BPEL with transitions that can loop

Oracle SOA Suite 10g: Services Orchestration

We recommend you review this before taking an ActiveVOS course or before you use ActiveVOS Designer.

Oracle SOA Suite 11g: Build Composite Applications

Middleware for Heterogeneous and Distributed Information Systems Exercise Sheet 8

Oracle SOA Suite 11g: Build Composite Applications

Business Process Execution Language

Artix Orchestration Administration Console. Version 4.2, March 2007

Developing BPEL Processes Using WSO2 Carbon Studio. Waruna Milinda

ActiveVOS Fundamentals

BPEL Business Process Execution Language

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Implementing a Business Process

Lesson 11 Programming language

C++ Programming: From Problem Analysis to Program Design, Third Edition

Oracle BPM 11g: Implement the Process Model

Alternatives to programming

Automating Administration with Windows PowerShell 2.0

WS-BPEL Standards Roadmap

BPEL4WS (Business Process Execution Language for Web Services)

MTAT Enterprise System Integration. Lecture 10. Process-Centric Services: Design & Implementation

An overview of this unit. Wednesday, March 30, :33 PM

RESTful Web service composition with BPEL for REST

Building E-Business Suite Interfaces using BPEL. Asif Hussain Innowave Technology

B. By not making any configuration changes because, by default, the adapter reads input files in ascending order of their lastmodifiedtime.

After completing this appendix, you will be able to:


Enterprise System Integration. Lecture 10: Implementing Process-Centric Composite Services in BPEL

Composing Web Services using BPEL4WS

Business Process Engineering Language is a technology used to build programs in SOA architecture.

Asynchronous Functions in C#

CGS 3066: Spring 2015 JavaScript Reference

Lesson 06 Arrays. MIT 11053, Fundamentals of Programming By: S. Sabraz Nawaz Senior Lecturer in MIT Department of MIT FMC, SEUSL

Advanced BPEL. Variable initialization. Scope. BPEL - Java Mapping. Variable Properties

M Introduction to Visual Basic.NET Programming with Microsoft.NET 5 Day Course

BEAWebLogic RFID. Edge Server. Using the Administration Console

SDL Content Porter 2013 User Manual. Content Management Technologies Division of SDL

Noopur Gupta Eclipse JDT/UI Committer IBM India

Program Correctness and Efficiency. Chapter 2

COPYRIGHTED MATERIAL. Contents. Part I: C# Fundamentals 1. Chapter 1: The.NET Framework 3. Chapter 2: Getting Started with Visual Studio

WS-BPEL Standards Roadmap

Principles of Computer Science I

Professional Course in Web Designing & Development 5-6 Months

BEAJRockit Mission Control. Method Profiling

INTRODUCTION TO C++ PROGRAM CONTROL. Dept. of Electronic Engineering, NCHU. Original slides are from

ActiveVOS Technologies

One of the main selling points of a database engine is the ability to make declarative queries---like SQL---that specify what should be done while

BEAAquaLogic. Service Bus. Interoperability With EJB Transport

JBoss Enterprise SOA Platform 5

Delivery Options: Attend face-to-face in the classroom or remote-live attendance.

Web Services Business Process Execution Language Version 2.0

Intermediate Python 3.x

WA1278 Introduction to Java Using Eclipse

Testpassport.

SIP Normalization Script Configuration

Programming Web Services in Java

Curriculum Map Grade(s): Subject: AP Computer Science

Debugging in AnyLogic. Nathaniel Osgood CMPT

C IBM. IBM Business Process Manager Advanced V8.0 Integration Development

Business Process Modeling Language

02267: Software Development of Web Services

Stack of Web services specifications

Business Process Modeling Language

ActiveVOS Fundamentals

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance.

Announcement. Exercise #2 will be out today. Due date is next Monday

CERTIFICATE IN WEB PROGRAMMING

Oracle Education Partner, Oracle Testing Center Oracle Consultants

Programming Languages Third Edition. Chapter 9 Control I Expressions and Statements

Chapter 4 Introduction to Control Statements

Client Side JavaScript and AJAX

2609 : Introduction to C# Programming with Microsoft.NET

1Z0-560 Oracle Unified Business Process Management Suite 11g Essentials

Learning vrealize Orchestrator in action V M U G L A B

Course Hours

Bachelor s Thesis. Scope-based FCT-Handling in WS-BPEL 2.0

Lesson 10 BPEL Introduction

Oracle BPM 10g R3 Programming 1 Essentials

Chapter 2: Functions and Control Structures

VB.NET. Exercise 1: Creating Your First Application in Visual Basic.NET

Hands-On Lab. Getting Started with the UCMA 3.0 Workflow SDK. Lab version: 1.0 Last updated: 12/17/2010

Investigation of BPEL Modeling

PTN-202: Advanced Python Programming Course Description. Course Outline

SCXML State Chart XML

Introduction to Programming Microsoft.NET Applications with Visual Studio 2008 (C#)

SERVICE-ORIENTED COMPUTING

METEOR-S Process Design and Development Tool (PDDT)

BasicScript 2.25 User s Guide. May 29, 1996

Developing BPEL processes. Third part: advanced BPEL concepts and examples

Transcription:

Unit 20: Extensions in ActiveBPEL BPEL Fundamentals This is Unit #20 of the BPEL Fundamentals course. In past Units we ve looked at ActiveBPEL Designer, Workspaces and Projects, created the Process itself and then declared our Imports, PartnerLinks and Variables and then we created Interaction Activities in various ways. Next, we looked at the Sequence activity, Assignments and Copies and after that we studied Correlation, Scopes and Fault Handling. Then, we examined Compensation, Event Handling, Termination Handlers and the If activity, which allows us to do conditional processing and we also looked at the rest of the BPEL Basic activities. In the last three Units we looked at BPEL's Flow activity, Pick activities, and the various types of Looping activities. In this Unit we'll look at the extension capabilities that are available in the BPEL v2.0 specification and at how Active Endpoints has implemented some of them. Endpoints, Inc. All Rights Reserved 1

Unit Objectives At the conclusion of this unit, you will be familiar with: ActiveBPEL Extensions Overview Interrupting Iterative Processing Process Suspension Overriding default behavior Enabling process level handlers Additional Expression Languages Handling unknown extensions 2 Copyright 2004-2007 Active Endpoints, Inc. Endpoints, Inc. All Rights Reserved 2

ActiveBPEL Extensions Overview ActiveBPEL defines several extensions to the WS-BPEL 2.0 specification WS-BPEL extensibility mechanism is used All provided extensions are mustunderstand= yes 3 Copyright 2004-2007 Active Endpoints, Inc. The WS-BPEL v2.0 specification allows for extensions to be defined by vendors of BPEL development tools. Obviously, these extensions must be supported by the engine/server on which they run. Extensions have a "mustunderstand" attribute that can have the values True or False. Endpoints, Inc. All Rights Reserved 3

ActiveBPEL Extensions Overview ActiveBPEL extensions are defined for: Special Query handling including: Create XPath and Disable Selection Failure in the namespace: http://www.activebpel.org/2006/09/bpel/extension/query_handling Activities Break, Continue and Suspend in the namespace: http://www.activebpel.org/2006/09/bpel/extension/activity Process Level Coordination For sub-process invocation (advanced topic) in the namespace: http://www.activebpel.org/2006/09/bpel/extension/process_coordin ation ActiveBPEL also handles unrecognized extensions Dialogs to view and edit unknown extensions 4 Copyright 2004-2007 Active Endpoints, Inc. Active Endpoints has taken advantage of this capability to build several extensions to the BPEL v2.0 specification. The first two extensions deal with queries and how they are handled. The "Create XPath" extension tells the system to create the proper structure and path for an uninitialized variable or message. The second turns off the fault that would normally be thrown if an uninitialized variable or message part were to be accessed during the execution of a query. The second group is made up of three extension activities that are made available to ActiveBPEL Users. The Break activity is used to exit an entire executing loop construct immediately after the Break is called. The Continue activity is used to exit the current iteration of a loop only, resuming the execution of the loop on the following iteration, if there is one. (If a Continue were called on the last iteration of a loop, it would work in effect exactly as the Break activity would.) The Suspend activity does exactly what one would expect, it suspends execution of the process at the point at which the Suspend activity is called. This allows Administrative personnel to examine the data and execution path of a currently running process in real time. The third extension creates the option to run a process as a sub-process of another process. The invocation of a sub-process is an advanced topic and is not covered in this class. ActiveBPEL Designer also offers a series of dialogs that allow you to view and edit unknown extensions. Note that this does not mean that you will be able to execute them on your engine, but it does allow you to gather minimal information about them. Endpoints, Inc. All Rights Reserved 4

Using ActiveBPEL Extensions Any time a BPEL Process uses an ActiveBPEL extension an information entry is added to the Problems view Serves to inform you that the process contains an extension that is not defined in the WS-BPEL 2.0 specification Therefore the process may only run on an ActiveBPEL server 5 Copyright 2004-2007 Active Endpoints, Inc. If the process you are building uses any of the ActiveBPEL extensions we've discussed, the system will always add an "Information" entry to the Errors and Warnings that appear on the Problems tab. Note again that if a process uses an Extension(s), that Extension will only execute on an Engine that understands the extension. Endpoints, Inc. All Rights Reserved 5

Unit Objectives At the conclusion of this unit, you will be familiar with: ActiveBPEL Extensions Overview Interrupting Iterative Processing Process Suspension Overriding default behavior Enabling process level handlers Additional Expression Languages Handling unknown extensions 6 Copyright 2004-2007 Active Endpoints, Inc. Endpoints, Inc. All Rights Reserved 6

BPEL Extensions Structure Roadmap process Global Declarations Structured Activities Basic Activities Break uninitialized Continue Suspend Process Definition 7 Copyright 2004-2007 Active Endpoints, Inc. Here we see the BPEL Roadmap and the Extension activities we discussed earlier. We'll start with the Break activity. It is a Basic BPEL activity and is part of our process definition. Endpoints, Inc. All Rights Reserved 7

Break Activity Overview and Syntax Used to immediately halt any further processing within a looping construct Control passes immediately to the next activity following the looping construct Applicable to all looping activities while, repeatuntil and foreach <ext:break standard-attributes> standard-elements </ext:break> 8 Copyright 2004-2007 Active Endpoints, Inc. The Break activity is used to stop the execution of a Loop (any of the three loop types) construct and exit the activity. Process execution resumes immediately with the next activity in the process definition. Endpoints, Inc. All Rights Reserved 8

Break Activity Scenario While counter < 5 = 3 Break Assign Invoke 9 Copyright 2004-2007 Active Endpoints, Inc. Here we have a Break activity scenario. Inside of our While loop we have an If statement that checks to see whether the iteration is the third one. If so, it calls the Break activity, which exits the loop. If it is not the third iteration, it executes the Assign activity below it. Once it exits the While loop (via the Break or not), it then executes the final Invoke activity at the bottom. Endpoints, Inc. All Rights Reserved 9

Break Activity Example <while> <condition> bpws:getvariabledata('counter') < 5 </condition> <if> <condition> bpws:getvariabledata('counter') = 3 </condition> <extensionactivity> <ext:break /> </extensionactivity> </if> <assign... /> </while> <invoke... /> 10 Copyright 2004-2007 Active Endpoints, Inc. Here is the syntax for the example we saw on the previous slide. Inside the While loop, we first check the loop's conditional statement, which looks to see whether the 'counter' variable's value is less than or equal to '5.' (Note also that it uses the "getvariabledata" function to retrieve this value.) It then runs the value through an If statement, which also uses a conditional and the "getvariabledata" function to check if the 'counter' variable is equal to '3.' Below that, we see that the Break activity is enclosed within the "extensionactivity" tags. Endpoints, Inc. All Rights Reserved 10

Break Activity Semantics When multiple looping activities are nested within each other, a break activity applies only to its immediate enclosing looping activity In the case of a parallel foreach activity Causes all of the executing iterations to terminate and complete normally Early termination through a break activity is not considered a faulting state Therefore does not prevent compensation 11 Copyright 2004-2007 Active Endpoints, Inc. Here are the semantics of the Break activity. The Break will exit the currently executing loop, but it does not exit any loop(s) that enclose the current loop. Because the foreach loop is different than the While and the repeatuntil, the way the Break works with it must be stated separately. If a Break is called during the execution of a foreach, then each of the executing parallel iterations will terminate immediately. In all cases where a Break activity is called, the termination of the loop is considered to be normal in nature. It is not a Faulting activity and therefore calling a Break does not prevent a Compensate activity from being called later on in the process. Endpoints, Inc. All Rights Reserved 11

BPEL Extensions Structure Roadmap process Global Declarations Structured Activities Basic Activities Break Continue Suspend Process Definition 12 Copyright 2004-2007 Active Endpoints, Inc. The next of our Extension activities is Continue. Continue is a Basic activity and is part of our process definition. Endpoints, Inc. All Rights Reserved 12

Continue Activity Overview and Syntax Used to immediately skip the remaining activities within a looping construct Continues with the start of the next iteration of the loop Applicable to all looping activities while, repeatuntil and foreach <ext:continue standard-attributes> standard-elements </ext:continue> 13 Copyright 2004-2007 Active Endpoints, Inc. The purpose of the Continue activity is to skip the current iteration of an executing Loop activity. Unlike the Break activity, the Continue activity does not exit the entire loop, but only the current iteration, meaning that execution of the loop continues with the next iteration, if any. Note that this construct can be used with any of the three BPEL looping activities. Endpoints, Inc. All Rights Reserved 13

Continue Activity Scenario For Each (1 to 5) Scope variable name="counter" type="xsd:unsignedint" = 3 Continue Add 1 to Total 14 Copyright 2004-2007 Active Endpoints, Inc. Now, let's look at a Continue activity scenario. Here we have a foreach loop with five iterations scheduled, according to the conditional statement. Inside the loop there is an If statement which has a conditional expression that determines whether or not this is the third iteration of the loop. If it is, then it will exit that iteration only, and then continue executing the loop, beginning with the next iteration, if any. (If continue is called on the last iteration, the loop simply ends at that point.) Endpoints, Inc. All Rights Reserved 14

Continue Activity Example <foreach countername="counter" parallel="no"> <startcountervalue>1</startcountervalue> <finalcountervalue>5</finalcountervalue> <scope isolated="no"> <if> <condition> bpws:getvariabledata('counter') = 3 </condition> <extensionactivity> <ext:continue /> </extensionactivity> </if> <assign> <copy> <from>bpws:getvariabledata('total') + 1</from> <to variable='total' /> </copy> </assign> </scope> </foreach> 15 Copyright 2004-2007 Active Endpoints, Inc. Here is the syntax for the Continue scenario we looked at on the last slide. We see that the iterations will be executed serially (parallel = no) and that the child scopes are not Isolated. Inside the If conditional statement we use the getvariabledata function to retrieve the value of 'counter' and compare it to '3.' Inside the "extensionactivity" tags is the Continue call itself. Finally, we see the Assign activity and its Copy Operation that follows the If statement. Endpoints, Inc. All Rights Reserved 15

Continue Activity Semantics For a while or repeatuntil activity The condition expression is evaluated to see if another iteration is possible For a foreach activity Serial execution The next iteration of the loop executes or the loop completes if there are no more iterations Parallel execution Only affects the execution of the current iteration, all other outstanding iterations are unaffected 16 Copyright 2004-2007 Active Endpoints, Inc. Here are the semantics for the Continue activity. For a While or a RepeatUntil, the conditional is evaluated to see whether you need to stay within the loop (i.e., there is another iteration required.) For a foreach loop, serial execution is treated much the same as in the other loops, but if there is parallel execution required, then it only affects the current iteration, and all other iterations execute normally. Endpoints, Inc. All Rights Reserved 16

Unit Objectives At the conclusion of this unit, you will be familiar with: ActiveBPEL Extensions Overview Interrupting Iterative Processing Process Suspension Overriding default behavior Enabling process level handlers Additional Expression Languages Handling unknown extensions 17 Copyright 2004-2007 Active Endpoints, Inc. Endpoints, Inc. All Rights Reserved 17

BPEL Extensions Structure Roadmap process Global Declarations Structured Activities Basic Activities Break Continue Suspend Process Definition 18 Copyright 2004-2007 Active Endpoints, Inc. Here is a look at our BPEL Roadmap, where we see that the Suspend activity is a Basic activity in BPEL and is part of our process definition. Endpoints, Inc. All Rights Reserved 18

Suspend Activity Overview and Syntax Used to suspend a running process indefinitely Optionally provide data to an alerting service via the variable attribute Alert will be triggered upon suspend <ext:suspend variable="ncname" standard-attributes> standard-elements </ext:suspend> 19 Copyright 2004-2007 Active Endpoints, Inc. The Suspend activity also has an optional alerting service that is fired when the process is suspended. This might be useful to alert an Administrator that one of their process instances has been suspended so they can examine it and see what's wrong, for example. Endpoints, Inc. All Rights Reserved 19

Suspend Activity Scenario Scope Fault Handler catchall Invoke Suspend 20 Copyright 2004-2007 Active Endpoints, Inc. Here is a Suspend activity scenario. We have a Scope that contains an Invoke and has also defined a Fault Handler. (Note: this happens to be an inline Fault Handler for the Invoke.) First, the Scope executes, then the Invoke. If a fault is thrown during the execution of the Invoke, then the Fault Handler will execute. This will route the fault through the catchall and then Suspend the process at that point. Once suspended, it can be either Resumed or Terminated through the Administrative console of the engine. (You can also open up the suspended process instance in a remote debugging session.) Endpoints, Inc. All Rights Reserved 20

Suspend Activity Example <invoke partnerlink="calcservicepl" porttype="calc:calculatorporttype" operation="calculatoroperation" inputvariable="calculatorinput" outputvariable="calculatoroutput" > <catchall> <extensionactivity> <ext:suspend /> </extensionactivity> </catchall> </invoke> 21 Copyright 2004-2007 Active Endpoints, Inc. Here is the source code for the example we saw on the previous slide. Endpoints, Inc. All Rights Reserved 21

Suspend Activity Semantics Process will be suspended at the point of the suspend activity Will have to manually resume the process ActiveBPEL Enterprise offers the ability to perform process exception management on suspended processes Providing any corrective data for error recovery prior to manually resuming the process 22 Copyright 2004-2007 Active Endpoints, Inc. Once a process is suspended, it requires affirmative action on the part of an Administrator to Resume or Terminate the process instance. Endpoints, Inc. All Rights Reserved 22

Unit Objectives At the conclusion of this unit, you will be familiar with: ActiveBPEL Extensions Overview Interrupting Iterative Processing Process Suspension Overriding default behavior Enabling process level handlers Additional Expression Languages Handling unknown extensions 23 Copyright 2004-2007 Active Endpoints, Inc. Endpoints, Inc. All Rights Reserved 23

Overriding Standard WS-BPEL Behavior ActiveBPEL provides the ability to override two standard BPEL execution behaviors Creation of XML nodes Suppression of the standard Selection Failure fault Overrides are set at the process level using two extension attributes Defaults can be provided for new process creation 24 Copyright 2004-2007 Active Endpoints, Inc. ActiveBPEL provides the option to override the specification in two ways: to allow the creation of XML nodes and to allow the suppression of standard selection failure faults. The "Create XPath" setting allows an executing process to automatically create a location path for a non-existent node in a complex variable, rather than throwing a fault when a query tries to access it. The ActiveBPEL "Disable Selection Failure" extension allows a null value to be returned from a function or assignment that contains an XPath (or other language) query string. You can enable one or both of these extensions on a process-by-process basis or you can set it in the preferences to include it by default in all processes. Endpoints, Inc. All Rights Reserved 24

Setting the Default Execution Behavior Default preferences used for creating new processes Can override preferences on a per process basis No value implies standard WS-BPEL behavior 25 Copyright 2004-2007 Active Endpoints, Inc. The extensions discussed previously can be enabled/disabled on a per process basis or they can be set as the default for all processes created in the future. Endpoints, Inc. All Rights Reserved 25

Setting the Execution Behavior per Process You can specify the execution behavior for a particular process either when creating a process or afterwards in the process properties New Process Process Properties view 26 Copyright 2004-2007 Active Endpoints, Inc. To set them for a specific process, you can either do it from the "New BPEL Process" dialog or you can go to the Properties Tab (click on the Advanced filter) and set the values there. Endpoints, Inc. All Rights Reserved 26

Unit Objectives At the conclusion of this unit, you will be familiar with: ActiveBPEL Extensions Overview Interrupting Iterative Processing Process Suspension Overriding default behavior Enabling process level handlers Additional Expression Languages Handling unknown extensions 27 Copyright 2004-2007 Active Endpoints, Inc. Endpoints, Inc. All Rights Reserved 27

Enabling process level handlers ActiveBPEL execution environments extend the standard WS-BPEL to support transactional execution of sub-processes (Advanced topic) Sub-processes can use process-level compensation and termination handlers 28 Copyright 2004-2007 Active Endpoints, Inc. The BPEL v2.0 specification does not allow for process-level Compensation or Termination Handlers, but ActiveBPEL has provided this functionality as an option. This is accommplished by allowing a process to Invoke another process as a subprocess. Sub-process invocation/transactional execution is an advanced topic and is not covered in this course. Endpoints, Inc. All Rights Reserved 28

Enabling Process Level Handlers You can enable the viewing and editing of process-level Compensation and Termination Handlers using a process extension attribute Process Properties view 29 Copyright 2004-2007 Active Endpoints, Inc. To enable this functionality, set focus on the process and open the Properties Tab. Endpoints, Inc. All Rights Reserved 29

Enabling Process Level Handlers Handlers Disabled Handlers Enabled Additional Process Editor Tabs 30 Copyright 2004-2007 Active Endpoints, Inc. Once the process-level Compensation/Termination handlers are enabled, the Process Editor will add tabs for either or both, as appropriate. Endpoints, Inc. All Rights Reserved 30

Unit Objectives At the conclusion of this unit, you will be familiar with: ActiveBPEL Extensions Overview Interrupting Iterative Processing Process Suspension Overriding default behavior Enabling process level handlers Additional Expression Languages Handling unknown extensions 31 Copyright 2004-2007 Active Endpoints, Inc. Endpoints, Inc. All Rights Reserved 31

Additional Expression Language Support Two additional expression languages have been added in addition to the required XPath 1.0 support XQuery 1.0 JavaScript 1.5 Expression languages can be specified at the process, activity or operation level Inherited from the process level or default if not set 32 Copyright 2004-2007 Active Endpoints, Inc. The BPEL v2.0 specification requires support for XPath 1.0 as an Expression language. In addition, ActiveBPEL supports the use of the XQuery 1.0 and JS1.5 languages. If the Expression language is not set specifically, it will be inherited from the process or from the default settings. Endpoints, Inc. All Rights Reserved 32

Setting the Default Expression Language Default preferences used for creating new processes Can override preferences on a per process basis No value implies XPath 1.0 33 Copyright 2004-2007 Active Endpoints, Inc. The Default Expression language is set in the Designer's Preferences panel, as shown. Endpoints, Inc. All Rights Reserved 33

Setting the Expression Language per Process You can specify the expression language for a particular process either when creating a process or afterwards in the process properties New Process Process Properties view 34 Copyright 2004-2007 Active Endpoints, Inc. You can set the expression language for a specific process through the default or by using the Properties View. Endpoints, Inc. All Rights Reserved 34

Setting the Expression Language per activity You can override the process expression language where ever an expression can be used Language Selector Language Selector 35 Copyright 2004-2007 Active Endpoints, Inc. In the various dialogs where Expression languages are used to construct queries (Query Builder, If Expression Builder, Alarm Expression Builder, Transition Builder) you can select the language directly from the dialog. This selection will only apply to that specific dialog. Endpoints, Inc. All Rights Reserved 35

Unit Objectives At the conclusion of this unit, you will be familiar with: ActiveBPEL Extensions Overview Interrupting Iterative Processing Process Suspension Overriding default behavior Enabling process level handlers Additional Expression Languages Handling unknown extensions 36 Copyright 2004-2007 Active Endpoints, Inc. Endpoints, Inc. All Rights Reserved 36

Handling unknown extensions ActiveBPEL Designer provides the ability to view and edit unknown extensions 37 Copyright 2004-2007 Active Endpoints, Inc. If a process contains extensions that are unknown to the engine, it cannot execute them. However, the Designer does give you some ability to view and edit the Elements and Attributes of these extensions. Endpoints, Inc. All Rights Reserved 37

Lab 1 Getting Started Overview of Lab Exercises Lab Files and setup Create a new workspace Create a new project Add Web References Changing preferences 38 Copyright 2004-2007 Active Endpoints, Inc. The next Lab in the BPEL Fundamentals class is Lab #15. (Note: This is lab #1 if you are taking the BPEL Intermediate course.) In this lab we'll reuse the Workspace, Project and Process that we used in Lab #14, the foreach.bpel file and change some settings to prepare for the next lab. Endpoints, Inc. All Rights Reserved 38

Lab 2 extensionactivity Overview of Lab Exercises Use the break extensionactivity to interrupt iterative processing For each item, check its inventory level Abort foreach loop on out-of-stock condition 39 Copyright 2004-2007 Active Endpoints, Inc. The next Lab in the BPEL Fundamentals class is Lab #16. (Note: This is lab #2 if you are taking the BPEL Intermediate course.) In this lab we'll add a Break activity that will be used to exit the Inventory Loop in our foreach.bpel process. Endpoints, Inc. All Rights Reserved 39

Unit Objectives Now you are familiar with: ActiveBPEL Extensions Interrupting Iterative Processing Process Suspension Overriding default behavior Enabling process level handlers Additional Expression Languages Handling unknown extensions 40 Copyright 2004-2007 Active Endpoints, Inc. Endpoints, Inc. All Rights Reserved 40