2017/04/06

Case management application in workbench

As part of coming jBPM version 7 I'd like to present a new component that will allow an easy and comprehensive look into case management. As described in the article case management should be business focused and domain specific to bring in the most value to the end users who in many cases are not technical. But there is also the other side of the coin - administrators or technical business users. They are as important as end users because in many cases these are the people that keep the apps running and available for end users.

With jBPM 7 they are certainly not left behind. A new component is available for that audience to allow them to have quick and rather complete view at the cases (both definitions and instances). To make it possible to deal with various type of cases that component was made generic to:

  • bring in visibility to the technical users
  • provide insight in where the case instance is
  • allow to perform certain operations on a case instance which might not be visible to end users through the case app
The good thing is that the application can be used standalone or can be automatically provisioned by workbench and accessible from within the workbench UI.

By launching the Case Management Showcase application you will be transferred to a new window to allow you to operate on cases:
  • start new instance of case definition
  • view and administrate on already active case instances
  • use workbench runtime views (Process Instances and Tasks) to interact with case instance activities

As can be seen, the example show the Order IT hardware case instance, one that is shown in the case app article. I'd like to show that exact same capability exposed to end users through the case app can be performed by technical/admin users by using the Case Management app and workbench.




That's as simple as that, those who are familiar with workbench as an environment will find themselves in there and navigate through the screen easily. Again, its target is technical users as that does not bring the business context thus might lead end users (non technical ones) to be confused and lost a bit. 

Running workbench with case management app

So that illustrates how it actually works but how to set this up?

First of all, let's configure the runtime environment for workbench, there is not much of new  things compared to standard installation of the workbench:
  • user and roles setup
    • make sure there is an application user that has at least following roles:
      • kie-server
      • user
    • make sure there is a management user - this will be used by the provisioning service of the workbench to deploy automatically case management application
  • security domain setup 
    • make sure that the security domain used by workbench (by default it's other) has additional login module defined (org.kie.security.jaas.KieLoginModule)
  • system properties set for JVM running server
    • org.jbpm.casemgmt.showcase.deploy=true
    • instruct workbench to deploy case management showcase apps when starting
    • org.kie.server.location=http://localhost:8230/kie-server/services/rest/server
    • location of the kie server that the case management app is going to talk to
    • org.jbpm.casemgmt.showcase.wildfly.username
    • optional user name (of the management user) in case it's different than admin
    • org.jbpm.casemgmt.showcase.wildfly.password
    • optional user password (of the management user) in case it's different than admin
    • org.jbpm.casemgmt.showcase.wildfly.port
    • optional wildfly port that server is running on - default 8080
    • org.jbpm.casemgmt.showcase.wildfly.management-port 
    • optional wildfly management port - default 9990 
    • org.jbpm.casemgmt.showcase.wildfly.management-host 
    • optional wildfly management host name - default localhost
    • org.jbpm.casemgmt.showcase.path
    • local file path that points to war file to be deployed, can be used instead of relying on maven to download it
That should be enough to start the workbench and provision Case Management application to be automatically deployed. 

Assuming there are most of the defaults in use, following command is enough to start the server where workbench is deployed:
./standalone.sh 
--server-config=standalone-full.xml 
-Dorg.jbpm.casemgmt.showcase.deploy=true 
-Dorg.kie.server.location=http://localhost:8230/kie-server/services/rest/server

As part of the startup you should see Case management app being provisioned:
 [org.jbpm.workbench.wi.backend.server.casemgmt.service.CaseProvisioningExecutor] (EJB default - 1) Executing jBPM Case Management Showcase app provisioning...
....
[org.jbpm.workbench.wi.backend.server.casemgmt.service.CaseProvisioningExecutor] (EJB default - 1) jBPM Case Management Showcase app provisioning completed.

NOTE: the provisioning is based on maven resolution of the jbpm-case-mgmt-showcase so depending on the download time it can timeout from time to time. To overcome this you can download that artefact manually via maven to speed it up.

Next, is to clone the Order IT hardware case project into workbench and build and deploy it to KIE Server for execution. Once it's built and deployed it's ready for execution. 



That concludes how to get started with brand new stuff coming with version 7 ... which is really around the corner so start preparing for it!

Special credits go to Cristiano and Neus for excellent work that resulted in this new Case Management App.