Reusable logic through In-Line Sub Process

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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

De volgende HTML tags en attributen zijn toegestaan: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>