published by Dan Atwood (AVIO Consulting): http://www.avioconsulting.com/blog/oracle-bpm-multi-instance-subprocess-activity
Oracle BPM’s Multi-instance Subprocess is a type of a subprocess activity that can take an array of items as input and then handle each individual item in the array separately. The number of times the subprocess is executed can be determined at runtime by the size of the array at runtime. Each work item that is spawned is then acted on individually.
A typical use case for this is when you have an order with many order items inside of it. If each inidivdual order item needs some kind of approval or handling, consider doing this using Oracle BPM’s BPMN based Multi-instance Subprocess activity…
See the original article at: http://www.avioconsulting.com/blog/oracle-bpm-multi-instance-subprocess-activity
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. Just like private member methods or functions help structuring a Java Class or PL/SQL package, so can subprocesses help organize a large BPEL process – even more than scopes already can.
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. At run-time, the subprocess code is re-entrant and re-usable – only one copy is stored in memory, even if it is called multiple times. However, on each call, it has a private scope for local and passed-by-value variables.