BPMN Versioning

Running BPMN models in a BPM system often requires to take care about the internal version of a BPMN model. This occurs, for example, in scenarios where you run multiple instances of an active process in a live system with different versions of the same BPMN model.

The Imixs-Workflow Engine provides a nice mechanism to manage different versions of a BPMN 2.0 model. This allows to setup complex production environments with different models and different model versions at the same time. A model version, which is placed as an extension element of a BPMN 2.0 model can be evaluated by the Imixs-Workflow engine:
imixs-bpmn-versioning
Continue reading “BPMN Versioning”

How to use latest Imixs-Workflow-Engine in Imixs-Office-Workflow

This short tutorial explains how the latest version of Imixs-Workflow can be used in a custom build of Imixs-Office-Workflow.

In some cases it is necessary to use a newer version of the Imixs-Workflow engine event if the custom build of Imixs-Office-Workflow forces to use an older version because of the maven dependencies. To solve this problem you can do this:

1.) Update the imixs-workflow version in the parent pom.xml

First change the version number of the imixs-workflow engine in the parent pom.xml by changing the property ‘org.imixs.workflow.version’

For example:

 <org.imixs.workflow.version>3.4.0-SNAPSHOT</org.imixs.workflow.version>

2.) Remove the ‘imixs-office-workflow-ejb’ dependency

The dependency of the artefact ‘imixs-office-workflow-ejb’ is not necessaray in a custom build. You can remove this dependency form the parent pom.xml and the ear module of the custom build. In the ear pom.xml also remove the imixs-office-workflow-ejb module from the application module configuration.

3.) Change the overlay of the web module

Finally you need to change the overly setting in the web moudle of the custom build. Per default all elements form the overlay war-module (in this case imixs-office-workflow-web’ will be copied into the target web module. This includes also artifacts form the Imixs-Workflow faces and jax-rs dependencies. To avoid this overlay of libs you can add the following plugin configuration into the web module of the custom build:

 <build>
 <plugins>
 <plugin>
 <artifactId>maven-war-plugin</artifactId>
 <version>2.6</version>

 <configuration>
 <workDirectory>target/overlay-war-folder</workDirectory>

 <!-- We exclude libs form the parent WAR artifact -->
 <overlays>
 <overlay>
 <groupId>com.imixs.workflow</groupId>
 <artifactId>imixs-office-workflow-web</artifactId>
 <excludes>
 <exclude>WEB-INF/lib/*.jar</exclude>
 </excludes>
 </overlay>
 </overlays>

 </configuration>

 </plugin>
 </plugins>
 </build>

That’s it! Now only the latest version of Imixs-Workflow will be included into the custom build of Imixs-Office-Workflow.

BPMN Workflow Modelling

With the latest Update of Imixs-Workflow the Business Process Modelling Notation (BPMN) can be used in various ways to describe business processes executable on the Imixs-Workflow engine. Imixs-BPMN is a flexible and open source modelling tool based on the Eclipse BPMN modelling framework. The modelling tool provides a very flexible approach to describe business process models and workflows within the BPMN 2.0 standard. One of the great advantages of Imixs-BPMN is the flowing transition between business and technical models. In difference to pure technical modelling tools a BPMN workflow model can be combined with more formale elements without technical restrictions.

bpmn_startevent_example

The BPMN Parser included in Imixs-Workflow analyses and interprets the various aspects of this form of modeling. As a result a business workflow can be described in various ways corresponding to the individual requirements of the business.

Read more about Imxis-BPMN on the project site.

Imixs-BPMN 1.0.0 finally released

With the latest version of Imixs-BPMN the Imixs GmbH provides now a free BPMN modeling tool for modeling workflows according to the BPMN 2.0 standard.

bpmn-screen_001
Imixs BPMN

 

Using the BPMN 2.0 standard, business processes can be documented even faster and more clearly. BPMN provides an easy notation also to discuss complex business processes together with all participants involved in the process.

With Imixs-BPMN these processes can now be executed directly in a professional workflow management solution. Complex business processes and changing business models can be managed with Imixs-BPMN in a flexible and transparent way.

With the combination of Imixs-BPMN and the open source solution Imixs-Workflow, all types of workflows can be easily modeled and executed in a robust and scalable workflow management software. Also existing BPMN models can be enhanced with the capabilities of a wokflow management solution. Imixs-BPMN extends the Eclipse BPMN2 Modeling Framework which provides a powerful modelling solution based on the Eclipse platform.

The Imixs Software Solutions GmbH located in Munich has specialized in the development of professional business process management solutions and supports companies implementing their custom business processes. Due to the consistent focus on open source, Imixs-Workflow provides a clear cost advantage. No license or update costs incurred in the use of this solution. With its service concept, the Imixs GmbH offers a transparent business model which combines the advantages of a modern software platform with a professional consulting concept.

Read more about Imixs-BPMN at: http://www.imixs.org/modeler/

Imixs announces new BPMN 2.0 Modeling tool!

The Imixs-Workflow project has started a new modelling tool which will be 100% compatible with the BPMN 2.0 standard. The new modeler tool will be based on the Eclipse BPMN2 Modelling Framework and extends the BPMN 2.0 standard with the aspects of a human based workflow model executable on the Imixs-Workflow Engine.

Imixs-BPMN will be open source and takes the full advantage of all the capabilities of the BPMN standard and complements them with the features of a powerful workflow engine.

You can follow the project on GitHub.

Imixs-Workflow 3.2.0 finally released!

The latest version of Imixs-Workflow 3.2.0 is now finally released. The new release of the Open Source Workflow Engine includes several improvements and also bugfixes.

Ajax File Upload

With the new implementation of the Imixs-Workflow FileUpload we provide a new Upload widget based on JQuery. With this new component we support drag and drop and a new preview mode for attachments.

DataController – BlobWorkitems 

The JSF DataController bean was improved by managing BlobWorkitems. The save method was removed and transferred into the Backend Service EJB layer. This improves the backend services in complex transnational UI scenarios.

ViewController – WorklistController

The View and Workflist Controller beans were improved and simplified in usage. Extending these components is now much more easy and comfortable for developers.

MailPlugin

The MailPlugin was improved by server new convenience methods which makes it easier to extend the behavior of this Plugin for custom workflow applications. Also the MailPlugin now supports usage in different application server environments like GlassFish ore WildFly /JBoss.

TinyMCE

The TinyMCE Editor component – provided by the Imixs-Workflow Web-Tools – now supports a custom css concept which allows to customize the layout of this component is several way.

Find more on GitHub.

The new release 3.2.0 will also be the common base release for the next release of the Imixs-Office-Workflow Project.

Microservice Architecture for Workflow Applications

With our new project Imixs-Microservice we now provide a solution to build workflow management applications based on a modern microservice architecture.

Imixs-Microservice encapsulates the Imixs-Workflow Engine into a microservice architecture. The service can be bound to any business application, independent from the technology behind. This allows business applications to change the business logic without changing a single line of code. Thus the state of a business object can be controlled through the workflow model.

Based on the comprehensive functionality of the Imixs-Workflow Engine the Imixs-Microservice is empowered to control business data in various ways. Imixs-Microservice can send E-Mail notifications, log business transactions and secures any kind of business data.

The Imixs-Workflow Modeller can set an ACL for each single state in a business process model. This allows the definition of highly complex business applications and waves a security layer around each process instance.

 

The Rest Service API

Imixs-Microservice provides a flexible REST Service API which can be accessed from any platform and any kind of application. The Web Service is based on JSON and XML objects and allows an easy integration in existing projects (Java, .Net, PHP, …). Once deployed a new Workflow Model can be defined using the Eclipse based Imixs-Workflow Modeller. Any business object can be bound to a new business process by posting a JSON or XML based process instance. The state is then controlled by the Imixs-Workflow engine and can be requested and updated in various ways.

Runns with Docker

DockerImixs-Microservice provides a docker image. This makes is easy to run Imixs-Microservice in a Docker container and provides a powerful way to integrate a full featured workflow engine into a microservice architecture. The Docker image can be used as a template for custom projects and provides a scaffold to start with a microservice achitecture.

 

Imixs-Workflow and Imixs-Microservice are Open Source projects and can simplify the development of business applications in various ways. The Imixs Software Solutions provides professional services and support for building enterprise workflow management solutions.

 

Drag & Drop Fileuploads with Imixs-Workflow

With the latest Update of the Imixs-Workflow the project now supports Drag&Drop functionallity for FileUplods. The Imixs-Web-Tool libray provide several JSF Components for building workflow forms fast and easy. The library extends the functionality of the FileUpload Component.

Files which where uploaded can now be viewed in the browser before they are persisted by the Imixs-Workflow Engine. The new FileUpload widget includes the jquery fileupload plugin and supports most browser platforms.

In different to most other frameworks Imixs-Workflow persists files with an access-control-list (ACL). This ACL can be configured by the Workflow Model and restricts access to files for different actors. Each process instance controlled by Imixs-Workflow can have an individual access list. With this functionality also confidential documents can be controlled by the Workflow Engine.

The integration of the new FileUpload control is quite simple as Imixs-Workflow provides a custom tag library:

<i:imixsFileUpload workitem="#{workflowController.workitem}"
   context_url="#{facesContext.externalContext.requestContextPath}/rest/workflow/workitem/#{workflowController.workitem.item['$uniqueid']}" />

The component can be tested within the Imixs Sample Web Application.

imixs_fileupload_032

 

 

Building transaction save business logic

As I posted in my last blog about JSF and Transactioncontext, it is importend to keep the transaction context in mind when developing a business application within JSF. When you use the Imixs-Workflow Engine you normaly don’t need to think about transactions because Imixs-Workflow takes care about processing a workitem in a full controlled transaction context. But developing with JSF can lead into situations where the business logic is not allways encapsulated correctly in a single transaction. Look at the following example of an Imixs-Workflow web application based on JSF:

//jsf bean...
@EJB WorkflowService workflowService;
...
public String process(ItemCollection workitem) {
 workitem=workflowService.process(workitem);
 // evaluate result and trigger another process step...
 if (workitem.getItemValueString('department').equals('finance')) {
    workitem.replaceItemValue('$activity',APPROVE_BY_MANAGEMENT);
    workitem=workflowService.process(workitem);
 }
 ....
}

In this example, the process method of the front-end controller evaluates the result of a process step and calls a second process for the same business object. Now you have the problem that the workflowService will run in two separate transactions. As I mentioned in my blog this can result into unexpected database results.

When you are working with Imixs-Workflow, the solution is quite simple: Just put your business logic into Imixs-Workflow Plugi-In. Plug-Ins are always controlled by the WorkflowManager and called inside a single transaction. So there is no risk that your business process runs in an undefined context.