Book Image

Oracle BPM Suite 11g: Advanced BPMN Topics

Book Image

Oracle BPM Suite 11g: Advanced BPMN Topics

Overview of this book

Oracle BPM Suite is a popular and highly capable business process management system with extensive integration capabilities. BPMN, one of the most widely used process modeling notations, includes advanced capabilities for inter-process communication, working of arrays of data, and handling exceptions. However, these very same areas are often poorly understood. This book gives you the knowledge to create professional process models using these advanced features of BPMN."Oracle BPM Suite 11g: Advanced BPMN Topics" is the only book available that provides coverage of advanced BPMN topics for Oracle BPM Suite, helping to fill in the gaps left by the product documentation, and giving you the information that you need to know to use BPMN to its full potential.This book covers the important theory behind inter-process communication, working with arrays and handling exceptions in BPMN, along with detailed, step-by-step practical exercises that demonstrate and consolidate this theoretical knowledge.Throughout the book we'll cover topics including different types of sub-processes, initializing and manipulating arrays, using the multi-instance embedded sub-process, fault propagation and more.With "Oracle BPM Suite 11g: Advanced BPMN Topics" in hand, you'll gain detailed and practical experience in using the advanced features of BPMN to create professional BPMN processes with Oracle BPM.
Table of Contents (12 chapters)
Oracle BPM Suite 11g: Advanced BPMN Topics
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Throw and catch events


Throw and catch events provide a mechanism to communicate with another process or service. Specifically, you can use throw events to invoke:

  • Another BPMN process

  • A BPEL process

  • An adapter

  • A mediator that is exposed as a service

  • Any other component that is exposed as a service

Throw events are usually asynchronous. As soon as the throw event is executed, the process continues with the next task. It does not wait for a response. It is possible for a throw event to be synchronous, in the sense that you can invoke a synchronous service with a throw event and it can reply on the same connection—as opposed to sending a callback later. You can specify that you want to wait for a synchronous reply using the Synchronous property on the throw event. If you want to invoke a synchronous service or process, you could alternatively use a service task .

It is also important to understand that processes invoked through throw/catch events (and also those invoked through send/receive tasks) are not child processes of the invoking process, they are peers . This will be important later on when we discuss exception handling .

You can throw a message or a signal using a throw event. Throwing a message is the equivalent of sending a SOAP message to a service. Throwing a signal is the equivalent of publishing an event into the event delivery network. You can use a throw event to invoke a process that starts with a receive task, but only if that receive task has the Create New Instance property set.