Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases now! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Oracle BPM Suite 11g: Advanced BPMN Topics

You're reading from   Oracle BPM Suite 11g: Advanced BPMN Topics This tutorial reaches the parts that standard manuals don't, taking you deep into advanced BPMN topics for Oracle BPM Suite. With a practical approach and logical explanations, it will make you a maestro of BPMN.

Arrow left icon
Product type Paperback
Published in Oct 2012
Publisher Packt
ISBN-13 9781849687560
Length 114 pages
Edition 1st Edition
Languages
Arrow right icon
Toc

Send and receive tasks


The send task allows you to send a message to a receive task in another process, and the receive task allows you to receive a message from a send task in another process. The send task is similar to the throw message event; however, you cannot use the send task to invoke a process that starts with a message start event. There are no send and receive tasks for signals, only for messages. Send and receive tasks also allow you to attach boundary events (which will be discussed in Chapter 4, Handling Exceptions) to them. This is an important difference.

You can use the receive task to start a process, however, in this case, you must set the Create Instance property and there must be a single start node of type "none" immediately before the receive task.

The following diagram shows three processes that use the methods we have discussed to communicate with each other. The dotted arrows indicate where throw and catch message events are used by Process3 to invoke Process1, and by Process1 to return some data to Process3 when it is finished. The red arrows indicate where send and receive message tasks are used by Process1 to invoke Process2, and by Process2 to return some data to Process1 when it is finished.

Let us consider what happens when an instance of Process3 is executed:

  1. Process3 starts.

  2. Process3 throws a message event to start Process1.

  3. Right away, Process3 goes on to Activity.

  4. At the same time (more or less,) Process1 starts.

  5. Process1 sends a message to start Process2.

  6. Right away, Process1 goes on to Do something.

  7. At the same time (more or less), Process2 starts.

  8. Process2 goes on to Do something else.

  9. While all of this is going on, when Process3 finished doing Activity, it went on to CatchEvent and paused there waiting for a response back from Process1.

  10. Similarly, when Process1 finished Do something, it went on to ReceiveTask and paused there waiting for a response back from Process2.

  11. When Process2 finished Do something else, it sent a response (in this case by sending a message) back to Process1.

  12. Process1 wakes up upon receiving a response (message) from Process2 and then sends its response (by throwing a message event) back to Process3.

  13. Process3 wakes up upon receiving a response (catching a message event) from Process1 and then moves on to its end.

You have been reading a chapter from
Oracle BPM Suite 11g: Advanced BPMN Topics
Published in: Oct 2012
Publisher: Packt
ISBN-13: 9781849687560
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime