A stand alone sub process is a sub process which resides inside the same composite. Stand alone sub process contains activities that can be used inside the composite. We can use call activity to invoke a Standalone subprocess. We can see the standalone subprocess in components view.
we don’t have any restriction on one BPEL subprocess calling itself recursively. You must determine if you want to recursively call the same BPEL subprocess and the number of times the subprocess calls occur.
we can create and deploy a SOA composite application that contains only a standalone subprocess.
A standalone subprocess cannot be shared in the MDS Repository. But a BPEL process with call activities for calling the subprocess can be shared in the MDS Repository.
Now we will see how to create a standalone subprocess and use it.
Create a SOA composite with synchronous BPEL process.
Create a string variable(MainVar) and assign input to that string variable.
Now we will see how to create stand alone subprocess inside this composite.
For creating standalone subprocess right click on components -> Insert -> Subprocess
Provide the name for subprocess and click on OK.
Open the Stand alone subprocess and create a string variable(Subvar) and in assign action use an expression to concat the var with some text and SAVE.
Now in the composite editor right click on the BPEL process click on EDIT .
It will open the BPEL process , From the Oracle Extensions subsection, drag a call activity below the assign activity in Oracle BPEL Designer.
Double click the Call and select the subprocess, Click inside the Value column to invoke the Variable Chooser dialog, select the variable we have created (MainVar) and click on OK.
Deselect the checkbox for “Copy By Value” and click on OK.
From component palette drag an assign activity and place it after call activity and In the Copy Rules tab of the assign activity, update the output message with (MainVar), and click OK.
This BPEL process, the following logic is implemented:
string value in the input message in AssignIn is taken and assigned to MainVar in the call activity, to be passed by reference.
AssignOut takes MainVar and creates the response. The MainVar value is updated by the subprocess.
If you see the composite , you can see subprocess is wired to your BPEL process.
Now we will deploy the composite and test the results. You could see that standalone subprocess invoked from main BPEL process and the output has the response from subprocess.