Building a Business Process with Human tasks on jBPM (Part 1)

Look at this blog post about how to get you started with jBPM

Open BPM

Hello,

A couple of weeks ago I started looking for human tasks tutorials in jBPM and I found that most of them used the business process that come with jBPM by default but I wanted something that would start from scratch and that could be followed step by step to achieve a working BPD with human tasks. Then I started talking with Salaboy about creating a tutorial about how to build a business process that involved human tasks.

The idea is to create a business process that will represent a loan request sent to a bank, where a user will request for a loan and depending on the amount requested

Let me try to guide  you through this:

  • Lets start by accessing the Business Authoring section from the Authoring menu on the top bar
  • Then we’ll click on New -> Project, let’s call our project “BankingApp”
  • After clicking on Ok…

View original post 831 more words

Advertisements

Published by:

salaboy

Open Source Developer. Author of the jBPM, jBPM5, jBPM6 Developer Guide & Mastering Drools Books. Now Principal Software Engineer @ Alfresco, previously Senior Software Developer @ Red Hat / JBoss.

Categories Java7 Comments

7 thoughts on “Building a Business Process with Human tasks on jBPM (Part 1)”

  1. Hi All,

    I have the following problem with JBoss EAP 6.2 (configure in cluster mode) related to deployment of the my web application.

    My web app is an war file that contains: processes defined with JBPM2 and REST services for start process, retrieve a tasks …etc..

    I use JBPM 6.0.1.Final library to definiton and access at my processes and tasks.

    The architecture is based on Spring that create an org.kie.api.runtime.manager.RuntimeManager object:

    @PostConstruct

    public void init() {

    if (runtimeManager == null) {

    RuntimeEnvironment environment = (RuntimeEnvironment) RuntimeEnvironmentBuilder.getDefault()

    .entityManagerFactory(entityManagerFactory)

    .userGroupCallback(userGroupCallback)

    .addAsset(ResourceFactory.newClassPathResource(“test.bpmn2”), ResourceType.BPMN2)

    .get();

    ((SimpleRegisterableItemsFactory)environment.getRegisterableItemsFactory()).addWorkItemHandler(“Log”, SystemOutWorkItemHandler.class);

    runtimeManager = org.kie.api.runtime.manager.RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment);

    }

    }

    but when deploy my web-app the line code with underline, I get the following error

    ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/example]] (ServerService Thread Pool — 181) JBWEB000289: Servlet example threw load() exception: java.lang.ClassNotFoundException: org.drools.audit.WorkingMemoryLogger from [Module “deployment.example.war:main” from Service Module Loader]

    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197) [jboss-modules.jar:1.3.0.Final-redhat-2]

    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:443) [jboss-modules.jar:1.3.0.Final-redhat-2]

    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:431) [jboss-modules.jar:1.3.0.Final-redhat-2]

    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:373) [jboss-modules.jar:1.3.0.Final-redhat-2]

    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:118) [jboss-modules.jar:1.3.0.Final-redhat-2]

    at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_55]

    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) [rt.jar:1.7.0_55]

    at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:345) [jboss-modules.jar:1.3.0.Final-redhat-2]

    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:423) [jboss-modules.jar:1.3.0.Final-redhat-2]

    at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:261) [jboss-modules.jar:1.3.0.Final-redhat-2]

    at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:76) [jboss-modules.jar:1.3.0.Final-redhat-2]

    at org.jboss.modules.Module.loadModuleClass(Module.java:548) [jboss-modules.jar:1.3.0.Final-redhat-2]

    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:189) [jboss-modules.jar:1.3.0.Final-redhat-2]

    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:443) [jboss-modules.jar:1.3.0.Final-redhat-2]

    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:431) [jboss-modules.jar:1.3.0.Final-redhat-2]

    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:373) [jboss-modules.jar:1.3.0.Final-redhat-2]

    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:118) [jboss-modules.jar:1.3.0.Final-redhat-2]

    at org.jbpm.runtime.manager.impl.DefaultRegisterableItemsFactory.getProcessEventListeners(DefaultRegisterableItemsFactory.java:77) [jbpm-runtime-manager-6.0.1.Final.jar:6.0.1.Final]

    at org.jbpm.runtime.manager.impl.AbstractRuntimeManager.registerItems(AbstractRuntimeManager.java:85) [jbpm-runtime-manager-6.0.1.Final.jar:6.0.1.Final]

    at org.jbpm.runtime.manager.impl.SingletonRuntimeManager.init(SingletonRuntimeManager.java:99) [jbpm-runtime-manager-6.0.1.Final.jar:6.0.1.Final]

    at org.jbpm.runtime.manager.impl.RuntimeManagerFactoryImpl.newSingletonRuntimeManager(RuntimeManagerFactoryImpl.java:71) [jbpm-runtime-manager-6.0.1.Final.jar:6.0.1.Final]

    at org.jbpm.runtime.manager.impl.RuntimeManagerFactoryImpl.newSingletonRuntimeManager(RuntimeManagerFactoryImpl.java:62) [jbpm-runtime-manager-6.0.1.Final.jar:6.0.1.Final]

    But with JBoss EAP 6.2 configured in standalone mode, all works correctly.

    Someone can help me kindly.

    Regards

    Like

    1. Hi there,
      This is the error that you need to fix: java.lang.ClassNotFoundException: org.drools.audit.WorkingMemoryLogger

      There seems to be a jar missing from your class path.

      HTH

      Like

      1. I have this jar in my pom.xml

        org.drools
        drools-compiler
        6.0.1.Final

        that contain WorkingMemoryLogger.java without any compilation problem

        Like

  2. You mention that it fails only when it is configured in cluster.. that must be causing an issue and for some reason you end up with different class paths in different nodes.
    I’m not an EAP expert, but something that I would like to understand better is why you are using spring inside a container, that can be causing issues.

    Like

  3. I use spring to manage and trasfert KSession and ServiceTask genereted by RuntimeManager in other classes where the Rest service are defined. I olso tried to remove scope compile from pom.xml but does not work.

    Like

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