An in-line sub process can best be thought of as a callable scope. It is a scope that is not part of the normal process flow, but rather a unit of encapsulated logic that can be called zero, one or multiple times from anywhere within the BPEL process – even recursively from within itself. It is in effect very similar to a private member function in a Java Class or a procedure in the body of a PL/SQL package.
An in-line sub process can define arguments to be passed in. These can be passed by reference, which means the sub process can alter their values as well. Additionally, the in-line sub process can access all global process variables. The in-line sub process is a scope which as such can define local variables and nested scopes, use partner links, have event handlers etcetera.
An in line sub process is created from a normal scope that is promoted using the context menu option Convert to sub process. At that time, at the location in the BPEL process where the scope used to be, a call to the sub process can be inserted. Later on, such calls can be added in other places as well. Of course the sub process can be further refined after its initial creation.
In this section, we create an inline subprocess ReportMessageToProcessingResults from an existing scope. Next we will add two calls to this subprocess.
Supporting Resources
Blog Article: Lucas Jellema – SOA Suite 12c: BPEL Inline Sub Processes or locally Reusable Chunks of BPEL process logic
Oracle Fusion Middleware Blog – http://www.soawork.com/2014/09/soa-12c-inline-subprocesses.html
The starting point for this section is application FlightScheduleServiceSOA_step2. The end result is in FlightScheduleServiceSOA_step1.
Documentation
Introduction to Standalone and Inline BPEL Subprocess Invocations