It depends on what your definition of 'lead time' is.
If you simply want the time from process start until process end, this information is stored in the database.
However, If you want something more complex, you'll have to program it yourself. In fact, this is a nice example in which you can build your own language on top of the PVM. But since the PVM hasn't reached maturity yet (companies don't like beta), I'll try to explain how I did this kind of measurements.
Do note that this is something I quickly made for a proof-of-concept, which is not yet tested in production:
- Setup a JMS queue on a JBoss server
- Define a custom ActionHandler that shoots an event to this JMS queue. In this event I provided a unique key (the processInstance id) and a process-unique measurement point. This way, we know at which point the processInstance arrived at the given point.
- Add a node to the processDefinition that uses the custom ActionHandler. Provide the unique "process-point key" as a property.
- Write a JMS queue handler to do something with the gathered data
This is a quite rude approach to your problem. I hope it gives you some ideas in the right direction
Thank you for your ideas.
Unfortunately the forseen definition of 'lead time' is rather complex. It should be possible to configure, that certain sub-processes, tasks and even transitions are 'counted' while others are not. It must be possible to decide if the lead time counts paralel processes twice or just once(Resource-View vs. Customer-View) and even Business-Calendars(preferdly user-indivdual) must be taken into account.
Also a problem is that Process-Definitions are subject to change and also the lead-time definitions, so i need a very 'universal' solution.
What do you mean by 'building your own language on top of the PVM'? Sry if im a noob, but i have no idea what PVM is.
The PVM (Process Virtual Machine)is the next big thing in jBPM-country ;-)
It is a virtual machine on which you can define process languages. Such a language is JPDL for example. Check jbpm.org for more info.
So, using this PVM you could define your own language that incorporates exactly what you need.
But about your problem:
How far can you go using the data in the jBPM log? All the transitions, parallel execution paths, ... are logged to the database. You can query this data and visualize it as needed.
So, the stuff you need is not offered out-of-the-box by jBPM. But then again, using jBPM you can build most of the this with plain Java (with some work off course).
PVM: I'll check that out. Sounds interesting.
Well, the data is not really the Problem, it's all in there as you say and I just have to 'dig it out'. Still i need to find a most efficient way to Map the lead-time definitions onto the Processdefinitions and obviously custom tags in the xml files are not the way.
What version of the GPD are you using? Normally the latest one would be able to deal with inserted 'custom' xml by just ignoring it. If that doesn't work, please create a JIRA issue with an example processdefinition.xml that produces the problem.
took me a while.., focus changed... have been focusing on concept a while instead.
Anyway, i was using the 3.1.0.SP1 Version of the GPD, obviously there is a new Version, i'll try it out and create a JIRA if the problem persists.
In the meanwhile i've decided to define my 'Lead-Time-Definitions' in java and leave the xml-import for someone elses master-thesis. It has become complicated enough without it. :-)