3 Replies Latest reply on Apr 6, 2011 12:55 PM by Jim Hill

    How I can call jBPM in my application?

    Priscila Britto Newbie

      Hi,

       

      I am reading tutorials and e-books. How I can call jBPM in my application? Is the best pratices call signal methods? Or Do I need to create java classes that implements activity API's(for example ActivityBehaviour) and I call it in definition process(xml)?

       

      If I need create java classes, Do I need to put all code about activity specified in this class?

       

       

      Any help?

       

      Best Regards,

      Priscila Britto

       

       

        • 1. Re: How I can call jBPM in my application?
          Jim Hill Newbie

          This is a wide open question and I am sure there are a number of ways to approach this.  I am trying to incorporate jBPM into our application with Mule 3.1.  My project mostly deals with messaging so I am receving messages through Mule and I built a selective consumer that basically manages a process engine.  This runs as a singleton to prevent multiple process engines from getting started.  The selective consumer pulls the required info out of the message and determines if there is a process running that's interested in this message.  If so it hands the message off to the process like this:

          processInstance.findActiveExecutionIn(activityName);

          Map<String, MyObject> parameters =

           

           

           

           

          parameters.put("message",msg);

           

          executionService.signalExecutionById(executionId, parameters);

          In essence, the selective consumer starts and stops the process so it has the information I need like the processID.  I hope this is helpful, if nothing else it is one approach you could take.  Let me know if you have any questions.  I'm open to suggestions too.

          Jim

          new HashMap<String,MyObject>();

          • 2. How I can call jBPM in my application?
            Priscila Britto Newbie

            Hi Jim,

             

             

            Wow.. Sorry I reply later. Thanks for your answer.

            So, I need to call signal in funcionality associated the process task. Is this? So the instance process be completed.

             

            When I am development a application that using a jBPM or another BPMS I need to prepare the signal calling and I need to create a work list. Sure?

             

            Well, Do you have a application based on jBPM? Could you talk me about your experience?

             

             

            Thanks for your answer again,

            Priscila Britto

            • 3. How I can call jBPM in my application?
              Jim Hill Newbie

              It's been a rather frustrating experience.  I don't have a very complicated process, but I'm basically trying to manage a conversation that is taking place in our messaging system.  Each node in the process is either launching a form, or waiting for a message to be received by the process.  Each step verifies the correct message was received or goes back to a waiting state.  There is a lot of branching but this was easy enough to set up and test.  My biggest problem has been in setting up group timers.  This is a very important aspect to managing the conversation as a timeout is necessary to cancel the conversation so we don't leave processes running that will never finish.  To the best of my knowledge these do not work in JBPM4.4.  I have asked several questions on the forum but have not received any responses.  Mule has had it's own set of challenges like transforms that do not throw errors when classes they need are not available.  Much of my frustration is probably from my own lack of experience with JBPM.  One thing that would really help is a better example for a group timer.  I may have to get the source code and dive in to figure out what is going wrong with my timers.  I don't want to discourage you from using the tool.  I plan on getting through this setback and doing what I can to share what I learn so others have an easier go of things.  I hope you will do the same.


              Jim