Thursday, March 20, 2008

Multipool BPMN example

Enclosed is an example of a BPMN process in a pool interacting with another BPMN pool. Also noteworthy is the correct usage of event based gateway. I am using Oracle BPMN solution's latest version to model this diagram. The BPMN visual extension capability has been used to create the color coded human (green) and automated (blue) tasks. This will further enhance the readability of the BPMN diagaram in Oracle BPA Suite.

Wednesday, March 19, 2008

Compensation in BPMN

How would users model a compensation in Oracle's BPMN tool? Apologies David for the delay, here you go:
In this example, if the BPMN activity "credit check" fails for some reason, the process refunds the credit card charges.

Tuesday, March 18, 2008

Process Levels - Ask the basic questions

I was in a training class again last week. The quintessential question came up as to how many levels of processes should be there. Should we have one process that covers all levels of details? That would be akin to mapping your IT process using BPMN. How does it reflect the simplicity of the business users?

Answers ranged from 0, zero to 4 to 7.

This reminded me of an earlier discussion with Dr Naci Akkok - credit is due here.
He said think about what question is the model answering. Is it answering the "what" question or the "how" question. Users will need at least these two levels - one that answers what happens in my organization; the other level or levels that answers the how question.

Now its important to realize that its better to draw boundaries of how many levels of what questions and how many of how questions would we want to address. This will prevent proliferation of levels and will also mandate and facilitate common understanding. I would love to put a number out here as a recommendation but it would vary with the organization and the complexity of processes therein. I would recommend a number between 2 and 4 should be good enough to capture the details of business processes in your organization.
Oracle BPA Suite provides for multiple levels of processes. BPMN process levels can be further detailed.

Reminder - Disclaimer: The views expressed are entirely my own and do not reflect those of Oracle or a methodology of using Oracle BPA Suite.

Monday, February 18, 2008

Complex Loop example

This is how one will model a complex while loop. After Step 5 you go back to the Step 1.

Friday, February 15, 2008

SOA MAgazine Article

My recent article in the SOA magazine about BPMN BPEL roundtrip and how Oracle BPA facilitates it.
http://mailman.sys-con.com/t/243652/6616587/1175/0/

Workflow Patterns

I looked at the control flow patterns as identified by WorkFlow patterns team here: http://www.workflowpatterns.com/patterns/control/index.php
The BPMN models published here refer to these patterns and you can visit the said website for semantic description of each pattern.

Synchronization pattern in BPMN

This is how one could model synchronization pattern using BPMN. I am using Oracle BPMN solution (Oracle BPA Suite) to model these patterns.

Structured Synchronizing Merge with BPMN

This is an example of how I would model structured synchronizing merge.
I am using Oracle BPMN solution (Oracle BPA Suite) to model these patterns.
Hers is a better example of the structured synchronizing merge.


Parallel Split in BPMN

This is how we model parallel split using BPMN; I am using Oracle BPMN solution (Oracle BPA Suite) to model these patterns.

Multiple Choice in BPMN

This is how one could model multiple choice in BPMN.
I am using Oracle BPMN solution (Oracle BPA Suite) to model these patterns.

Implicit termination


Exclusive choice in BPMN with explicit gateway type

This is how one could model exclusive choice in BPMN. I am using Oracle BPMN solution (Oracle BPA Suite) to model these patterns.

Exclusive Choice in BPMN

This is how one could model exclusive choice in BPMN. We could also use an explicit data based gateway to model exclusive choice. I am using Oracle BPMN solution (Oracle BPA Suite) to model these patterns.

While loops with BPMN

I have seen the question of how to model loops in BPMN coming up on several occassions. I have had it on my system for a good year and its time to share it with folks out there.
So here you go guys - a simple example of a structured loop using BPMN notation; I am using Oracle BPMN solution (Oracle BPA Suite) to model these patterns.


Friday, January 11, 2008

BPMN Patterns - Sequence

Workflow patterns have been analysed in detail by Eindhoven University and Queensland University folks, their findings are enlisted at this location http://www.workflowpatterns.com/index.php

I will start documenting some of the common workflow (control) flow patterns and how they can be modeled using the Oracle BPA Suite.
[P.S., some product pitch] The Oracle BPM story is coming together nice and strong with the Oracle BPA Suite 10.1.3.3. The BPMN 2 BPEL roundtrip is best facilitated in this tool.
I will start covering basic patterns and then build on those concepts to highlight the capabilities of a BPMN2BPEL algorithm.
I am using Oracle BPMN solution (Oracle BPA Suite) to model these patterns.

Lets start with the simple sequence:



This is how a simple sequence will be drawn in the BPMN editor. The same process definition can be made available to the IT users as a BPEL process blueprint.



It will be a simple bpel sequence with a scope for each BPMN activity. IT developers can add implementation details for each activity within the scope of that activity.






Thursday, November 15, 2007

Batch processing example in BPMN




Recently I was presented with this scenario by a colleague and asked, how would I do it in BPMN.
Following is the use case and then there is a proposed BPMN solution out there.
* Process starts with a receive from an queue.
* Queue returns a set of structured elements
* For each element
o Check If element is invalid
o Group elements as type A / B / GP
* End Loop *

* Now, for each set, process as follows
o Invalid elements
+ Prepare report based on invalid elements
+ Email report to managers
o sub-element-set A
+ Group each set of sub-element-A by any common values
+ Determine task assignee for each grouping of elements
+ Generate a human workflow task for each grouping of lements
+ Return immediately (e.g. don't wait for task to complete)
o sub-element-set B/element-GP
+ Merge the two sets of elements
+ Prioritize each of the new set of elements
+ Group each set of elements if they have a common sub-element-B value
+ Determine task assignee for each grouping of elements
+ Generate a human workflow task for each grouping of lements
+ Return immediately (e.g. don't wait for task to complete)
* Done.



Tuesday, October 16, 2007

BPMN diagram updates - who owns Business or IT?

Talking to a prospective customer, the inevitable question cropped up what happens if IT suggests changes to blueprint. Should IT be allowed to modify the process definition at all. Since Business owns BPMN diagrams, should implementation be allowed to update the business process defintion.

In my opinion it should be left to individual implementing organizations. THe tools should support both options: allowing IT to update the Business process and preventing it. Lets give the control to business and IT users and let them decide what changes are allowed. Every organization will have its own dynamics.
  • Some orgs, where IT is deeply entrenched and understands business for a long time, can definitely benefit from the flexibility.
  • Other organizations may have a more strict guidelines and controls over the BP definition with business users.
  • Some other orgs may identify process architects who can make the decision and controls / vets the process definition both before and after implementation.

Another interesting thing that was pointed out was the need for best practices and supporting trainings / tutorials / documents detailing how the tools should be used. I strongly think empowering customers with the capabilities of the tools is the key to successful adoption. I hope this blog is also contributing to the same.