About

Joram is an open-source software developer, interested in anything related to coding: frontend, backend, mobile, … you name it! He spends a lot of time on BPM (business process management) and workflow engines.

In his free time (the little time not spent with his two boys) he practices and teaches jiu-jitsu, plays boardgames and D&D.

Just drop a message here or message me on LinkedIn or Twitter if you want to get in touch.

81 Comments

  1. Rohit Rai June 3, 2009

    Hello,

    I am a totally new to jBPM and i wanted to try a sample web application – interacting with JBPM to get the states etc. I have posted the code in javaranch.com – (http://www.coderanch.com/t/447968/JBoss/JBoss-jBPM-help-required) could you please suggest any changes for the same.
    I am not getting any good documentations for jBPM.

    Thanks

  2. Philippe Back June 10, 2009

    Hi, I am looking for a jBPM expert for delivering a training about jBPM.

    Are you interested in that? If yes, give me an idea of your price tag 🙂

    KR
    Phil

  3. Chintan Parekh July 3, 2009

    Hi,

    I have gone through your blog and it was pretty informative. and also congratulations for the award.

    I have one question for you. In your blog you have mentioned about Oryx integration with jBPM4. Is it possible to give you tentative date for releasing this for public users? Because i am eagerly waiting for jBPM4 to use in my application.

    Currently i am evaluating jBPM tool for one of my application.

    Thanks
    Chintan

  4. Pavitar Singh August 22, 2009

    Hi

    I was trying JBPM4. When i went through jBPM Developer Guide i see that Execution has a reference to Activity. But when i see code i dont find any such reference.

    Because its important to get Activity the Execution is currently in.

    Can you please provide pointers on it. Thanks for you time.

  5. Giuseppe September 9, 2009

    Dear Joram,

    thank you for your work, i’m a fan of you and of your blog. But first i’m a student. And for my degree i’m developing the integration of BPM in an open source context of knowledge and project management. I find it an interesting concept. If you can, i only need some suggestions about the way to follow…

    I have a JavaEE Application running on JBoss. On this side i developed the notifying of the application’s events as JMS messages over a topic. I send on this topic various informations about the application’s state. On the other (remote) side i’ve another JBoss instance (jBpm inside) deploying a Message-Driven Bean subscriber of that topic.

    Consider, for example, a combo-box in the client application (on the first side). The combo contains various strings values. Because the changing of value in the combo, i notify on the topic. I would execute different code (consume a web service, call a method..etc..) depending the different values of the combo. How do you think could i model using workflows and jBpm. Could you give me some guidelines please?

    Waiting for your answer, sincerely Giuseppe.

  6. Joram Barrez September 9, 2009

    @Giuseppe: check your mailbox

  7. Geronimo September 15, 2009

    Hi Joram. I’m following your real-life example and I have some problems.

    The first thing I did was to try and run the Unit Test just like your example. I had to add hsqldb, jnp-client and jboss-common-client artifacts to process-logic pom.xml dependencies because it didn’t run the test ok.
    I still can’t make it work, the error that appears now is:
    javax.naming.NameNotFoundException: jbpm-on-rails not bound

    [ERROR]: Error while sending message to refund queue
    javax.naming.CommunicationException [Root exception is java.lang.ClassNotFoundException: org.jboss.jms.client.JBossConnectionFactory (no security manager: RMI class loader disabled)]

    Caused by: java.lang.ClassNotFoundException: org.jboss.jms.client.JBossConnectionFactory (no security manager: RMI class loader disabled)

    What am I doing wrong?

    Thank you!

  8. Joram Barrez September 16, 2009

    @Geronimo: I’ll be posting the complete demo zip today, then you can check what is different with your setup.

    Which JBoss version did you use? I’ve built the demo on 4.2.3, but I’m not sure if its directly portable to 5.x (altough it shouldn’t be hard to do)

  9. Geronimo September 16, 2009

    Thanks Joram, I read your last post. I have jboss 5.0.0. Thanks for your answer!

  10. Paweł Mączka September 26, 2009

    I cant post to JIRA but I wanna tell you I need support for Tomcat. Especially I wait for el-api – juel conflict resolution. It may be very easy like to remove juel.jar dependency from jbpm. juel-impl should be sufficient and then there is no conflict. Please!!!! I want to use jbpm and my fav. environment is maven and tomcat/jetty maven plugins.
    Great soft anyway!

  11. Fabio October 26, 2009

    Hi Joram,

    I’m implementing a document review process using jBPM, and found your blog quite helpful.

    I was wonderign if you could help me with your expertise. Basically I have a task, called “Read document”, that derives from another task, which is “Assign Reviewers”.

    I have to create several instances of “Read document”, (exactly N task instances, for N reviewers), and after each one finishes reading,
    (hence, needing synchronization), I would like to give the final verdict to the document automatically.

    The problem is I found that multiple instances with synchonization isn’t supported by jBPM, and I was wondering if I have any alternatives to implement this behaviour.

    Thank you in advance.
    Fabio

  12. Anonymous November 18, 2009

    hello,
    Am using Jbpm 4.2. I just wanted to know about the transient variable which was there on jbpm3 but not in 4. So what is the new feature introduced to make the variables not to persist in the database. Hope ill get the reply with a good example.thank you.

  13. Anonymous December 23, 2009

    hi ..

    i an new to JBPM and i have been trying to run the hello world application that you have mention in your blog but am facing this problems and could not solve this problem …..Please help in this problem

    I am using with Eclipse Galleo
    jbpm4.0
    jboss 5.0.1.GA
    JDK1.6.0_16

    1. While i am deploying the files i am getting the error like

    org.hibernate.exception.GenericJDBCException: could not insert: [org.jbpm.pvm.internal.lob.Lob]

    2. My JBoss server starts but when i click on Process definition in it or deployment , it gives the follwing errors

    URL: ‘http://localhost:8080/gwt-console-server/rs/process/definitions’
    Action: ‘org.jboss.bpm.console.client.process.UpdateDefinitionsAction’
    Exception: ‘class com.google.gwt.http.client.RequestException’

    org.jboss.resteasy.spi.UnhandledException: java.lang.RuntimeException: Unexpected invocation exception: null
    org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:319)
    org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:230)
    org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:206)
    org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:360)
    org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
    org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
    org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

    3.Some times it does not deploy the application but it gives a message as null pointer exception like….

    INFO: Not binding factory to JNDI, no JNDI name configured

    BUILD FAILED
    C:\Documents and Settings\Sarita\Desktop\jbpm-helloworld\jbpm-helloworld\build.xml:66: java.lang.NullPointerException

    Total time: 2 seconds

    Please help in solving this issues….

  14. Robert February 25, 2010

    Hi Joram,

    maybe you can help me on this:

    How is it possible to create collections of already created (java-)tasks within the Eclipse-jBPM-Editor or even better within the Signavio-Editor.

    What I mean by this is to reuse already created (java-)tasks with a drag&drop, because in our process flows many tasks need to be done again and again at different process stages. So I don’t want to create the same tasks again and again (even not copying them from somewhere-else).

    I imagine something like a list of (java-)taks icons to the left which I can pick from.

    Do you have any idea how to do this or have heart of anyone doing somehting similar ?

    Your help is very appreciated.

    Regards, Robert.

  15. raboudi May 19, 2010

    Hello,
    I am new to JBPM.I have a look at the jbpm on rail application.I just want to know how to get a process variable created by an ActivityHandler into my application.When i tried to do this i have a cast problem.The getVariable method of the executionService import the object but could not cast knowing that the type is the same.

  16. Arup June 3, 2010

    Hi Joram,

    I am using jbpm4.2 in our project. I am trying to log manual task entry and exit information in log. It is easy to use event-listener to each transition( transition which takes the process flow to a manual task and transition which takes the out the process flow the manual task). I want a common place(event listener) which will be called whenever a manual task is created,assigned and exit. Do you have any idea how to implement this.

    Regards,
    Arup

  17. Ricardo July 9, 2010

    hello,
    My question is this, we have certain components belonging to bpmn2.0, if you wanted to create a component and belonging to this group, How make the activitie-modeler as displayed and the pvm also to recognize, Do you have idea how to implement this?
    Sorry for the translation.

  18. R. Meziani November 21, 2010

    Hello,
    I would like to use your platform to validate an agile BPM approach (AGILIPO) developed with other researchers, see published paper:

    https://docs.google.com/viewer?url=http://socialbits.eu/wp-content/uploads/2010/09/agilipo.pdf

    To do this, we would like to integrate your platform in a wiki (ANY wiki, but I had Xwiki in mind, as it allows Java plugins http://platform.xwiki.org/xwiki/bin/view/Main/), in order to leverage its design principles and its social features. Do you know if this has already been already done by someone? can we integrate Activiti with Xwiki (or other)? Is it through a Java plugin?

    I appreciate your help and support.

    –meziani

  19. Joram Barrez November 22, 2010

    @R. Meziani:

    No it has not yet been done. But since Activiti is just a jar, it is very easy to write these Java plugins (I can say this even without looking at the Xwiki code ;-).

    If you need more info, please post your questions on our forum: http://forums.activiti.org/en/viewforum.php?f=3 , there are many more eyes wayching there!

  20. Al March 27, 2011

    Hi,

    Just letting you know that the “alfresco” link here: http://www.jorambarrez.be/blog/category/alfresco/ takes you to the Activiti page. The activiti link also takes you tot he activiti page even though the link in both cases has a URL to the Alfresco page…

    Cheers,
    Al

  21. Joram March 28, 2011

    @Al: that’s because everything I post under the Alfresco tag has to do with Activiti 😉

  22. Ayusman May 10, 2011

    Dear Joram,
    I am very new to jbpm, and started learning jbpm 4.4.
    Your blogs has been very informative and really good.

    I am trying to understand the relationship between execution, task, state, process instance and activity in Jbpm 4.4.

    I have the following scenario

    I am trying to use jbpm 4.4 for a workflow solution where, the UI is provided by a web application. Here I am trying to assign a certain task to a user and expect him/her to perform certain action on it…

    like “Approve”, “Reject” and “Approve with remarks”..

    All of these actions need to have separate processing.

    What I am not able to understand is, should I use a task element :

    OR a state (wait state) element:

    Idea is, I will let the user click on the “Approve”, “Reject” and “Approve with remarks” buttons in an jsp page and I want to convey this to the process engine, through jbpm APIs.

    I am also trying to use foreach construct in JPDL to spawn parallel executions.. (in my case it’s parallel approval flows, which is dynamic, meaning the number of parallel flows is determined at runtime)

    Can you please clarify?

    Regards,
    Ayusman

  23. Carlos Vargas May 12, 2011

    Hi Joram, I’m trying to set up a proof of concept with SpringSurf, Activiti and Alfresco, my idea is to use Activiti as the main program execution coordinator, I’m trying to draw the workflow in Activiti and invoke in the tasks the pages developed with SpringSurf and executing some actions on Alfresco, as for example to create a new Alfresco Space or upload a documento to an existing space. I would like to know if you have some baseline sample. I’ll really appreciate a lot. Regards.

  24. Kaku June 9, 2011

    Hello,

    I’m currently interestend in the possibilities of BPMN and process concurrency. As far as I read and tested, the current versions of the Process Engines jBPM and Activiti are not capable to execute parallel tasks (e.g. scripts) concurrent (in multiple threads).
    I couldn’t find any clueif (when) the future versions of the process Engines are going to support this.
    Can you (as a core Developer) give any informations about that?

  25. Joram Barrez June 9, 2011

    @Kaku: Activiti will not switch to ‘real’ concurrency. The reason is simple: in 99% of business cases (not computer to computer communication, which is not the primary target for Activiti) real threading is not required. If we would implement concurrency using threads, this would seriously impact how transactions are handled: deadlocking, race conditions etc would be potentially everywhere. Also performance would be lessened by this. Feel free to check the forum, as this has been asked in the past already 🙂

  26. Kaku June 9, 2011

    Yes, there are forum posts, but i could not find detailed infos if/when it’ll be included…
    tom baeyens quote: “it’s on our roadmap, but we can’t tell at this point when it will make it into a concrete release” (activiti forum)
    But your “Activiti will not switch to ‘real’ concurrency” is concrete enough 😉
    Thanks a lot!

  27. Joram Barrez June 9, 2011

    @Kaku: well, it’s actually more refined than that 😉 What Tom means, is that there is a way to enforce real concurrency. On our roadmap, we have forseen something called ‘asynchronous continuations’, which allows to specify which steps are async. When process execution arrives at that particular step, the current thread will return to the calling client, and the continuing execution of the process will be done by a separate thread from a threadpool in Activiti. So this way, you could make your activity step ‘real’ concurrent.

    What I meant however, is that there will never be a gateway type for example which does ‘ real-concurrent-with-threading-split’. It will always have to be added by the developer by marking it async (but it’s not implemented at this point).

  28. Michael June 28, 2011

    I am looking for someone who can provide a few hours of mentoring on project configuration with Spring using the activiti-rest app as a foundation. If you are are interested, can you please contact me via email supplied?

  29. Emiliano Heyns July 13, 2011

    Hey,

    I am looking for someone to help us out with our choice between activiti and jBPM. Are you available for consulting work?

  30. Joram Barrez July 14, 2011

    @Emiliano: we ourselves don’t do consultancy, but we always refer to http://www.camunda.com/ fot that. They are also core contributors to Activiti.

  31. Meena August 30, 2011

    I am looking for a Process Flow tool that provides the following..

    1. Easy to integrate with an existing web application ( servlet\jsp).
    2. Ability to write the workflow descriptors in an xml by hand instead of GUI.
    3. Ability o configure multiple process instances with different work flow.
    4. Ability to use main web application’s sql server db for storing process related data.
    5. Ability to alter the process flow ( add/remove nodes or change transition points) without recompiling the code.

    Does Activiti provide these options?

    Thanks

  32. Joram Barrez August 30, 2011

    1. Yes
    2. Yes
    3. Yes
    4. Yes
    5. Processes are not code. So yes and no. You can always deploy a new version of the process at runtime without restarting the system.

    For these questions, please use the forum : http://forums.activiti.org/en/viewforum.php?f=3

  33. Stanley September 7, 2011

    I am trying to model real concurrent execution of multiple branches. What I need is basically parallel gateway which has concurrent execution. I understand the implementation is sequencial.

    There are many threads on this one topic. I think the community needs an definitive/official answer now.

    Two questions:

    1) why is PG not truely concurrent? Is there a plan to make it so?

    2) Without it, how can I achieve true concurrency?

    I read the following about multi instance. Do I achieve true concurrency using it?

    http://forums.activiti.org/en/viewtopic.php?f=6&t=809&start=0

    Really appreciate you feedback.

  34. Joram Barrez September 8, 2011

    @Stanley.

    1) Please see http://activiti.org/faq.html#WhatIsTheDifferenceBetweenProcessConcurrencyAndJavaConcurrency

    2) you would need your own ActivityBehavior implementation. The Multi instance works the same as the parallel gateway. Point is, ‘true’ parallelism gives more problems than it solves for *business* processes (not the same as straight through processes without any human interaction).

  35. Ilias Tsagklis September 27, 2011

    Hi Joram,

    Is there an email address I can contact you in private?

  36. New Activiti user November 12, 2011

    >>1. Easy to integrate with an existing web application ( servlet\jsp).
    >>3. Ability o configure multiple process instances with different work flow.

    Is there an example available for these?

  37. Krešimir Popović November 30, 2011

    Hello,

    can Activiti be deployed to Google Apps?
    I ask this because I have read that in activiti.cfg.xml you need to specify some persistence stuff: e.g. jdbcUrl, jdbcDriver,…
    Is there a way to configure it for Google Apps ?

    If not, can other components (except human task) be used without persistence configuration?

    Best Regards,
    Krešimir

  38. Joram Barrez December 1, 2011

    Hi Kresimir,

    These question probably will get a faster and better answer on the forum.

    As to your question: Activiti requires indeed a jdbc datasource. As GAE is using its own datastore (BigTable), this will be not possible.

    However, you can always use an in-memory database such as H2. I haven’t tried it, but it might work.

    Joram

  39. guosheng xie December 8, 2011

    hello,
    I is a software engineer from china.In last year,I plan to study jBPM4.3 but time gone.
    when I again start to study this autumn,I found that things gone far away.and I say activiti5.8.
    My early work is pringMVC,and used Spring3.0.5 + Mysql5.5.8 + HibernateJPA3.5.6 + SpringMVC.
    My question is :How can I integrate activiti5.8 into my SpringMVC project?
    thank you a lot.

  40. Diego Rob December 26, 2011

    Hello Joram! Your blog it’s great and very hepful!
    I’m just starting using activiti and I was wondering if you could give me some clue on how to integrate activiti and apache tuscany, or where i can find some information.

    Thank you!

    Best Regards,

    Diego Rob

  41. Eric Genesky March 20, 2012

    Joram,

    This is Eric Genesky; I’m a Community Curator at DZone.com (formerly Javalobby). At DZone, we’re looking for quality content by knowledgeable bloggers who are members of the development community. DZone began in as a community of java developers known as Javalobby back in the ’90’s, and has since grown into an all-inclusive news source for developers.

    After taking a look at some of your blog posts, I thought you might be interested in having your content reposted on DZone with attribution to you as the original author as well as a link back to your original blog.

    Please send me an email if you’re interested in learning more about how to have your content reposted on DZone.

    Best,

    Eric Genesky
    Community Curator
    DZone, Inc.
    919-400-4106

  42. Gary April 20, 2012

    Hi Joram,

    I am looking for a Activiti BPM experts for development as well as training.
    Would you or someone you know be interested?

    – Gary

  43. Hello Joram May 15, 2012

    I am interested in your Activiti KickStart application. I am looking to be able to programmatically create new process flows using Activiti within a JEE app. I use Wicket for my UI and noticed that you use VAADIN in the KickStart application. What might be the best approach for incorporating this kickstart functionality in my app while using Wicket for the UI instead of VAADIN?

    Are there engine parts I could deploy and write my own UI using wicket?

    Thanks,
    J.D.

  44. Joram May 16, 2012

    @J.D: the best approach is that I would split the code into two modules: a service jar + vaadin ui war.

    Actually, I’m planning on doing that one of these days. So be sure to watch the github repo!

    Once that is done, you can simply incorporate the service part and use it with wicket.

  45. Tarun Rohira May 29, 2012

    Hi There,

    I really appreciate your work on activiti , I am learning it as our bank ( cant tell the name) wants to use it as a lightweight BPM workflow engine.
    But we are really stuck at 1 point of decision , A situation like below

    We want to use activiti but only at very simple level of decision making (you can say 10 X 10 choices to make ) compared to other multipurpose & multi technologies decision flow.
    SO I am definitely sure that we wont be requiring the whole engine or the all files that come into picture of execution
    not even 20% of the engine…

    We are stuck at one point where only an SME like you can resolve it:
    Question is : Can we segregate the workflow engine into parts which we require and leave the rest (at installation or usage level) ?

    I wanted to see it in user guides , but i cant find it there , Like Apache Tomcat provides a detailed design of how tomcat works, what are valves,pipes , Is there a guide explaining same (altough reading it will take a lot more time)

    Can you tell me whether we can remove the other functionality and use only a single functionality which we want
    Because , we will be repeating decision making 175000000 transactions per day and we are really curious about performace , because , if activiti run’s as a whole software loads everything and calls everything to be ready ( not much of a lazy loader , which we want)
    Then its better to have our on custom code developed to do the same (no harms ! b+ )

    I can call you and explain the situation if you can provide me ur contact
    But please , need your reply on this urgently (even if you have another BPM in mind , please suggest us)

  46. Willian Moreira Finamore November 29, 2012

    Hi Joram,

    I need some help. I have to write a article about BPM for my pos-graduation, but I choose how theme the Process Automation, targeting the reasons for the developers learn use a process framework how the Activiti. I would like to have some indications of materials about this theme. I Already have the book “Activiti in Action”, but I need more references.

    Best Regards,

    Willian

  47. Joram Barrez November 30, 2012

    @William: The book ‘Activiti in Action’ is currently the only printed reference available.
    All the other things are online (including this blog).

    If I were you, I would widen the scope to also include BPMN 2.0 books. And describe why business process diagrams are also interesting for developers, as it improves communication greatly.

    Joram

  48. dotan January 20, 2013

    Hi Joram
    We are using JBPM 4 as our main BPM engine in our production and lately, as our system load started to scale up, we encounterred with connection leak problems that after some research we found out that were originated in the JBPM 4 engine. we are using JBPM 4.0 + spring 3.0.7, is this a known problem with JBPM 4 ? was it fixed in any later version? any help on this issue would be greatly appreciated…

    Thanks,
    Dotan

  49. Joram Barrez January 21, 2013

    @Dotan: as you probably know, jbpm 4 has never really been ‘stabilized’, as JBoss did not invest in it further after Tom and me left. As such, it’s quite possible such errors exists and the chances on fixes is rather slime. So I’m sorry I can’t help you further ….

  50. dotan January 21, 2013

    ok. thanks for the reply Joram. In that case, as we thought, we will have to replace JBPM 4.0 with a different BPM engine.
    We just want to ask you this – our production application uses pretty simple processes (about 15 states each) with no human tasks. Do you think activiti can be a good solution for these needs or is it an overkill and there is something simpler we can use ?

    thanks again for your help.

Leave a Reply

Your email address will not be published. Required fields are marked *