|
|
Business Objects, which
we shall cover in more detail later, are the mechanism
for Processes are able to read and store data, among
other things. Each Process and Sub-Process will have its own
default Business Object created automatically. This
corresponds to the table where variables are stored, named
after the Process Name. This is essentially the same
as previous versions.
|
|
|
What is different is that
we can access any other Business Object merely by dragging
it onto the Process map. In the case shown, we are
adding the Sub-Process Business Object.
|
|
|
A new instance of the
Business Object is created and you can refer to it from the
‘Other Business Objects’ pane. Here
you can also set the parameter used to reference the
data, although in many cases the default is
sufficient.
|
|
|
What is more interesting
still, is that the same approach can be taken for
Sub-Processes. As the layer has been extracted, we can
use it in many different ways.
|
|
|
Here, we add the Business Object for the
containing Process (we have to decide what is valid, or
the run-time Business Object will read and write
nothing).
|
|
|
You can see here that we can now reference,
ie read and write to, data from the containing Process.
In the past, as we had no reference, this was impossible (we
could in fact do it, but all validation would
fail).
|
|
|
Now we are going to add a linked process. I
add another Process,
‘Process1’.
|
|
|
We then add a Linked Process Stage
(previously known as a
‘Sub-Procedure’ Stage), and select Process1
as the Linked Process.
|
|
|
As we are used to, a Flag is created in the
linked Process.
|
|
|
Again, what we are not used to is the ability to
add the Parent Process Business Object by dragging it to the
Process map.
|
|
|
Notice the default of the FolderId is
set.
|
|
|
We merely need to change that to the Folder
Parent like so …
|
|
|
|
|
|
… and we now reference the data
from the Parent Process directly. SQL is no
longer required.
|
|
|
As an example, using the Formula
Builder…
|
|
|
… we can set the child
Folder’s subject to Variable1 from the Parent
Process.
|
|
|
| This is something we could
never do before without extensive SQL. This has been a major
drawback in the previous ‘Sub-
Procedure’ architecture that has caused difficulties for
many versions.
What is fairly obvious is that you can also set
these variables. What may not be clear is that this bypasses
the standard Metastorm BPM transaction management. As such,
there is a real possibility the data could be overwritten, or
possibly you could create a deadlock.
Use wisely, and treat as a loaded gun, I would
say. Having said that, it is enormously powerful, and
especially useful when used safely to read
variables.
What is not clear is what happens when multiple
records are returned. We assume the first will be
selected.
In our forthcoming section on Business Objects
and Connectors, we shall demonstrate some real examples of
design using concepts such as this to enhance functionality
and make development easier and more
robust.
|
|
|
|
|
|