Every once in a while I find someone repeating the common myth that BPMN and BPEL are in conflict – that you have to choose one or the other. The most recent place I saw this was in Tom Baeyens’ rebuttal to my criticism of his microkernel-like approach to BPM engine development for Activiti. In that article he references an article by William Vambenepe that shows a completely invalid example of a conflict. I will show the mistake made there, but before I do I’d like to make a more important point on this subject:
BPMN 2.0 Complete Conformance can only be claimed by an engine if the engine also supports the BPEL Process Execution Semantics Conformance Type.
The phrases in bold are the names of conformance classes in the latest public draft of the BPMN 2.0 standard specification. The conformance section of the specification defines multiple conformance types; one of which is the “BPEL Process Execution Semantics Conformance Type”, which defines how to use BPEL to execute a standard BPMN model. The last BPMN conformance type is called “complete conformance” and it also requires support for BPEL.
So, back to the article that Tom Baeyens’ linked to when he claimed that that “the translation step from BPMN to BPEL is very problematic to say the least.”
As it turns out, William Vambenepe misunderstood the semantics of the BPMN construct that was supposedly in conflict with BPEL. He references this snippet of BPMN:

But he describes it this way:
The customer quote can be reviewed by the region manager, the country manager or the VP of sales. At least one of them must review the quote. More than one may review the quote.
He then goes on the show how hard it is to represent the at-least-one requirement in BPEL. The problem is, the above BPMN snippet has no at-least-one semantic.
Here is what the BPMN 2.0 specification says about the inclusive gateway: “each path is considered to be independent, all combinations of the paths may be taken, from zero to all. However, it should be designed so that at least one path is taken.”
This means it has the exact same semantics as BPEL’s concept of conditional links out of an activity: any subset can be followed, including none.
People also sometimes claim that the problem comes from the fact that BPMN is unstructured while BPEL is structured. Actually, the problem is that some tools don’t know about the free-form style that is permitted in BPEL. BPEL supports both structured constructs and unstructured flows. Oracle BPEL Process Manager, for example, does not show the links in unstructured flows (no arrows), so they are basically worthless in that tool, but the standard does allow them and ActiveVOS supports them fully.
So, are there any processes that can be represented in BPMN that are difficult or impossible to map to BPMN? Yes, there is a restriction in BPEL against cycles in flows that make it difficult to represent interleaved loops in standard BPEL (although I haven’t actually seen an example of this pattern in a post about the mismatch between the two languages). However, this restriction in BPEL is not is fundamental to the language. Active Endpoints has implemented this simple extension that removes that restriction and we encourage all BPEL engines to also support the elimination of that restriction.
Let me finish by quoting the first two paragraphs of the BPMN 2.0 specification. Note especially the second paragraph.
1. Scope
The Object Management Group (OMG) has developed a standard Business Process Modeling Notation (BPMN). The primary goal of BPMN is to provide a notation that is readily understandable by all business users, from the business analysts that create the initial drafts of the processes, to the technical developers responsible for implementing the technology that will perform those processes, and finally, to the business people who will manage and monitor those processes. Thus, BPMN creates a standardized bridge for the gap between the business process design and process implementation.
Another goal, but no less important is to ensure that XML languages designed for the execution of business processes, such as WSBPEL (Web Services Business Process Execution Language), can be visualized with a business-oriented notation.
Clearly the specification writers see no conflict between BPMN and BPEL.