Monday, September 28, 2015

jBPM 6.3 released

jBPM 6.3.0.Final has been released !

In this release we focused on bringing a bunch of (typically smaller but powerful) features that our users were asking for.  A quick highlight is added below, but full details can be found in the release notes.

To get started:
Downloads
Documentation
Release Notes

Ready to give it a try but not sure how to start?  Take a look at the jbpm-installer chapter.

jBPM 6.3 is released alongside Drools (for business rules), check out the new features in the Drools release blog.
Thanks to all contributors! 


Core engine improvements
  • Support for JavaScript as script / constraint language in processes
  • Asynchronous processing improvements, including
    • the (re)introduction of asynchronous continuation (where you can mark a transition as to be executed asynchronously in a separate transaction)
    • ability to mark signal throw events as asynchronous
    • jbpm-executor (our asynchronous job executor) got configurable retry mechanisms and improved performance due to new JMS-based triggering
  • Signal scopes for throwing signal events, so you can better decide who the event should be sent to (process instance, ksession, project or external)
Configurable and extensible task and process instance list
  • Custom filters:
    The process process instance list and task list in the workbench can now be configured even more by the end user by adding custom filters.  This allows you to create new tabs that show a subset of your tasks (or process instances), based on parameters you decide yourself.
  • Domain-specific columns in the process instance list
    You can show now show (domain-specific) data related to the process instance variables in the process instance table directly, by creating a custom filter that restricts the data to one specific process.  Doing this allows you to then add domain-specific columns: additional columns can be added to the table that show the value of variables of that specific process.

Data mapping in Designer

When you have a lot of data being managed in your process, defining the data flow among all the nodes can become pretty complex.  A new data mapper has been added to Designer to simplify this task: it has the ability to do all you might need in one place (like adding new data inputs / outputs while you've already started doing the data mapping) and simplifies data assignments (either by giving a direct value or by mapping an existing variable).


Embeddable process / process instance image 

New operations were added to the remote API to allow retrieving the process image or annotated process instance image (showing which nodes are active / completed).  This image is similar to the one you were already able to access inside the workbench already, but is now also available remotely for embedding in external applications.


JPA support in the Data Modeler

The data modeler in the workbench now also exposes properties that allows you model a data object as a JPA entity.  When a data object is modeled as a JPA entity, it is not stored as part of the process instance state but stored in a separate (set of) database table(s), making it easy accessible from outside as well.

Case management API

The core process engine has always contained the flexibility to model adaptive and flexible processes. These kinds of features are typically also required in the context of case management. To simplify picking up some of these more advanced features, we created a (wrapper) API that exposes some of these features in a simple API: process instance description, case roles, ad-hoc cases, case file, ad-hoc tasks, dynamic tasks and milestones.

Support for these features in our workbench UI is being worked on for version 7.0.

Unified execution server

A lot of work went into the creation of unified, highly configurable, minimal execution server - ideal for cloud-based or micro-services architectures.  Since v6.0 the workbench has included an execution server that could be accessed remotely.  This was however embedded into the workbench and designed to operate in a symmetric way when deployed in a clustered environment (all nodes in the cluster were able to execute all processes / requests).  In Drools v.6.2 a new minimal decision service was introduced that allows only deploying specific rule sets to specific containers, giving the user full control over deployment.  This has now been unified, resulting in a lightweight execution server where you can execute your processes, rules, tasks and async jobs.  It can be set up as a single execution server for all your projects, or different execution server instances (possibly one for each project).

23 comments:



  1. I am totally new in JPBM . so,
    According to jbpm part3 video tutorial , https://www.youtube.com/watch?v=D8EMUgBqSHQ
    i am developing a business process (bpmn) file , but i can not do this
    for some error . please help me .
    Error :

    Caused by: java.lang.RuntimeException: Exception when trying to evaluate constraint in split
    Caused by: java.lang.RuntimeException: unable to execute ReturnValueEvaluator:


    Error details is :

    https://developer.jboss.org/thread/266190

    https://developer.jboss.org/thread/266183?sr=inbox

    ReplyDelete
  2. Hello Kris... trying to send e-mailtask through console and get unable to send email... any idea?

    ReplyDelete
    Replies
    1. Hi Alex & Kris
      I have the same problem? any idea?

      2016-04-13 18:53:53,734 ERROR [org.guvnor.common.services.backend.exceptions.ExceptionUtilities] (default task-56) Exception thrown: [Email-Example.Email-Example:125 - Email:3] -- java.lang.RuntimeException: Unable to send email: org.jbpm.workflow.instance.WorkflowRuntimeException: [Email-Example.Email-Example:125 - Email:3] -- java.lang.RuntimeException: Unable to send email
      at org.jbpm.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:149) [jbpm-flow-6.3.0.Final.jar:6.3.0.Final]

      Delete
  3. Hi Krish,
    I am exploring jbpm and I could see a section in jbpm 6.3 'DataSets'. If I am not wrong this extension is used to provide data for dash builder. Do we have Rest APIs to access our dataset so that we can use this data in our dashboard application. Otherwise we need make DB calls.

    ReplyDelete
  4. Datasets can indeed be used in combination with dashbuilder, to define charts / graphs on top of those data. This data is currently not accessible remotely. We are working on something like this for tasks and processes, and in the longer term for data sets in general, but for now I guess you could simply write a simple rest service that exposes the data you need from the DB directly.

    ReplyDelete
  5. Hi Kris, We are doing a project migration from one of the leading BPM product to JBPM where integration of Outlook is required. Can you give me a lead in this integration.
    Also inorder to avoid ESB, can you please tell me how a camel can be used with jbpm with example.

    ReplyDelete
    Replies
    1. It's unclear what you mean with Outlook integration, do you mean sending email in a process, sending task notifications through email, being able to trigger tasks / process instances through email, etc.?
      For camel, you can use it as a custom service task for outgoing integrations, for examples see https://github.com/jboss-integration/fuse-bxms-integ/tree/master/camel/jbpm-workitems-camel/src/test/resources

      Delete
    2. Thanks Kris for reply. I was away so could not reply. Thanks for camel pointer. I will go through it.
      Also we have a requirement of process start on message received from MQ. Can it be directly handled thru Message Start Event with MQ Listener. Is it possible to do it?

      Delete
  6. Hi Kris,
    I have used all the steps mentioned in http://mswiderski.blogspot.in/2015/10/installing-kie-server-and-workbench-on.html
    However unable to see JBPM console . At the moment only Data Mapper and Rule Authoring options are visible.
    Are there any different set of settings needed to enable JBPM Console ?
    I am using Tomcat 7 as Application Container.

    I am new to this JBPM and drools as well. Any pointers on this would be great.

    ReplyDelete
    Replies
    1. Not sure what you mean with 'only data mapper and rule authoring options are visible'? Could you possible explain or share a screenshot? Are you possibly using the kie-drools-wb instead of the kie-wb war for tomcat?

      Delete
    2. Yes it is kie-drools-wb .. Got the problem. Thanks. Now downloaded from https://repository.jboss.org/nexus/content/groups/public/org/kie/kie-wb-distribution-wars/6.3.0.Final/ and trying to install .. Will update later . thank you for the quick and prompt response

      Delete
  7. Hi
    I installed the jbpm-console in a wildfly 9 server, and everything is working as expected.
    But everytime that i access the rest api (jquery ajax call to /jbpm-console/rest/history/instances), the session logs out automatically, why is this happening ?

    ReplyDelete
  8. an update to my question, i don't know if this has something to do with it but i see this in the wildfly console:
    WARN [org.jboss.weld.Servlet] (default task-52) WELD-000712: Unable to dissociate context org.jboss.weld.context.http.LazyHttpConversationContextImpl@781bef1c from the storage HttpServletRequestImpl [ GET /jbpm-console/in.25546-1402.erraiBus ]

    ReplyDelete
  9. Hi Kris,
    Does jbpm 6.3 has a REST api to attach a document to a human task? If not how can this be achieved through external code?

    ReplyDelete
  10. Hi Kris, Can we know where JBPM is heading now? We are planning to shift application from vendor based product to opensource in which we are comparing Jbpm and ACtiviti. Can you please let us know future path of jbpm so that we can take better decision.
    regards
    Sandip

    ReplyDelete
    Replies
    1. hello sandip,

      i have some issue in service task can you help me if possible

      Delete
  11. Kris, Can you advise as to how JPBM 6.3 is better than IBM BPM 8

    ReplyDelete
    Replies
    1. hello sir,

      I am facing some issue with service task would you please help me

      Delete
  12. Please give me the Licensing information for JBPM. Or give me the contact details where i can find about the licensing information details for my buisness

    ReplyDelete
  13. Hi Kris, is it possible to call a Spring controller from jBPM, after executing a task.

    ReplyDelete
  14. hi Kris,
    I am trying to use kie-remote-client jar and cxf-rt-rs-client jar together, but there is a dependency clash between the two. Running a simple REST client test results in the below exception:

    java.lang.NoSuchMethodError: org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.addToBeans(Ljava/util/Collection;Ljava/lang/Object;)V
    at org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.setProviders(AbstractJAXRSFactoryBean.java:287)
    at org.apache.cxf.jaxrs.client.WebClient.create(WebClient.java:175)
    at org.apache.cxf.jaxrs.client.WebClient.create(WebClient.java:136)

    ReplyDelete
  15. I forgot to mention the jar versions that I am using.
    kie-remote-client - 6.3.0.Final
    cxf-rt-rs-cliet - 3.0.5
    Can you please help?

    ReplyDelete