Calling other BPEL processes
You can model parts of your business model as subprocesses. Calling one BPEL process from another is discussed.
Before you begin
About this task
Your BPEL process can call other services, including other BPEL processes. There are scenarios in which it is important that the calling BPEL process ("parent") knows that the called service is another BPEL process. For example, you want to manage the lifecycle of the processes, so that if the parent process is terminated, all subprocesses are stopped.
Another important example of when awareness of the nature of the called service is required is in late binding. In a late binding scenario a particular part of the overall process is modeled as a subprocess, but the integration developer is aware that in the future this part of the process may change. A good example would be when a decision point in the business model is reached; today the decision is made by a member of staff (a human task would be required) but in the future the decision may be automated (a microflow could be used). By modeling this decision as a subprocess, the parent process does not have to be modified when this change is made. The new subprocess can be seamlessly introduced.
Many BPEL processes can be reused as part of larger BPEL processes. You can build a set of useful subprocesses that can be reused to facilitate rapid development of complex BPEL processes. Take the following steps to call one BPEL process from another. Below we outline the steps to call a subprocess from a parent process.
For lifecycle management the "parent" and "subprocess" should be part of the same module. For late binding they should belong to different modules.