Showing posts with label BPM. Show all posts
Showing posts with label BPM. Show all posts
Monday, October 17, 2016
Monday, May 25, 2015
#404 BPM use of Suspend in Event Sub-processes
Here is a simple example -
The logic here is simple -
I can no longer cancel an order if the ApproveOrder4Me task has been completed.
Thus the setting of a variable in the SetNoCancelAllowed activity.
Now to the event sub-process -
Here is the configuration of the Cancel activity
It is a suspending event -
Correlation has been defined based on the orderNr.
So first I check whether it is still possible to cancel the order.
If so, all I do is log the cancellation and then exit.
If not, I set the pre-defined process variable action to resume (note: lower case)
So now to the test -
I start an order process -
The process is waiting at the first human task, so I can still cancel.
I cancel -
I should see 2 instances of the composite in em -
I click on the first instance (430023)
I now test resumption after suspension -
I create a new order process instance -
I go to the first human task and APPROVE -
From a functional perspective, I should no longer be able to cancel,
The first human task has been executed and the process is now waiting at the 2nd.
But I try it anyway -
Now don't get confused by the human task name, I am reusing the same
human task for both activities.
I now go back to workspace and approve the second task -
I check the audit trail in em -
The logic here is simple -
I can no longer cancel an order if the ApproveOrder4Me task has been completed.
Thus the setting of a variable in the SetNoCancelAllowed activity.
Now to the event sub-process -
Here is the configuration of the Cancel activity
It is a suspending event -
Correlation has been defined based on the orderNr.
So first I check whether it is still possible to cancel the order.
If so, all I do is log the cancellation and then exit.
If not, I set the pre-defined process variable action to resume (note: lower case)
So now to the test -
I start an order process -
The process is waiting at the first human task, so I can still cancel.
I cancel -
I should see 2 instances of the composite in em -
I click on the first instance (430023)
I now test resumption after suspension -
I create a new order process instance -
I go to the first human task and APPROVE -
From a functional perspective, I should no longer be able to cancel,
The first human task has been executed and the process is now waiting at the 2nd.
But I try it anyway -
Now don't get confused by the human task name, I am reusing the same
human task for both activities.
I now go back to workspace and approve the second task -
I check the audit trail in em -
Thursday, May 21, 2015
#403 BPM Throw Terminate - at your own risk!
Simple example -
This process is called from my order process, used in the previous post -
Note CallTerminator etc -
I deploy and test with OrderNr 123 -
So let's look at the audit trail for OrderProcess
However, according to em, the process is still running -
Not what was probably wanted!
Terminate should also not be used in parallel or inclusive gateways.
This process is called from my order process, used in the previous post -
Note CallTerminator etc -
I deploy and test with OrderNr 123 -
So let's look at the audit trail for OrderProcess
However, according to em, the process is still running -
Not what was probably wanted!
Terminate should also not be used in parallel or inclusive gateways.
#402 BPM - Reusable Processes
So what are reusable processes in BPM?
reusable, you may say and who am I to disagree!
But there must be something more to it, right?
Let's begin with the ORCL docs -
You can invoke a process from another process using call activities. The invoked
process is a child of the process invoking it.
When you run a call activity, the engine does not create a new token for the reusable
process. The token in the parent process passes to the reusable process. When the
token completes the child process, it returns to the parent process to continue running
the activities that follow the call activity.
The child process must be a reusable process. Reusable processes can be invoked from
multiple processes. You can only start a reusable process by invoking it from a call
activity.
You cannot access reusable process from other SOA components because they are not
part of the SOA composite.
The start event of a reusable process must always be of type none. The end event can
be a error or a message event.
Here is a simple composite containing a BPM process -
As usual with my examples, it is an order process.
Sure where would we be without such?
Anyway, now I add a new BPM Process, of type
Reusable Process, to the composite -
Input/Output as follows -
Note - you do not see the reusable process in the composite view -
Edit the Security Process and add a Human Task -
Now call this reusable process from the main order process -
Do the Data Associations, for input and output -
Some takeaways at this stage -
1. The reusable sub process does not have OOTB access to it's calling or parent process variables.
It only can see those passed as arguments. In the above case, the
2. These are not defined at the Start / End nodes of the sub-process, as you may have expected.
3. Reusable sub-processes are not exposed to the outside world. They can only be used
within composite boundaries.
Now let's deploy and test.
I approve the order -
Check out the em audit trail -
Now, I create a another BPM process -
I call it from the order process, as follows -
I deploy and test - here we see, of course, the 2 process instances
Another takeaway - the reusable sub-process runs within the "parent" process instance.
Calling another process via Send/Receive will cause separate instances to be created.
reusable, you may say and who am I to disagree!
But there must be something more to it, right?
Let's begin with the ORCL docs -
You can invoke a process from another process using call activities. The invoked
process is a child of the process invoking it.
When you run a call activity, the engine does not create a new token for the reusable
process. The token in the parent process passes to the reusable process. When the
token completes the child process, it returns to the parent process to continue running
the activities that follow the call activity.
The child process must be a reusable process. Reusable processes can be invoked from
multiple processes. You can only start a reusable process by invoking it from a call
activity.
You cannot access reusable process from other SOA components because they are not
part of the SOA composite.
The start event of a reusable process must always be of type none. The end event can
be a error or a message event.
Here is a simple composite containing a BPM process -
As usual with my examples, it is an order process.
Sure where would we be without such?
Anyway, now I add a new BPM Process, of type
Reusable Process, to the composite -
Input/Output as follows -
Note - you do not see the reusable process in the composite view -
Edit the Security Process and add a Human Task -
Now call this reusable process from the main order process -
Do the Data Associations, for input and output -
Some takeaways at this stage -
1. The reusable sub process does not have OOTB access to it's calling or parent process variables.
It only can see those passed as arguments. In the above case, the
2. These are not defined at the Start / End nodes of the sub-process, as you may have expected.
3. Reusable sub-processes are not exposed to the outside world. They can only be used
within composite boundaries.
Now let's deploy and test.
I approve the order -
Check out the em audit trail -
Now, I create a another BPM process -
I call it from the order process, as follows -
I deploy and test - here we see, of course, the 2 process instances
Another takeaway - the reusable sub-process runs within the "parent" process instance.
Calling another process via Send/Receive will cause separate instances to be created.
Wednesday, January 21, 2015
#375 SOA / BPM 12c Bundle Patch released
Upgrading to Bundle Patch 1
Here I am patching my SOA12c Quickstart environment.
Unzip to a directory of your choice.
Read the README.
The Readme mentions -
Oracle recommends that all customers be on the latest version of OPatch for
their release. Download the latest version of OPatch 13.2.x via My Oracle
Support Patch 6880880. (Choose 13.2.0.0.0 or "OUI NextGen 13.2")
p6880880_132000_Generic.zip
So I install the newest OPatch first -
Here is its Readme -
So here is my SOA Quickstart directory structure -
Here are the contents of the patch -
So we are essentially overwriting the OPatch directory.
Once that is done, we can install BP1.
Open another window in the patch directory -
Set oracle_home
Apply the patch -
opatch apply
Now I delete the following system--cache directory from the integrated server -
I also have a BPM Quickstart on this machine and
I need to apply the patch to it, as well.
Again, last step is to delete the system-cache directory.
Oracle recommends that all customers be on the latest version of OPatch for
their release. Download the latest version of OPatch 13.2.x via My Oracle
Support Patch 6880880. (Choose 13.2.0.0.0 or "OUI NextGen 13.2")
p6880880_132000_Generic.zip
So I install the newest OPatch first -
Install the newest version of OPatch
Here is its Readme -
So here is my SOA Quickstart directory structure -
Here are the contents of the patch -
So we are essentially overwriting the OPatch directory.
Once that is done, we can install BP1.
Install BP1
Ensure that the integrated server is stopped.
Open a cmd window in the OPatch directory -
opatch lsinventory
Open another window in the patch directory -
Set oracle_home
Apply the patch -
opatch apply
Now I delete the following system--cache directory from the integrated server -
I also have a BPM Quickstart on this machine and
I need to apply the patch to it, as well.
Again, last step is to delete the system-cache directory.
Subscribe to:
Posts (Atom)