jBPM5 Developer Guide published!

After almost 2 years of work and a lot of rewrites the jBPM5 Developer Guide is out! The book is oriented to technical people willing to use jBPM5 framework. If you are already using it, this book serves as a reference book containing the most important topics regarding jBPM5 such as: domain specific processes, human tasks, persistence & transactions and more.

This book goes one step further and explains how jBPM5 and Drools frameworks coexist and how we can get a profit from this symbiosis.  Different architectures and design patterns mixing both processes and rules are explained and discussed in the last 4 chapters of the book.

To get your copy of ‘jBPM5 Developer Guide’ please take a look at the following links:

From Packt: http://www.packtpub.com/jboss-business-process-management-5-jave-developer-guide/book

From Amazon: http://www.amazon.com/jBPM5-Developer-Guide-Mauricio-Salatino/dp/1849516448/ref=sr_1_1?s=books&ie=UTF8&qid=1355931138&sr=1-1&keywords=jbpm5+developer+guide

Tagged , , , , , , , , , , ,

12 thoughts on “jBPM5 Developer Guide published!

  1. Samuel says:

    Hola Mauricio

    Muy bueno tu blog, felicidades, espero me puedas responder dos dudas que tengo.

    Tengo HumanTask configurado con MySQL y en mi aplicacion lo consumo a travez de HornetQ. Mi proyecto web utiliza JSF + Spring y manejo algunos procesos con jBPM 5.3, el problema que tengo es que cuando reinicio el server de mi aplicacion, los procesos que ya se habian arrancado se pierden, con las HumanTask no tengo problemas, puedo consultarlas e incluso finalizarlas, sin embargo el proceso no continua cuando cierro las tareas, ¿Como debo manejar la persistencia de los procesos para que no se pierdan? jBPM Console crea unas tablas adicionales a las que crea Human Task, tambien esta configurado con MySQL, cuando inicio una nueva copia del proceso demo(Evaluation), veo en el log inserts tanto a las tablas ProcessInstanceInfo y Task, éstos procesos no se pierded aun cuando reinicio el servidor de la suite jBPM, ¿como puedo lograr este comportamiento en mi aplicativo? Actualmente tengo esto:

    ?????
    ?????

    necesito agregar la configuracion hacia esa base en mi aplicacion(transaction manager y entity manager) para que jbpm pueda persistir los procesos y no se pierdan cuando reinicio el server de mi aplicacion?

    La otra duda es referente a las human task, necesito definir una fecha u hora de expiracion de una Human Task, aunque veo que existe el campo en la tabla Task, en Web Designer no veo donde debo definir dicha fecha, podrias indicarme como puedo definir dicho tiempo de expiracion?

    Saludos y espero me puedas auxiliar. Gracias de antemano.

  2. sockosg says:

    Lo siento, no salio la configuracion que tengo….

    <drools:ksession id=”ksession” kbase=”kbase” type=”stateful”>
    <drools:configuration>
    <drools:jpa-persistence>
    <drools:entity-manager-factory ref=””/> ?????
    <drools:transaction-manager ref=”” /> ?????
    </drools:jpa-persistence>
    <drools:work-item-handlers>
    <drools:work-item-handler name=”createUserFile” ref=”wiCreateFile”/>
    <drools:work-item-handler name=”createZipFile” ref=”wiCreateZip”/>
    </drools:work-item-handlers>
    </drools:configuration>
    </drools:ksession>

    Saludos

    • salaboy says:

      Por lo que veo has configurado, solo la persistencia de las tareas, pero deberias tambien configurar la persistencia de la sesion. Por lo que se alcanza a ver de tu configuracion te esta faltando la configuracion del entity manager factory y del transaction manager. La idea es que eso lo configures en spring y le digas a drools y jbpm el nombre de el emf y el tx manager configurados por spring.

      • sockosg says:

        Antes que nada muchas gracias por tu tiempo. Efectivamente, solo habia configurado human task con MySQL, yo suponia que jBPM funcionaba igual que el componente Human Task, es decir como servidor, pero por lo que veo hay que embeberlo en cada proyecto que lo necesite, no es opcional como pasa con Human Task.

        Respecto a la segunda duda, me puedes ayudar con eso de los tiempos de expiracion de una Human Task? ya que no encuentro ejemplos concretos sobre como definir los tiempos de expiracion de las mismas ni como se comportan cuando esto ocurre.

        Saludos y de nueva cuenta muchisimas gracias.

  3. salaboy says:

    Para lo de las tareas deberias revisar TaskDeadlines y TaskNotifications. Dentro de la estructura de Task -> TaskData tenes un field que se llama Task Due Date.
    Con respecto a embeber el motor de procesos en tu aplicacion, tambien esta la posibilidad de usarlo como servicio. Tu podrias crear el servicio para exponerlo y de esta manera contener toda la configuracion de las tareas y el motor de procesos dentro de tu servicio.
    En jBPM6 esto ya se provee.

  4. Samuel says:

    Muchisimas gracias, me ha servido de mucho. Gracias por tu tiempo.

    Saludos.

  5. Hola Mauricio, tengo un proceso funcionando con subprocesos en jbpm5.2. Este proceso orquesta eventos que vienen de una linea de producción en una empresa de manufactura por lo que no tiene human tasks, todo se motoriza por eventos.
    El problema que tengo, es que ejecuta el primer subproceso, y pareciera que termina el proceso, a pesar que no llega a un elemento bpmn de terminacion de proceso.
    La pregunta es como puedo generar una “traza” para saber por donde pasó el flujo , cuales fueron los workitems handlers ejecutados. Obviamente podría agregar en el proceso, activities con algún script en java o groovy para tirar en log la información de la traza, pero voy a ensuciar el diagrama bpmn con un montón de “cajitas” que solo serian para debugging del proceso. Que alternativas tengo para construir esa traza?
    Gracias y saludos.

  6. Jeferson says:

    Hello Salaboy!

    I have recently taken up studying jBPM 5 for academic purposes. I have also bought your book, jBPM5 Developer Guide.

    What I would like to ask you is whether it is possible for you to help me understand how I can embbed a jBPM5 process in a web app and what I need to deploy the app to jBoss server.

    Thanks in advance for your time and help!

    Regards.

    • salaboy says:

      Hi I recommend you to take a look at jBPM6. You can embed jBPM in a web application in 5 and 6 by adding the jBPM jars and their dependencies to the web app. If you do that with maven that should be fairly simple. Then depending on the container (JBoss AS 5/6/7/ Wildly 8/ wildly 9) you will need to see which dependencies are conflicting with the container and exclude that from the War file.
      Look at the profiles that we have to build jbpm 6 to have some hints of the conflicting dependencies for the different containers: https://github.com/droolsjbpm/kie-wb-distributions/tree/master/kie-wb/kie-wb-distribution-wars/src/main/assembly

      Notice that for each container we use different configurations files and settings + we remove/exclude different jars to get everything working.
      Notice also that these profiles are the ones that we use to build all the jbpm tooling so they are way more complicated that what you need to do for your own web app.

      HTH.

      • Jeferson says:

        Hi there! Thanks a lot for your answer.

        I’ll try this and I’ll get back to you as soon as I have the results.

        Another quick question: I was going through the jBPM 5 Developer Guide book and one thing that caught my attention was the Guvnor session. In order to deploy the process to the application container, is it really necessary to upload the process definition to Guvnor? Or can I embbed the process directly into my app without Guvnor?

        Thanks again hermano!
        Regards,

      • salaboy says:

        Hi there,
        You should take a look at the new web workbench in 6 which replaced Guvnor.
        Regarding your question, yes you can embed your process and rules inside your application without using any repository for those assets. But centralising all your knowledge assets in a single repository where you can keep versions and enable more business users to look at them and change them over the time is usually a good and desired practice.

        Regards

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 1,036 other followers

%d bloggers like this: