Building a Web application with Imixs-Workflow – Part I.

NOTE: Please see the latest tutorial how to run Imixs-Worklfow with Jakarta EE.

This Tutorial shows how to build a web based workflow application using the Open Source framework Imixs-Workflow. Imixs-Workflow gives you a powerful technology building a business process management system (BPMS). It is mostly easy to setup a new web application without spending to much time into development. So you can focus on the business process and your customers needs.

The Tutorial consist of three parts.

  • Part I. – shows the creation of a workflow model. The workflow model is the blueprint where you describe how your business process should work. You can use the Eclipse based graphical Imixs-Workflow Modeler to create a Workflow model.
  • Part II. – concerns about the setup of your application server which is responsible to authenticate users and store workitems (a running process instance) into a database.
  • Part III. – will show you how to build and deploy the web application. This is mostly easy as you can use Maven to setup a scaffold in a few seconds which will provide you with a typical web application project based on the latest JEE/JSF Technology. You can use the scaffold to start further development or just start you own implementation. Its up to you.

The hole tutorial will take less than one hour. You can find the Example Application also on GitHub.

Starting… create a new Workflow Model

To start this tutorial I will explain how you can create a new Workflow Model which describes your business process. This is the typical first step in business orientated development. And this is also that part which your customer will be able to follow best as this step is more business orientated and less technical.

The TROUBLE TICKET Workflow

In this Tutorial I will develop a “Trouble Ticket Workflow System”. A trouble ticket system (also called issue tracking system or incident ticket system) is based on a business process that manages and maintains lists of issues, as needed by an organization. Trouble Ticket Systems are commonly used in an organization’s customer support call center to create, update, and resolve reported customer issues, or even issues reported by that organization’s other employees.

A ticket is the “workitem” managed by your application which contains all necessary informations about the reported customer issue .

In my example scenario I will design the workflow very simple to demonstrate the principle and basic concepts of the Imixs Workflow:

  1. A customer service operator receives a telephone call, email, or other communication from a customer about a problem. The operator creates a new issue in the Trouble Ticket system. The status of our workitem is now “open”
  2. Next a member of the technician team verifies that the problem is real, and not just perceived. The technician will also ensure that enough information about the problem is obtained from the customer. The technician accepts the ticket or reject it. An accepted Ticket will change the status of the workitem into “in progress”.
  3. As work is done on that issue, the system is updated with new data by the technician. Any attempt at fixing the problem should be noted in the issue system.
  4. After the issue has been fully addressed, it is marked as solved in the issue tracking system and the ticket will be closed. Status “closed”

This is a BPMN diagram from the workflow which shows the process flow:

jsf-tutorial-01

To create this BPMN diagram I use the Eclipse BPMN Modeler which is a nice and easy to use modeling tool based on eclipse.

Using the Imixs Modeller

In the next step you create a technical model of the business process. To create a new Imixs workfow model I use the Eclipse based Imixs Workflow Modeler. The Imixs Workflow Modeler is used to describe the technical flow of a workflow. You can configure a lot of application specific behavior within this tool which will reduce the time for coding the application. The Imixs Workflow Modeler can be installed very easy using the Eclipse Update Manager. If you have not yet installed the Imixs Modeler follow this installation guide.

From the Eclipse IDE you can crate a new Imixs model file to store the workflow model. A Imixs model file has the file extension “.ixm”.

 

jsf-tutorial-02

You can create you new Model file in the /src/ folder of any eclipse  project. Create a new folder /workflow and create a model file “model.ixm”. Or you can use the New Wizard or simply create a empty file “model.ixm”.
When you open this file you see the Imixs Workflow Editor:

jsf-tutorial-03

Now you can create a new Process Group called “ticket” and add three Process Entities described in your bpmn business model:

  • new Ticket
  • in process
  • closed

You will find a full description at: how to model a business process on the Imixs Modeler project Page.

After all you model can look like this:

jsf-tutorial-04

If you don’t want to create the model by yourself you can download the sample application containing the workflow file from GitHub.

Now the first Part of our Tutorial is finished. Continue with Part II…