JBoss.orgCommunity Documentation

jBPM Console NG User Guide

Version 6.1.0-SNAPSHOT


This chapter introduces the modules in charge of the BPM functionality inside the Kie Workbench. These modules were grouped under the name of JBPM Console NG and they can be found here: http://github.com/droolsjbpm/jbpm-console-ng . Inside the GitHub repository will also find a standalone version of these modules integrated with some authoring tools, like for example the Process Designer and the Form Designer, as well as some common tooling to explore the business repositories. If you are interested in a full integrated environment that provides Form Modeling, Data Modeling, Rules Authoring, etc, you should take a look at Kie Workbench which provides all the functionality discrived in these docs plus all the mentioned above.

This chapter describes the screens related with the creation and management of process definitions and process instances.

Once you have modelled and configured all the techncial details to run a process definition your process definition will appear in the Process Definitions List. Once you have the process in the Process Definition List, you can start new instances of it. The following sections describes the features provided by each of these screens. You can find these screens under the Process Management Menu, in the jBPM Console NG or in Kie Workbench.

You can find the source code for this module here: https://github.com/droolsjbpm/jbpm-console-ng/tree/master/jbpm-console-ng-process-runtime

The process definition section is composed by two main screens: the Process Definition Lists and the Process Definition Details.

This chapter introduces the Task Management screens and the its integration with the Form Modeller component to allow users to work on their assigned tasks. You can find the source code of these screens here: https://github.com/droolsjbpm/jbpm-console-ng/tree/master/jbpm-console-ng-human-tasks

Every user with access to the platform will have access to its personal task list where tasks assigned to him/her will be displayed. Each user will be able to create its own personal tasks or work on tasks that were create as a result of a business process execution.

You can access to the Task List under the Work main menu:

Pending tasks can be displayed using different methafors depending on what the user is interested on. We are currently providing two different views explained in the sections below: Grid and Calendar View.

This section shows different examples that can be cloned directly inside the KIE Workbench from the JBPM-Playground repository (https://github.com/droolsjbpm/jbpm-playground). All these examples are high level and business oriented.

If you want to contribute with these examples please get in touch with any member of the jBPM/Drools Team.

Let’s imagine for a second that you work for a Software company that works with several projects and from time to time the company wants to hire new developers. So, which employees, Departments and Systems are required to Hire a new Developer in your company? Trying to answering these questions will help you to define your business process. The following figure, represents how does this process works for Acme Inc. We can clearly see that three Departments are involved: Human Resources, IT and Accounting teams are involved. Inside our company we have Katy from the Human Resources Team, Jack on the IT team and John from the Accounting team involved. Notice that there are other people inside each team, but we will be using Katy, Jack and John to demonstrate how to execute the business process.

Notice that there are 6 activities defined inside this business process, 4 of them are User Tasks, which means that will be handled by people. The other two are Service Tasks, which means an interaction with another system will be required.

The process diagram is self explanatory, but just in case and to avoid confusions this is what is supposed to happen for each instance of the process that is started a particular candidate:

As you can see Jack, John and Katy will be performing the tasks for this example instance of the business process, but any person inside the company that have those Roles will be able to claim and interact with those tasks.

There are three points to consider when we configure the application for deployment:

  • Users/Groups/Roles

  • Domain Specific Tasks (Connectors)

  • JBoss AS 7 Profile

Domain Specific Tasks (Connectors) are the way to integrate your business processes with external services that can be inside or outside your company. These connectors are considered technical assets and because of that needs to be handled by technical users. Most of the time it is recommended to not change/modify the connectors when the application is running, and for that reason these connectors needs to be provided for the application to use in runtime. Three things are required to use a Custom Connector:

In order to provide these three configuration points you can take a look at the Customer Relationship example in the jbpm-playground repository.

The main idea here is to have a separate project that contains the workItems implementations, for example: CreateCustomerWorkItemHandler , you will need to compile this project with maven and install the produced jar file inside the KIE-WB application. In order to do that you just copy the customer-services-workitems-1.0-SNAPSHOT.jar into the WEB-INF/lib directory of the kie-wb.war app. On this example the workItemHandler implementations interacts with a public web service that you can check here , so you will require internet connection in order to try this example.

Notice also that inside the customer-relationship project there are some high level mappings of the Domain Specific Tasks that can be used inside our Customer Relationship Project -> WorkItemDefinitions.wid.

This configuration will basically add you Service Tasks inside the Process Designer Palette:

The last step is to bind the High Level mapping to their implementation for this environment. You can do that by adding new entries into the WEB-INF/classes/META-INF/CustomWorkItemHandlers.conf file, for this example we just need to add the following entries:

          …
        “CreateCustomer”: new org.jbpm.customer.services.CreateCustomerWorkItemHandler(),
        “AddCustomerComment”: new org.jbpm.customer.services.AddCustomerCommentsWorkItemHandler(),
        “ManagersReport”: new org.jbpm.customer.services.ManagersReportWorkItemHandler(),
        …