6 Replies Latest reply on May 14, 2008 10:28 AM by fredde

    lead time integration

    fredde

      Hi everyone,

      i'm currently working on a master thesis concerning the calculation and integration of lead time data into any given jbpm-based workflow-system.

      I'm kind of new to jBPM but i've spent the last couple of weeks scanning the net and these Forums/Documentation to get an overview. The company i am working for has developed their own workflow-system for projects in the past but are now using jBoss jBPM only and I can certainly see why. ;-)

      But:
      From what i know, BAM/BI functionality is not provided by jBPM in the current Version, although there have been some efforts in that direction. I guess they are still going on.

      My Task (baked into a master thesis Project) is to create a solution for the missing but required aspect of lead time calculation and persistance and that leads me to the following questions:
      - What status is the development of BAM/BI functionality in at this point and how far do you believe i can get with the functionality that jBPM offers in the current Version (timer/duration aso.)?

      - one big issue will probably be the mapping of something i call LeadTime-Definitions onto jBPM-Processdefinitions. A LeadTimeDef. descibes which Parts of a Process should be taken into account, when calculating a Lead Time and which not. I was hoping to be able to add my own xml to the processdefinition.xml somehow, but oviously the designer (GPD) will cast a NullPointerException, when i insert custom tags. Is there a smart way to insert some sort of "meta-data" in XML-Processdefinitions without interfering with the GPD and the Deployment of the Processdefinitions? (perhaps changing the xsd?)

      - Obviously im interested in any current project related to the subject. I'd be greatful for any reference to such a Project or Resource.

      There are alot more thoughts and questions on my mind, but i think i should just wait and see if anyone "bites the hook" first. :-)

      Thanks,

      Fredde.

        • 1. Re: lead time integration
          jbarrez

          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

          • 2. Re: lead time integration
            fredde

            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.

            • 3. Re: lead time integration
              jbarrez

              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).

              • 4. Re: lead time integration
                fredde

                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.

                • 5. Re: lead time integration
                  koen.aers

                  Fredde,

                  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.

                  Regards,
                  Koen

                  • 6. Re: lead time integration
                    fredde

                    Hi Koen,

                    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. :-)

                    Thanks!

                    Fredde.