Yes, the human task service that is implemented as part of jBPM5 is based on the WS-HT specification, and that supports a lot of complex use cases about escalation, group assignment, delegation, etc.
Regarding a comparison with YAWL, that is mostly an academic effort, and is missing quite a lot of more advanced BPM features (the YAWL processes are rather low-level). And jBPM5 is using standards for everything (from process definitions using BPMN2 and human tasks using WS-HT to JPA/JTA for persistence/transactions, etc.) compared to the custom YAWL format, limited tooling, etc. At least, that is my (biased) opinion.
Yes Kris, one limitation for YAWL it always works asynchronously where we have some processes need synchronous execution like wise Drools flow supports it [as we use Drools 5.1 as rules engine]. Does jBPM includes those features too which Drools flow also provides? if not, how both Drools Flow and jBPM 5 can work together seamlesly?
Also I am basically looking for an example which could demostrate
1. Allocating the task
2. Task Monitoring
3. support use cases like delegation, cancellation
4. Transation Management
If any such examples available, it would help us a lot.
I will be working on a couple of posts the following weeks what exactly do you want to see in the examples?
I have an application running and I can add some use cases that helps you to choose jBPM5. Regarding your question I think that jBPM5 provides exactly the same functionality as Drools Flow.
I want some thing similar to following example...
Change request (CR) service: it includes from CR assignment to developer, reviwier, and closing the task.
Initially CR will assigned to a developer or group of developers. In this case CR will be in assign state.
Once developers are done with their changes, its status can be marked to complete, and notification will be sent to Reviewer [who could be Sr. Developer]. Once Reviewer is done with his review, the either status can be changed to assiged or approved. Once the status is approved, CR status can be closed based on other testing performed like integration testing. Exceptions can also be implement: like when developer is not able to complete CR within a specified period of time or he went on leave, CR can be re-assgined to other developers [task delegation].
I expect the assignements, changing status will be part of jBPM5 tool set.
I'm assuming you will be modeling this as a set of human task nodes (for example first a human task node assigned to the developers group, then a human task node for the reviewer if a developer has completed his task, etc.)? In that case, I don't see why you wouldn't be able to use jBPM5 human task solution to model that as a set of human task nodes and some connections, possibly some branching (for selection or exception), etc.
Do you have a simple example i can look at for task escalation?
or if you can point me at some documentation i would really appreciate it
Hi dawid.. you can take a look at an escalation example here:
thanks for the example
is it possible to base the escalation on a timer or a time event
the example uses message events
what i'm looking for is the the following
the process reaches a user task, but the user does not complete the task
i want to set a time escalation on the user task so that if for the example the user hasn't completed the
task in a day we can send the user a mail reminder to complete the task ?
You can find an example of time-based escalation here:
Unfortunately, the eclipse pluin doesn't support these feature yet. This is why I'm using .xml for the process definition extension
is it possible to link a timer to a single user task?
i see in the example that you create a sub-process and then define a boundry event for it
As far as I remember you have the boundary events to have flexible way to scope your timer events. so you can choose just one task or several.
I need to check the BPMN 2.0 spec to see if there is a standard way to plug a timer directly to a task. I know that we can do it technically.
Hi Mauricio Salatino,
All the example that shared here is explaining about escalation.
Do you have a simple example that i can look at for delegation?
or if you can point me at some documentation regarding this, i would really appreciate it.
I am using jBPM 5.4.